[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = crlf\nindent_size = 4\nindent_style = space\ntab_width = 4\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.cs]\ndotnet_diagnostic.CS1570.severity = none\ndotnet_diagnostic.CS1591.severity = suggestion\n"
  },
  {
    "path": ".gitee/ISSUE_TEMPLATE.zh-CN.md",
    "content": "> **⚠⚠ 请注意：不符合格式要求的 Issue 可能会被直接关闭。**\n\n---\n\n**问题类型**\n\n请在此选择你的问题类型：\n\n-   [ ] 报告缺陷：发现源代码中的漏洞、运行发生的异常、或文档里的错误。\n-   [ ] 请求新功能：需要某些新功能，或对现有实现提出更好的建议。\n-   [ ] 其他类型 Issue：遇到了问题，需要帮助。\n\n---\n\n**关于问题或建议的简单描述**\n\n请在此填写你遇到的问题或你想要的功能。\n\n---\n\n**与问题或建议相关的源代码**\n\n对于报告缺陷，请在此粘贴与问题相关的代码，或提供可复现问题的最小化项目（可提供仓库地址或 GitHub Gist）。\n\n对于请求新功能，请在此粘贴已有实现思路或解决方案。\n\n注意，请不要以截图形式提供代码。\n\n```csharp\n// Source Code\n```\n\n---\n\n**异常堆栈或异常原因**\n\n请在此填写你遇到的问题抛出错误时的异常消息和堆栈跟踪（如果有的话）。\n\n---\n\n**发生问题的运行环境**\n\n请在此填写以下几项内容：\n\n1. 操作系统：请填写发生问题的操作系统环境信息（如：Windows Server 2012 R2）\n2. .NET 版本：请填写发生问题的 .NET 环境信息（如：.NET Framework 4.7.2 / .NET 5.0）\n3. 使用的模块及版本：请填写发生问题的模块信息（如：SKIT.FlurlHttpClient.ByteDance.TikTok 1.0.0）\n4. 其他环境信息。\n\n---\n\n**补充说明**\n\n请在此填写任何其他可以定位问题或帮助说明的信息。\n"
  },
  {
    "path": ".gitee/PULL_REQUEST_TEMPLATE.zh-CN.md",
    "content": "> **⚠⚠ 请注意：不符合格式要求的 PR 可能会被直接关闭。**\n\n---\n\n感谢您对 SKIT.FlurlHttpClient.ByteDance 项目的贡献。\n\n在提交此 PR 之前，请确保：\n\n-   [ ] 检查新的代码是否遵循了本项目的现有代码格式和命名标准。\n-   [ ] 编写新的单元测试、并运行已有的单元测试来验证你的更改，所有功能和修复的错误都必须进行以验证它们是否有效。\n-   [ ] 规范 Commit Log。\n\n以上内容规范请参阅 [CONTRIBUTING](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CONTRIBUTING.md)。\n\n---\n\n**PR 类型**\n\n请在此选择你的 PR 类型：\n\n-   [ ] 修复缺陷：修复源代码中的漏洞、运行发生的异常、或文档里的错误。\n-   [ ] 增强或优化：增加某些新功能，或对现有实现做出更好的优化。\n\n---\n\n**关于 PR 的简单描述**\n\n请在此填写你所提交代码的简要描述。\n\n---\n\n**关联的 Issue**\n\n请在此填写与此 PR 相关的 Issue。\n\n---\n\n**关于新功能的用法**\n\n请在此给出一个你所新增功能的代码示例（如果有的话）。\n\n```csharp\n// Source Code\n```\n\n---\n\n**是否有破坏性变化？（Breaking Change）**\n\n如果你所提交的代码会造成一些破坏性的变化（即已使用了本库的项目，在更新代码后需要做出代码调整才可通过构建），请在此描述与变化有关的代码，并试图说明为何需要此变更。\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1_bug_report.md",
    "content": "---\nname: 报告缺陷\nabout: 发现源代码中的漏洞、运行发生的异常、或文档里的错误。\ntitle: '[BUG] 请一句话描述此缺陷'\nlabels: bug\nassignees: ''\n---\n\n> **⚠⚠ 请注意：不符合格式要求的 Issue 可能会被直接关闭。**\n\n---\n\n**关于问题的简单描述**\n\n请在此填写你遇到的问题。\n\n---\n\n**与问题相关的源代码**\n\n请在此粘贴与问题相关的代码，或提供可复现问题的最小化项目（可提供仓库地址或 GitHub Gist）。\n\n注意，请不要以截图形式提供代码。\n\n```csharp\n// Source Code\n```\n\n---\n\n**异常堆栈或异常原因**\n\n请在此填写你遇到的问题抛出错误时的异常消息和堆栈跟踪（如果有的话）。\n\n---\n\n**发生问题的运行环境**\n\n请在此填写以下几项内容：\n\n1. 操作系统：请填写发生问题的操作系统环境信息（如：Windows Server 2012 R2）\n2. .NET 版本：请填写发生问题的 .NET 环境信息（如：.NET Framework 4.7.2 / .NET 5.0）\n3. 使用的模块及版本：请填写发生问题的模块信息（如：SKIT.FlurlHttpClient.ByteDance.TikTok 1.0.0）\n4. 其他环境信息。\n\n---\n\n**补充说明**\n\n请在此填写任何其他可以定位问题的信息。\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2_feature_request.md",
    "content": "---\nname: 请求新功能\nabout: 需要某些新功能，或对现有实现提出更好的建议。\ntitle: '[FEATURE] 请一句话描述此建议'\nlabels: enhancement\nassignees: ''\n---\n\n> **⚠⚠ 请注意：不符合格式要求的 Issue 可能会被直接关闭。**\n\n---\n\n**关于建议的简单描述**\n\n请在此简要描述你想要的功能。\n\n---\n\n**实现思路或解决方案**\n\n如果你已有实现思路或解决方案，请在此贴出。\n\n---\n\n**补充说明**\n\n请在此填写任何其他可以帮助说明的信息。\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/3_custom.md",
    "content": "---\nname: 其他类型 Issue\nabout: 遇到了问题，需要帮助。\ntitle: ''\nlabels: question\nassignees: ''\n---\n\n请简要描述你所遇到的问题。\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/1_bugfix.md",
    "content": "---\nname: 修复缺陷\nabout: 修复源代码中的漏洞、运行发生的异常、或文档里的错误。\ntitle: '[BUGFIX] 请一句话描述此 PR 修复的缺陷'\nlabels: bug\nassignees: ''\n---\n\n> **⚠⚠ 请注意：不符合格式要求的 PR 可能会被直接关闭。**\n\n---\n\n感谢您对 SKIT.FlurlHttpClient.ByteDance 项目的贡献。\n\n在提交此 PR 之前，请确保：\n\n-   [ ] 检查新的代码是否遵循了本项目的现有代码格式和命名标准。\n-   [ ] 编写新的单元测试、并运行已有的单元测试来验证你的更改，所有功能和修复的错误都必须进行以验证它们是否有效。\n-   [ ] 规范 Commit Log。\n\n以上内容规范请参阅 [CONTRIBUTING](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CONTRIBUTING.md)。\n\n---\n\n**关于 PR 的简单描述**\n\n请在此填写你所提交代码的简要描述。\n\n---\n\n**关联的 Issue**\n\n请在此填写与此 PR 相关的 Issue。\n\n---\n\n**是否有破坏性变化？（Breaking Change）**\n\n如果你所提交的代码会造成一些破坏性的变化（即已使用了本库的项目，在更新代码后需要做出代码调整才可通过构建），请在此描述与变化有关的代码，并试图说明为何需要此变更。\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE/2_enhancement.md",
    "content": "---\nname: 增强或优化\nabout: 增加某些新功能，或对现有实现做出更好的优化。\ntitle: '[ENHANCEMENT] 请一句话描述此 PR 提供的内容'\nlabels: enhancement\nassignees: ''\n---\n\n> **⚠⚠ 请注意：不符合格式要求的 PR 可能会被直接关闭。**\n\n---\n\n感谢您对 SKIT.FlurlHttpClient.ByteDance 项目的贡献。\n\n在提交此 PR 之前，请确保：\n\n-   [ ] 检查新的代码是否遵循了本项目的现有代码格式和命名标准。\n-   [ ] 编写新的单元测试、并运行已有的单元测试来验证你的更改，所有功能和修复的错误都必须进行以验证它们是否有效。\n-   [ ] 规范 Commit Log。\n\n以上内容规范请参阅 [CONTRIBUTING](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CONTRIBUTING.md)。\n\n---\n\n**关于 PR 的简单描述**\n\n请在此填写你所提交代码的简要描述。\n\n---\n\n**关于新功能的用法**\n\n请在此给出一个你所新增功能的代码示例。\n\n```csharp\n// Source Code\n```\n\n---\n\n**关联的 Issue**\n\n请在此填写与此 PR 相关的 Issue。\n\n---\n\n**是否有破坏性变化？（Breaking Change）**\n\n如果你所提交的代码会造成一些破坏性的变化（即已使用了本库的项目，在更新代码后需要做出代码调整才可通过构建），请在此描述与变化有关的代码，并试图说明为何需要此变更。\n"
  },
  {
    "path": ".github/workflows/codeql-analysis.yml",
    "content": "# For more information, see:\n# https://github.com/github/codeql\nname: CodeQL\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  analyze:\n    name: Analyze\n    runs-on: ubuntu-latest\n    strategy:\n      fail-fast: false\n      matrix:\n        language: [csharp]\n    steps:\n    - name: Checkout Repository\n      uses: actions/checkout@v2\n      with:\n        fetch-depth: 1\n    - name: Setup .NET\n      uses: actions/setup-dotnet@v1\n      with:\n        dotnet-version: 6.0.x\n    - name: Initialize CodeQL\n      uses: github/codeql-action/init@v1\n      with:\n        languages: ${{ matrix.language }}\n        queries: security-and-quality\n    - name: Autobuild\n      uses: github/codeql-action/autobuild@v1\n    - name: Perform CodeQL Analysis\n      uses: github/codeql-action/analyze@v1\n"
  },
  {
    "path": ".github/workflows/super-linter.yml",
    "content": "# For more information, see:\n# https://github.com/github/super-linter\nname: CodeLint\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  run-lint:\n    name: Lint\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout Repository\n        uses: actions/checkout@v2\n        with:\n          fetch-depth: 1\n      - name: Lint Code Base\n        uses: github/super-linter@v4\n        env:\n          VALIDATE_ALL_CODEBASE: false\n          DEFAULT_BRANCH: main\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User-specific files\n*.suo\n*.user\n*.sln.docstates\n\n# Build results\n[Dd]ebug/\n[Dd]ebugPublic/\n[Rr]elease/\nx64/\nbuild/\nbld/\n[Bb]in/\n[Oo]bj/\n\n# Roslyn cache directories\n*.ide/\n\n# MSTest test Results\n[Tt]est[Rr]esult*/\n[Bb]uild[Ll]og.*\n\n#NUNIT\n*.VisualState.xml\nTestResult.xml\n\n# Build Results of an ATL Project\n[Dd]ebugPS/\n[Rr]eleasePS/\ndlldata.c\n\n*_i.c\n*_p.c\n*_i.h\n*.ilk\n*.meta\n*.obj\n*.pch\n*.pdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.tmp_proj\n*.log\n*.vspscc\n*.vssscc\n.builds\n*.pidb\n*.svclog\n*.scc\n\n# Chutzpah Test files\n_Chutzpah*\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opensdf\n*.sdf\n*.cachefile\n\n# Visual Studio profiler\n*.psess\n*.vsp\n*.vspx\n\n# TFS 2012 Local Workspace\n$tf/\n\n# Guidance Automation Toolkit\n*.gpState\n\n# ReSharper is a .NET coding add-in\n_ReSharper*/\n*.[Rr]e[Ss]harper\n*.DotSettings.user\n\n# JustCode is a .NET coding addin-in\n.JustCode\n\n# TeamCity is a build add-in\n_TeamCity*\n\n# DotCover is a Code Coverage Tool\n*.dotCover\n\n# NCrunch\n_NCrunch_*\n.*crunch*.local.xml\n\n# MightyMoose\n*.mm.*\nAutoTest.Net/\n\n# Web workbench (sass)\n.sass-cache/\n\n# Installshield output folder\n[Ee]xpress/\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish/\n\n# Publish Web Output\n*.[Pp]ublish.xml\n*.azurePubxml\n## TODO: Comment the next line if you want to checkin your\n## web deploy settings but do note that will include unencrypted\n## passwords\n#*.pubxml\n\n# NuGet Packages Directory\npackages/*\n## TODO: If the tool you use requires repositories.config\n## uncomment the next line\n#!packages/repositories.config\n\n# Enable \"build/\" folder in the NuGet Packages folder since\n# NuGet packages use it for MSBuild targets.\n# This line needs to be after the ignore of the build folder\n# (and the packages folder if the line above has been uncommented)\n!packages/build/\n\n# Windows Azure Build Output\ncsx/\n*.build.csdef\n\n# Windows Store app package directory\nAppPackages/\n\n# Others\nsql/\n*.Cache\nClientBin/\n[Ss]tyle[Cc]op.*\n~$*\n*~\n*.dbmdl\n*.dbproj.schemaview\n*.pfx\n*.publishsettings\nnode_modules/\n\n# RIA/Silverlight projects\nGenerated_Code/\n\n# Backup & report files from converting an old project file\n# to a newer Visual Studio version. Backup files are not needed,\n# because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\nUpgradeLog*.htm\n\n# SQL Server files\n*.mdf\n*.ldf\n\n# Business Intelligence projects\n*.rdl.data\n*.bim.layout\n*.bim_*.settings\n\n# Microsoft Fakes\nFakesAssemblies/\n\n# LightSwitch generated files\nGeneratedArtifacts/\n_Pvt_Extensions/\nModelManifest.xml\n\n# Visual Studio temporary files\n.vs\n*.nupkg\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# CHANGELOG\n\n### 版本说明\n\n各 SDK 的版本号将遵循语义化版本规则。\n\n在更新日志中会包含以下几种名词：\n\n1.  “**新增**”：\n    -   追加了新功能；\n    -   一般不会产生破坏性更新。\n2.  “**变更**”：\n    -   可能重新实现了已有的功能，通常会带来使用方式上的变化；\n    -   可能升、降级了第三方依赖库的版本。\n    -   一般会产生破坏性更新。\n3.  “**修复**”：\n    -   修复了已知的一些问题；\n    -   一般不会产生破坏性更新。\n\n注意，预发行版（版本号将以 `-alpha`、`-beta`、`-rc` 结尾）不会在更新日志中呈现。如非必要，请不要将预发行版应用于生产项目。\n\n自 v2.0.0 版本起，各 SDK 将与[公共组件](https://www.nuget.org/packages/SKIT.FlurlHttpClient.Common)的主版本号保持对齐关系，即：\n\n-   SDK v2.x.x 将依赖公共组件 v2.x.x；\n-   SDK v3.x.x 将依赖公共组件 v3.x.x。\n-   依此类推。\n\n---\n\n### 模块 `SKIT.FlurlHttpClient.ByteDance.MicroApp` 更新日志\n\n<details>\n\n<summary>[展开查看]</summary>\n\n-   Release 3.7.0 (2024-11-08)\n\n    -   **新增**：新增获取用户唯一标识接口。\n\n    -   **新增**：新增小程序设置关联地区相关接口。\n\n    -   **新增**：新增小游戏礼包福袋接口。\n\n    -   **新增**：新增直播小玩法礼物进阶互动效果​、用户战绩与排行榜、用户快捷选队、观众一键同玩能力等相关接口。\n\n    -   **新增**：新增服务商平台获取域名校验文件信息接口。\n\n    -   **新增**：随官方更新担保支付退款结果查询接口模型。（_via_ [Gitee #IAWCCD](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/issues/IAWCCD)）\n\n    -   **新增**：随官方更新短视频数据分析和直播数据分析相关接口模型。\n\n-   Release 3.6.1 (2024-07-15)\n\n    -   **修复**：修复小游戏担保支付签名逻辑错误。影响版本：v3.6.0。\n\n-   Release 3.6.0 (2024-07-14)\n\n    -   **新增**：新增开发者回复评价、删除评价等接口。\n\n    -   **变更**：升级公共组件至 v3.1.0。\n\n    -   **修复**：修复小游戏支付接口请求签名错误。（_via_ [GitHub #33](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/issues/33)）\n\n-   Release 3.5.0 (2024-06-17)\n\n    -   **新增**：新增素材库相关接口。\n\n    -   **新增**：新增直播小玩法获取直播信息接口。\n\n    -   **新增**：新增服务商平台代商家管理小程序小程序登录 V2 版接口。\n\n-   Release 3.4.0 (2024-05-31)\n\n    -   **新增**：新增小程序券相关接口。\n\n    -   **新增**：新增交易工具周期代扣、交易工具信用免押等相关接口。\n\n    -   **新增**：新增通用交易系统、行业交易系统等相关接口。\n\n    -   **新增**：新增短视频分析、直播分析、小房子直播分析、留资分析等相关接口。\n\n    -   **新增**：随官方更新数据分析相关接口模型。\n\n    -   **变更**：升级依赖 `BouncyCastle.Cryptography` 至 v2.4.0。\n\n-   Release 3.3.0 (2024-05-26)\n\n    -   **新增**：新增小程序文字直播预约公告、Web 化接入、抖店绑定、电商等相关接口。\n\n    -   **新增**：随官方更新流量主相关接口模型。\n\n    -   **变更**：变更入口点路径。\n\n    -   **变更**：移除部分已废弃接口。\n\n-   Release 3.2.0 (2024-05-17)\n\n    -   **新增**：新增小程序隐私协议相关接口。\n\n    -   **新增**：新增小程序直播预约相关接口。\n\n    -   **变更**：升级依赖 `BouncyCastle.Cryptography` 至 v2.3.1。\n\n-   Release 3.1.0 (2024-05-08)\n\n    -   **新增**：新增上传短剧权益事件接口。\n\n    -   **修复**：修复部分接口 Content-Type 请求标头设置错误。影响版本：v3.0.0 ~ v3.0.1。\n\n    -   **修复**：修复服务商平台代开发小程序备案查询服务内容类型接口 URL 错误。影响版本：v3.0.0 ~ v3.0.1。\n\n-   Release 3.0.1 (2024-03-10)\n\n    -   **修复**：修复部分以反斜杠结尾的接口地址错误。影响版本：v3.0.0。\n\n-   Release 3.0.0 (2024-03-09)\n\n    -   **新增**：新增 URL Link v2、URL Schema v2、二维码 v2、订阅消息 v2、推广计划 v2、流量主 v2 等相关接口。\n\n    -   **新增**：新增内容安全图片检测 v3、普通二维码绑定 v3 等相关接口。\n\n    -   **新增**：新增线索组件、视频能力、搜索能力、任务能力、用户信息、分享等相关接口。\n\n    -   **新增**：新增小程序能力申请、抖音号绑定等相关接口。\n\n    -   **新增**：新增泛知识角色系统抖音号绑定相关接口。\n\n    -   **新增**：新增服务商平台代开发小程序授权 v2、代开发小程序模板管理 v2、代开发小程序基础信息管理 v2、代开发小程序开发管理 v2 等相关接口。\n\n    -   **新增**：新增服务商平台代开发小程序备案相关接口。\n\n    -   **新增**：独立化直播小玩法 API 客户端，支持自动生成请求签名。\n\n    -   **变更**：升级公共组件至 v3.0.0。完整变更说明请参阅迁移指南。\n\n    -   **变更**：重命名客户端 `ByteDanceMicroAppClient` 为 `DouyinMicroAppClient`。\n\n    -   **变更**：移除部分已废弃接口。\n\n    -   **修复**：修复泛知识课程库添加课程接口模型定义错误。\n\n    -   **修复**：修复担保支付相关接口 GET 请求签名错误。（_via_ [GitHub #20](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/20)）\n\n-   Release 2.5.0 (2023-07-17)\n\n    -   **新增**：新增担保支付自动结算结果查询接口。（_via_ [GitHub #12](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/12)）\n\n    -   **新增**：新增泛知识角色系统相关接口。（_via_ [GitHub #16](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/16)）\n\n    -   **新增**：随官方更新泛知识课程库添加和修改泛课程接口模型。（_via_ [GitHub #18](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/18)）\n\n-   Release 2.4.1 (2023-06-23)\n\n    -   **修复**：修复部分服务商授权相关接口模型定义错误。（_via_ [GitHub #11](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/11)）\n\n    -   **修复**：修复回调通知事件验证签名错误。（_via_ [GitHub #11](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/11)）\n\n-   Release 2.4.0 (2023-03-28)\n\n    -   **新增**：新增担保支付账单相关接口。\n\n    -   **新增**：新增直播小玩法相关接口。\n\n-   Release 2.3.0 (2023-02-21)\n\n    -   **新增**：新增若干服务商平台代商家管理小程序相关的回调通知事件模型。\n\n    -   **变更**：独立化泛知识课程库相关接口。\n\n    -   **变更**：独立化服务商平台相关接口。\n\n    -   **修复**：修复泛知识课程库接入点错误。\n\n-   Release 2.2.0 (2023-02-20)\n\n    -   **新增**：新增小程序获取已设置的服务类目、上传资源、订阅消息模板库、剪映视频模板、抖音开放能力、普通二维码绑定、流量主等相关接口。\n\n    -   **新增**：新增泛知识课程库查询退款规则、修改退款规则、查询课程审核、设置回调通知等接口。\n\n    -   **新增**：新增第三方小程序应用上传资源接口。\n\n    -   **新增**：新增服务商平台代商家入驻抖音开放平台相关接口。\n\n    -   **变更**：移除部分已废弃接口。\n\n-   Release 2.1.0 (2023-01-17)\n\n    -   **新增**：新增小程序挂载、分发、引导关注抖音号、数据分析等相关接口。\n\n    -   **新增**：新增服务商平台代开发小程序获取模板小程序列表、提审代码、删除订单、获取官方客服链接等接口。\n\n    -   **变更**：标记获取粉丝列表、获取关注列表接口为已废弃。\n\n-   Release 2.0.0 (2022-12-06)\n\n    -   **变更**：升级公共组件至 v2.6.0。\n\n-   Release 1.4.0 (2022-12-04)\n\n    -   **新增**：新增 UrlLink 分享相关接口。\n\n    -   **新增**：新增获取官方平台客服链接接口。\n\n    -   **新增**：新增获取评价数据接口。\n\n    -   **新增**：新增小程序推广计划短视频任务相关接口。\n\n    -   **变更**：标记 v1 版授权登录接口为已废弃。\n\n-   Release 1.3.0 (2022-08-24)\n\n    -   **新增**：新增担保支付进件、退分账、提现相关接口。\n\n    -   **新增**：随官方更新担保支付接口获取页面链接相关接口。\n\n-   Release 1.2.0 (2022-05-02)\n\n    -   **新增**：新增独立的小游戏接入点。\n\n    -   **变更**：重命名部分接口模型，将路由中的版本号信息后置。\n\n-   Release 1.1.0 (2022-05-02)\n\n    -   **新增**：新增小程序任务后台任务上传接口。\n\n    -   **新增**：新增课程库资质管理相关接口。\n\n    -   **新增**：新增 v2 版授权登录接口。\n\n    -   **新增**：随官方更新担保支付相关接口模型。\n\n    -   **变更**：升级公共组件至 v2.5.0。\n\n    -   **变更**：统一接口响应模型中关于错误代码的字段。\n\n-   Release 1.0.0 (2022-03-01)\n\n    -   首次发布。\n\n</details>\n\n---\n\n### 模块 `SKIT.FlurlHttpClient.ByteDance.DouyinOpen` 更新日志\n\n<details>\n\n<summary>[展开查看]</summary>\n\n-   Release 3.4.0 (2024-11-08)\n\n    -   **新增**：新增获取用户唯一标识接口。\n\n    -   **新增**：随官方更新视频评论相关接口。\n\n-   Release 3.3.0 (2024-07-14)\n\n    -   **新增**：新增获取消息中的多媒体资源接口。\n\n    -   **新增**：随官方更新获取评论列表接口模型。\n\n    -   **变更**：升级公共组件至 v3.1.0。\n\n-   Release 3.2.0 (2024-05-31)\n\n    -   **新增**：新增生活服务交易系统相关接口。\n\n    -   **新增**：新增行业解决方案开放能力配置相关接口。\n\n    -   **新增**：随官方更新创建视频、视频详情页跳转链接获取等接口模型。\n\n-   Release 3.1.0 (2024-05-09)\n\n    -   **新增**：新增小程序推广计划相关接口。\n\n    -   **修复**：修复部分接口 Content-Type 请求标头设置错误。影响版本：v3.0.0。\n\n-   Release 3.0.0 (2024-03-12)\n\n    -   **新增**：新增联合授权、用户经营身份管理、嵌入式播放、投稿任务、直播数据、经营工具等相关接口。\n\n    -   **新增**：新增评论管理、私信管理、群聊管理、意向用户管理等相关接口。\n\n    -   **新增**：新增获取 OpenTicket 接口。\n\n    -   **新增**：随官方更新获取用户公开信息接口模型。\n\n    -   **新增**：随官方更新团购核算验券准备接口模型。（_via_ [GitHub #23](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/pull/23)）\n\n    -   **变更**：升级公共组件至 v3.0.0。完整变更说明请参阅迁移指南。\n\n    -   **变更**：规范化部分接口模型命名，并移除部分已废弃接口。\n\n    -   **修复**：修复部分以反斜杠结尾的接口地址错误。\n\n    -   **修复**：修复部分接口 AccessToken 传参方式错误。\n\n-   Release 2.4.0 (2023-05-25)\n\n    -   **新增**：新增创建图文相关接口。\n\n    -   **新增**：随官方上传视频、分片上传视频、创建视频等接口地址。\n\n-   Release 2.3.0 (2023-04-15)\n\n    -   **新增**：新增互动管理场景跳转相关接口。\n\n    -   **新增**：随官方更新查询授权账号视频列表、查询特定视频的视频数据、获取用户粉丝数据等接口地址。\n\n    -   **变更**：移除头条视频、西瓜视频相关接口。\n\n-   Release 2.2.1 (2023-02-28)\n\n    -   **修复**：修复生活服务开放能力门店信息查询接口响应模型定义错误。（_via_ [Gitee #I6IG50](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/issues/I6IG50)）\n\n-   Release 2.2.0 (2023-02-27)\n\n    -   **新增**：新增部分抖音生活服务相关 Webhook 事件模型。\n\n    -   **新增**：新增抖音生活服务 SPI 验签及解密相关扩展方法。\n\n    -   **变更**：重命名扩展方法 `DouyinOpenClient.DecryptMobileNumber` 为 `DouyinOpenClient.DecryptOAuthUserInfoMobileNumber`。\n\n-   Release 2.1.0 (2023-02-21)\n\n    -   **新增**：新增物料配置相关接口。\n\n    -   **新增**：新增抖音生活服务创建适用人群、代运营、外卖等相关接口。\n\n-   Release 2.0.1 (2023-02-06)\n\n    -   **修复**：修复刷新接口调用凭证接口模型定义错误。\n\n-   Release 2.0.0 (2022-12-06)\n\n    -   **变更**：升级公共组件至 v2.6.0。\n\n-   Release 1.4.0 (2022-12-05)\n\n    -   **新增**：新增部分生活服务开放能力抖音生活服务相关接口。\n\n    -   **新增**：新增抖音生活服务开放能力会员相关 Webhook 事件模型。\n\n    -   **修复**：修复 `TikTokClientResponseExtra` 类型的拼写错误。\n\n-   Release 1.3.0 (2022-12-04)\n\n    -   **新增**：随官方更新抖音视频相关接口模型。\n\n    -   **新增**：随官方更新评论回复 Webhook 事件模型。\n\n    -   **变更**：移除部分已废弃接口。\n\n-   Release 1.2.0 (2022-08-25)\n\n    -   **新增**：新增服务市场开放能力相关接口。\n\n    -   **新增**：新增生活服务开放能力 CPS 佣金相关接口。\n\n    -   **新增**：新增生活服务开放能力抖音生活服务门店查询、团购核销、团购对账、会员接入、订单查询相关接口。\n\n    -   **变更**：调整 `TikTokClientOptions.Endpoints` 的默认值。\n\n-   Release 1.1.0 (2022-05-02)\n\n    -   **新增**：新增生活服务开放能力商品库接入相关接口。\n\n    -   **新增**：新增生活服务开放能力交易系统接入相关接口。\n\n    -   **变更**：升级公共组件至 v2.5.0。\n\n-   Release 1.0.0 (2022-03-07)\n\n    -   首次发布。\n\n</details>\n\n---\n\n### 模块 `SKIT.FlurlHttpClient.ByteDance.TikTokGlobal` 更新日志\n\n<details>\n\n<summary>[展开查看]</summary>\n\n-   Release 3.2.0 (2024-11-07)\n\n    -   **新增**：随官方更新调研（Research）相关接口。\n\n-   Release 3.1.0 (2024-07-14)\n\n    -   **变更**：升级公共组件至 v3.1.0。\n\n-   Release 3.0.1 (2024-03-10)\n\n    -   **修复**：修复部分以反斜杠结尾的接口地址错误。影响版本：v3.0.0。\n\n-   Release 3.0.0 (2024-03-04)\n\n    -   **新增**：新增内容发布（Content Posting）、个人数据可携带权（Data Portability）、调研（Research）、商业化内容（Commercial Content）等相关接口。\n\n    -   **变更**：移除原 v1 版 API 客户端。\n\n    -   **变更**：升级公共组件至 v3.0.0。完整变更说明请参阅迁移指南。\n\n-   Release 2.1.0 (2023-03-11)\n\n    -   **新增**：支持 OAuth、用户等相关的 v2 版 API。\n\n-   Release 2.0.0 (2022-12-06)\n\n    -   首次发布。\n\n</details>\n\n---\n\n### 模块 `SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop` 更新日志\n\n<details>\n\n<summary>[展开查看]</summary>\n\n-   Release 3.5.0 (2025-03-31)\n\n    -   **变更**：移除已废弃的旧版本 API。\n\n    -   **修复**：修复因大小写敏感导致的请求签名错误。（_via_ [GitHub #37](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/issues/37)）\n\n-   Release 3.4.0 (2024-11-14)\n\n    -   **新增**：新增商品制造商与责任人相关接口。\n\n    -   **新增**：新增外部订单相关接口。\n\n    -   **新增**：新增优惠券相关接口。\n\n    -   **新增**：新增 FBT 相关接口。\n\n    -   **新增**：新增获取授权的类目资产列表、搜索产品尺码表模板、发起商品分类升级任务、获取客服统计数据、创建履约起步价套餐等接口。\n\n    -   **新增**：随官方更新商品、订单、财务等相关接口模型。\n\n-   Release 3.3.0 (2024-07-14)\n\n    -   **新增**：随官方更新商品 SKU 相关接口模型。\n\n    -   **变更**：升级公共组件至 v3.1.0。\n\n-   Release 3.2.0 (2024-06-12)\n\n    -   **新增**：新增商品信息质检相关接口。\n\n    -   **新增**：随官方更新授权认证、商品分类等相关接口模型。\n\n-   Release 3.1.0 (2024-05-15)\n\n    -   **新增**：接入新版本 API（即 v202309 API）。\n\n    -   **新增**：新增反序列化 Webhook 事件相关的工具方法。\n\n    -   **变更**：独立化旧版本 API。\n\n-   Release 3.0.0 (2024-03-04)\n\n    -   **新增**：新增获取商品库存列表接口。\n\n    -   **新增**：新增商品预检接口。\n\n    -   **新增**：新增获取运输服务接口。\n\n    -   **新增**：随官方更新商品、订单等相关接口模型。\n\n    -   **变更**：升级公共组件至 v3.0.0。完整变更说明请参阅迁移指南。\n\n-   Release 2.1.0 (2023-05-09)\n\n    -   **新增**：新增创建品牌接口。\n\n-   Release 2.0.0 (2023-03-28)\n\n    -   首次发布。\n\n</details>\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "﻿# CONTRIBUTING\n\n在你参与贡献本项目之前，请先阅读如下指南：\n\n-   [如何提问？](#question)\n\n-   [如何报告缺陷？](#bug-report)\n\n-   [如何提出功能建议？](#feature-request)\n\n-   [如何发起拉取请求（Pull Request）？](#pull-request)\n\n---\n\n## <a name=\"question\"></a> 如何提问？\n\n如果你对如何使用本库有疑问，请先阅读本项目提供的开发文档，并在 Issue 列表中尝试搜索。\n\n如果你的疑问仍不能得到解决，请开启一个新的 Issue。\n\n---\n\n## <a name=\"bug-report\"></a> 如何报告缺陷？\n\n如果你发现源代码中的漏洞、运行发生的异常、或文档里的错误，你可以通过提交 Issue 来指出。当然，如果你可以提交修复后的 PR 就再好不过了。\n\n提交 Issue 时，请包含以下内容：\n\n1.  关于问题的简单描述。\n\n2.  发生问题的运行环境（如：操作系统版本，.NET Runtime 版本，引用本库的版本，等等）。\n\n3.  与问题相关的代码，或可复现问题的最小化项目（可上传至代码托管仓库或使用 GitHub Gist）。\n\n4.  抛出错误时的异常消息和堆栈跟踪。\n\n请谨记，你所提供的信息越丰富，对于我们的帮助就越大，修复的可能性也就越高。\n\n---\n\n## <a name=\"feature-request\"></a> 如何提出功能建议？\n\n如果你需要某些新功能，或对现有实现提出更好的建议，你可以通过提交 Issue 来说明。\n\n提交 Issue 前，请注意以下几点：\n\n1.  本库只专注于 API 的封装，更偏向于 SDK 而非一个完整的 Web 框架，请不要提出本应该在框架层实现的功能。\n\n2.  本库提供了很多可扩展的接口，请评估是否可以在不修改本项目的前提下实现你想要的功能。\n\n3.  稳定性至关重要，请谨慎提出需要大量破坏性变化的功能。\n\n---\n\n## <a name=\"pull-request\"></a> 如何发起拉取请求？\n\n在向本项目发起 PR 时，请确保已执行了以下操作：\n\n1. 检查新的代码是否遵循了本项目的现有代码格式和命名标准：\n\n    - **禁止**：源代码中不得包含连续的空白行，字段、属性、方法之间应保留一个空白行；\n\n    - **必须**：应确保目录结构与现有目录结构一致；\n\n    - **必须**：应使用大驼峰命名方式命名类（即 Class）、属性（即 Property）和方法（即 Method），具体可参考已有模型；\n\n    - **必须**：应遵循开发文档中关于 API 模型命名的方式来提供新的 API，具体可参考已有模型；\n\n    - **必须**：应为可公开访问的类、属性和方法提供 XML 文档注释，具体可参考已有注释；\n\n    - **必须**：API 模型中的数组形式的字段，在请求模型中应声明为 `IList` 泛型类型，在响应模型中应声明为数组类型，具体可参考已有模型；\n\n    - **必须**：API 模型中的子类型，应统一包含在一个名为 _Types_ 的公开的嵌套静态类中，具体可参考已有模型；\n\n    - **必须**：API 模型中的 JsonConverter，应统一嵌套在一个名为 _Converters_ 的内部的嵌套静态类中，具体可参考已有模型；\n\n    - **必须**：API 模型中的引用类型的非空属性，在请求模型中应赋值为该类型的默认构造实例（`string` 类型则为 `string.Empty`），在响应模型中应赋值为 `default!`，具体可参考已有模型；\n\n    - **必须**：API 模型中的引用类型的可空属性，应在声明时标记为 `class?`（_class_ 为具体类名），具体可参考已有模型；\n\n    - **必须**：API 模型中的属性，如果序列化后的命名为缩写，应恢复其完整形式（如 _img_ → _Image_、_thumb_ → _Thumbnail_、_avg_ → _Average_、_cid_ → _CategoryId_ 等等），但某些特定的专有名词则无需照此处理（如 _Id_、_Http_、_Url_、_Cgi_ 等等）；\n\n    - **建议**：API 模型中的属性，如果序列化后的取值只有 0 / 1、且日后也不可能会增加其他取值，可声明为 `bool` 类型；\n\n    - **建议**：API 模型中的属性，如果序列化后是日期时间类型的字符串，可声明为 `DateTimeOffset` 类型；\n\n    - **建议**：API 模型中的属性，如果序列化后是 JSON 格式的字符串，可声明为强类型并配合相应的 JsonConverter、而非直接声明为 `string` 类型；\n\n    - **建议**：API 模型中的 `bool` 类型的属性，命名可以 _Is_、_Has_ 等开头；\n\n    - **建议**：API 模型中的表示时间戳的属性，命名可以 _Timestamp_ 等结尾；\n\n    - 其他注意事项请参阅微软官方提供的[《框架设计准则》](https://docs.microsoft.com/zh-CN/dotnet/standard/design-guidelines)。\n\n2. 编写新的单元测试、并运行已有的单元测试来验证你的更改，所有功能和修复的错误都必须进行以验证它们是否有效：\n\n    - **禁止**：请注意单元测试项目的 `csproj` 文件，如果在其下添加新文件时，可能导致它的内容发生变化，请不要将此类修改操作提交到 git 中；\n\n    - **禁止**：请注意单元测试项目下的 `appsettings.json` 文件，请在克隆仓库后的第一时间执行 `git update-index --assume-unchanged` 命令，避免修改此文件后将敏感信息提交到 git 中；\n\n    - **必须**：Code Style 测试应完全通过，且提供新的 API 模型示例；\n\n    - **必须**：如果是非 API 接口的调整（如工具类等），则应提供测试用例；\n\n    - **必须**：单元测试项目下的 API 模型示例的目录结构与文件命名，应与源项目保持一致，具体可参考已有示例；\n\n    - **建议**：请尽可能地与字节跳动官方文档给出的示例保持一致。\n\n3. 规范 Commit Log：\n\n    - **必须**：提交记录的格式应固定为 `<type>(<scope>): <subject>`。\n\n    - **必须**：提交记录中的 `<type>`，可取值为：\n\n        - _feat_：新增或变更已有功能；\n        - _fix_：修复缺陷或拼写错误；\n        - _docs_：文档等内容的变更；\n        - _style_：格式调整（即不涉及任何代码内容上的变化）；\n        - _refactor_：重构（即代码内容发生变化，但不影响现有功能，也未新增任何功能）；\n        - _test_：测试相关；\n        - _chore_：其他杂项。\n\n    - **必须**：提交记录中的 `<scope>`，可取值为：\n\n        - _microapp_：关于 `SKIT.FlurlHttpClient.ByteDance.MicroApp` 项目的变化；\n        - _douyinopen_：关于 `SKIT.FlurlHttpClient.ByteDance.DouyinOpen` 项目的变化；\n        - _douyinshop_：关于 `SKIT.FlurlHttpClient.ByteDance.DouyinShop` 项目的变化；\n        - _oceanengine_：关于 `SKIT.FlurlHttpClient.ByteDance.OceanEngine` 项目的变化；\n        - _tiktok_：关于 `SKIT.FlurlHttpClient.ByteDance.TikTokGlobal` 项目的变化；\n        - _tiktokshop_：关于 `SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop` 项目的变化；\n        - 留空：不属于上述任何情形。\n\n    - **建议**：提交记录应遵循最小化原则，避免修改或新增了几十处、却混杂在一起提交，以免为日后搜索查询造成困扰。\n\n请注意，对软件来说，适当的规范和标准绝不是消灭代码内容的创造性、优雅性，而是限制过度个性化，以一种普遍认可的统一方式一起做事，提升协作效率，降低沟通成本。代码的字里行间流淌的是软件系统的血液，质量的提升是尽可能少踩坑，杜绝踩重复的坑，切实提升软件开发质量和团队协作效率。\n\n因此，本项目会严格约束 PR 规范，并有权对 PR 的发起者提出需求意见和建议，只到发起者做出符合要求修改后才会被批准合并。（注：已产生的提交记录可通过 `git rebase` 命令修改）\n\n另外需要说明的是，Gitee 同步仓库后可能会丢失 PR 中的提交记录，如果发起者介意这一点，请务必只在 GitHub 发起 PR。\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 RHQYZ\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance\n\n[![Gitee Stars](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/badge/star.svg?title=Stars)](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)\n[![Gitee Forks](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/badge/fork.svg?title=Forks)](https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)\n[![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)\n[![Vistors](https://visitor-badge.laobi.icu/badge?page_id=fudiwei.DotNetCore.SKIT.FlurlHttpClient.ByteDance&title=Visitors)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)\n[![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n基于 `Flurl.Http` 的字节跳动 HTTP API SDK，目前已包含抖音开放平台、抖音小程序开放平台、抖店开放平台、巨量引擎开放平台、TikTok Developer API、TikTok Shop Open Platform 等模块。\n\n> 更多 SKIT.FlurlHttpClient 系列开发工具包请[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient)。\n\n---\n\n## 特性\n\n-   基于 `Flurl.Http`。\n-   支持 .NET Framework 4.6.2+、.NET Core 3.1+、.NET 5.0+ 多目标框架。\n-   支持 Windows / Linux / macOS 多平台部署。\n-   支持 `System.Text.Json`（默认）和 `Newtonsoft.Json` 两种序列化方式。\n-   强类型接口模型。\n-   全异步式编程。\n-   提供 SourceLink 调试符号文件。\n-   完整、完善、完全的字节跳动 HTTP API 封装。\n\n---\n\n## 模块\n\n|                 名称                 |                                                                                                                                                                                                             NuGet                                                                                                                                                                                                              |                        其他                        |\n| :----------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |\n|             抖音开放平台             |             [![NuGet Version](https://img.shields.io/nuget/v/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.svg?label=NuGet)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.DouyinOpen) <br> [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.DouyinOpen)             |      [开发文档](./docs/DouyinOpen/README.md)       |\n| 抖音小程序开放平台（小程序、小游戏） |                 [![NuGet Version](https://img.shields.io/nuget/v/SKIT.FlurlHttpClient.ByteDance.MicroApp.svg?label=NuGet)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.MicroApp) <br> [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.MicroApp.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.MicroApp)                 |       [开发文档](./docs/MicroApp/README.md)        |\n|  抖店开放平台（抖音小店、今日特卖）  |                                                                                                                                                                                                          _已停止维护_                                                                                                                                                                                                          |      [开发文档](./docs/DouyinShop/README.md)       |\n|     巨量引擎开放平台（头条广告）     |                                                                                                                                                                                                            _开发中_                                                                                                                                                                                                            |                                                    |\n|         TikTok Developer API         |         [![NuGet Version](https://img.shields.io/nuget/v/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.svg?label=NuGet)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal) <br> [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal)         |   [Documentation](./docs/TikTokGlobal/README.md)   |\n|      TikTok Shop Open Platform       | [![NuGet Version](https://img.shields.io/nuget/v/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.svg?label=NuGet)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop) <br> [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop) | [Documentation](./docs/TikTokGlobalShop/README.md) |\n\n---\n\n## 参与贡献\n\n-   GitHub Repo：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git\n-   Gitee Repo：https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git\n\n以上仓库地址同步更新，均可接受 Issue 或 Pull Request。\n\n如何参与贡献请参阅 [CONTRIBUTING](./CONTRIBUTING.md)。\n\n---\n\n## 更新日志\n\n详细更新说明请参阅 [CHANGELOG](./CHANGELOG.md)。\n"
  },
  {
    "path": "SKIT.FlurlHttpClient.ByteDance.slnx",
    "content": "<Solution>\n  <Folder Name=\"/src/\">\n    <Project Path=\"src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.csproj\" />\n    <Project Path=\"src/SKIT.FlurlHttpClient.ByteDance.MicroApp/SKIT.FlurlHttpClient.ByteDance.MicroApp.csproj\" />\n    <Project Path=\"src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/SKIT.FlurlHttpClient.ByteDance.OceanEngine.csproj\" />\n    <Project Path=\"src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.csproj\" />\n    <Project Path=\"src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.csproj\" />\n  </Folder>\n  <Folder Name=\"/test/\">\n    <Project Path=\"test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests.csproj\" />\n    <Project Path=\"test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests.csproj\" />\n    <Project Path=\"test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests.csproj\" />\n    <Project Path=\"test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests.csproj\" />\n    <Project Path=\"test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests.csproj\" />\n  </Folder>\n</Solution>\n"
  },
  {
    "path": "docs/DouyinOpen/Advanced_Dispose.md",
    "content": "﻿## 避免内存泄漏\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：避免内存泄漏》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/DouyinOpen/Advanced_HttpClient.md",
    "content": "﻿## 配置 HttpClient\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：配置 HttpClient》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/DouyinOpen/Advanced_HttpClientFactory.md",
    "content": "﻿## 与 `IHttpClientFactory` 集成\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 最佳实践：与 `IHttpClientFactory` 集成》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将域名部分的 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变，即可访问。\n"
  },
  {
    "path": "docs/DouyinOpen/Advanced_Interceptor.md",
    "content": "﻿## 使用拦截器\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：使用拦截器》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 内置拦截器\n\n本库内置了一个用于在发出请求时自动生成请求签名的拦截器。\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/DouyinOpen/Advanced_JsonSerializer.md",
    "content": "﻿## 配置 JSON 序列化器\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：配置 JSON 序列化器》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_EventDeserialization.md",
    "content": "﻿## 如何解析 Webhook 事件？\n\n---\n\n对于抖音开放平台推送过来的 Webhook 事件，本库封装了直接解析成事件模型的扩展方法，下面给出一个示例：\n\n```csharp\n/* 以 authorize 事件为例 */\nstring webhookJson = \"{ ... }\";\nvar webhookModel = client.DeserializeEvent<Events.AuthorizeEvent>(webhookJson);\n```\n\n完整的 Webhook 模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events_ 目录。\n\n---\n\n### 事件类型：\n\n由于抖音开放平台会将全部事件推送到同一个 Webhook 地址上，开发者需要根据事件类型才能决定如何反序列化。\n\n这里给出一种解决方案：\n\n```csharp\nDouyinOpenEvent eventModel = client.DeserializeEvent(webhookJson);\nstring eventType = eventModel.Event?.ToLower();\n\nswitch (eventType)\n{\n    case \"authorize\":\n        {\n            var webhookModel = client.DeserializeEvent<Events.AuthorizeEvent>(webhookJson);\n        }\n        break;\n    // 省略其他情况\n}\n```\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_EventSignatureVerification.md",
    "content": "﻿## 如何验证 Webhook 事件签名？\n\n---\n\n> 请先自行阅读：\n>\n> [《抖音开放平台开发文档 - Webhooks：概述》](https://open.douyin.com/platform/doc/6850452582826067975)\n\n同样的，你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证，也可以通过扩展方法实现：\n\n```csharp\n/* 验证 Webhook 事件签名 */\nbool ret = client.VerifyEventSignature(\n    webhookJson: \"抖音 Webhook 事件中请求正文\",\n    webhookSignature: \"抖音 Webhook 事件中的 X-Douyin-Signature 字段\"\n);\n```\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_Extensions.md",
    "content": "﻿## 如何自定义额外的 API 接口？\n\n---\n\n如果有某些接口本库尚未支持，你可按照下面的示例自行扩展：\n\n```csharp\n/* 继承 DouyinOpenRequest 实现自定义请求类 */\npublic class MyFakeRequest : DouyinOpenRequest\n{\n    [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n    [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n    public string MyFakeProps { get; set; }\n}\n\n/* 继承 DouyinOpenResponse 实现自定义响应类 */\npublic class MyFakeResponse : DouyinOpenResponse<MyFakeResponse.Types.Data>\n{\n    public static class Types\n    {\n        public class Data : DouyinOpenResponseData\n        {\n            [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n            public string MyFakeProps { get; set; }\n        }\n    }\n}\n\n/* 扩展 DouyinOpenClient 方法 */\npublic static class MyFakeClientExtensions\n{\n    public static async Task<MyFakeResponse> ExecuteMyFakeAsync(this DouyinOpenClient client, MyFakeRequest request, CancellationToken cancellationToken = default)\n    {\n        if (client is null) throw new ArgumentNullException(nameof(client));\n        if (request is null) throw new ArgumentNullException(nameof(request));\n\n        IFlurlRequest flurlReq = client\n            .CreateRequest(request, HttpMethod.Post, \"my-fake-url\")\n            .SetQueryParam(\"open_id\", request.OpenId)\n            .SetQueryParam(\"access_token\", request.AccessToken);\n\n        return await client.SendRequestWithJsonAsync<MyFakeResponse>(flurlReq, request, cancellationToken);\n    }\n}\n```\n\n同样的，你也可自行扩展 Webhook 事件模型：\n\n```csharp\n/* 继承 DouyinOpenEvent 实现自定义的 Webhook 事件 */\npublic class MyFakeEvent : DouyinOpenEvent<MyFakeEvent.Types.Content>\n{\n    public static class Types\n    {\n        public class Content\n        {\n            [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n            public string MyFakeProps { get; set; }\n        }\n    }\n}\n```\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_GoodLifeSPIDecryption.md",
    "content": "﻿## 如何解密抖音生活服务 SPI 接口中的加密字段？\n\n---\n\n> 请先自行阅读：\n>\n> [《抖音开放平台开发文档 - 生活服务开放能力 - 接入前准备：加密字段解密方法》](https://partner.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/beforeinsert/decrypt)\n\n你可根据官方文档的规则利用本库提供的 `AESUtility` 工具类自行进行数据解密。\n\n此外，本库还封装了直接解密的扩展方法，下面给出一个示例：\n\n```csharp\nstring rawData = client.DecryptSPICipherField(\"密文\");\n```\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_MobileNumberDecryption.md",
    "content": "﻿## 如何解密用户公开信息中的手机号码？\n\n---\n\n> 请先自行阅读：\n>\n> [《抖音开放平台开发文档 - 用户管理：手机号解密代码示例》](https://open.douyin.com/platform/doc/6943439913106835470)\n\n你可根据官方文档的规则利用本库提供的 `AESUtility` 工具类自行进行数据解密。\n\n此外，本库还封装了直接解密的扩展方法，下面给出一个示例：\n\n```csharp\nstring rawMobileNumber = client.DecryptOAuthUserInfoMobileNumber(\"加密过的手机号\");\n```\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_ModelDefinition.md",
    "content": "﻿## 如何快速找到需要调用的 API 模型类名 / 方法名？\n\n---\n\n本库提供的请求模型、响应模型和接口方法，三者均保持同名。\n\n例如，获取粉丝列表的请求是 `FansListRequest`，响应是 `FansListResponse`，接口是 `ExecuteFansListAsync()`。知道其中一个，其余两个就可以快速地推断出了。\n\n再有，每个对象的命名与官方文档的接口地址大体保持一致。例如刚刚提到的获取粉丝列表，它的接口地址是 `[GET] /fans/list`，将其中的反斜杠去掉、并以大驼峰命名法的方式调整它，就可以得到前文提到的几个对象了。如果路由中带有版本信息，那么版本号一般都在结尾处，例如接口 `[POST] /douyin/v1/user/fans_data` 对应的是 `DouyinUserFansDataV1`。此外，部分接口地址会以 `/api/` 开头，在命名中会被省略。\n\n完整的模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models_ 目录。\n\n---\n\n### 抖音开放平台 API 支持情况：\n\n<details>\n\n<summary>[展开查看]</summary>\n\n|     |          抖音 API           |   备注   |\n| :-: | :-------------------------: | :------: |\n|  √  |          账号授权           |          |\n|  √  |          用户管理           |          |\n|  √  |          视频管理           |          |\n|  √  |     互动管理：私信管理      |          |\n|  √  |     互动管理：群聊管理      |          |\n|  √  |     互动管理：经营工具      |          |\n|  √  |   互动管理：意向用户管理    |          |\n|  √  |     互动管理：评论管理      |          |\n|  √  |     互动管理：场景跳转      |          |\n|  √  |     互动管理：投稿任务      |          |\n|  √  |          搜索管理           |          |\n|  √  |   数据开放服务：用户数据    |          |\n|  √  |   数据开放服务：视频数据    |          |\n|  √  |   数据开放服务：直播数据    |          |\n|  √  | 数据开放服务：粉丝画像数据  |          |\n|  √  | 数据开放服务：热点视频数据  |          |\n|  √  |   数据开放服务：星图数据    |          |\n|  √  |   数据开放服务：榜单数据    |          |\n|  √  |  企业号开放能力：评论管理   |          |\n|  ×  | <del>生活服务开放能力</del> | _开发中_ |\n|  √  |     工具能力：素材管理      |          |\n|  √  |  工具能力：小程序接口能力   |          |\n|  √  |     工具能力：沙盒管理      |          |\n|  √  |    工具能力：Ticket 管理    |          |\n|  √  |      服务市场开放能力       |          |\n|  √  |       小程序推广计划        |          |\n|  √  |          联合授权           |          |\n\n</details>\n"
  },
  {
    "path": "docs/DouyinOpen/Basic_Parameters.md",
    "content": "﻿## 如何生成 JSBridge 初始化时所需的参数及签名？\n\n---\n\n> 请先自行阅读：\n>\n> [《抖音开放平台开发文档 - 授权：JS 验证签名》](https://open.douyin.com/platform/doc/6850443440044410888)\n\n你可根据官方文档的规则利用本库提供的 `MD5Utility` 工具类自行进行签名生成。\n\n此外，本库还封装了直接生成参数及签名的扩展方法，下面给出一个示例：\n\n```csharp\n/* 以生成 sdk.config() 所需参数为例 */\nvar request = new Models.JSGetTicketRequest()\n{\n    AccessToken = \"抖音开放平台的 AccessToken\"\n};\nvar response = await client.ExecuteJSGetTicketAsync(request);\nvar paramMap = client.GenerateParametersForJSBridgeConfig(response.Data.Ticket, \"https://example.com\");\n```\n\n---\n\n### 【附】生成参数相关扩展方法速查表：\n\n-   生成客户端 JSBridge `sdk.config` 所需的参数字典：`GenerateParametersForJSBridgeConfig`\n\n-   生成抖音获取授权临时票据的 URL：`GenerateParameterizedUrlForPlatformOAuthConnect`\n"
  },
  {
    "path": "docs/DouyinOpen/Migration_V3.md",
    "content": "﻿## v3.x 迁移指南\n\nv3.x 版本是一个主要版本，其中包括了一些破坏性的变化。从 v2.x 升级到 v3.x 之前，请仔细阅读本文档。\n\n---\n\n### 目标框架和基础库的变更\n\n微软官方已于 2022 年 4 月 26 日宣布中止对 .NET Framework 4.6.1 的支持。因此，本项目的最低运行时要求调整为 .NET Framework 4.6.2。\n\n与此同时，相关的 .NET 基础库（即通常在 `System.*` 或 `Microsoft.*` 命名空间下的内置依赖）版本对齐至 .NET 8.0。\n\n### `Flurl.Http` 的变更\n\n本库所依赖的 `Flurl.Http` 版本已升级至 v4.0.0，并由此带来一些底层的破坏性变化。\n\n通常情况下，开发者不需要关注这些变化，除非你正在自定义额外的 API 接口。\n\n### 新的请求、响应模型\n\n原有的请求模型中的 `Timeout` 属性，变更为 `WithTimeout()` 方法：\n\n```csharp\n/* v2.x 设置单个请求超时时间 */\nrequest.Timeout = TimeSpan.FromMinutes(2);\n\n/* v3.x 设置单个请求超时时间 */\nrequest.WithTimeout(TimeSpan.FromMinutes(2));\n```\n\n原有的响应模型中的 `RawStatus` 属性，变更为 `GetRawStatus()` 方法；`RawHeaders` 属性，变更为 `GetRawHeaders()` 方法；`RawBytes` 属性，变更为 `GetRawBytes()` 方法：\n\n```csharp\n/* v2.x 读取单个响应原始状态码 */\nint statusCode = response.RawStatus;\n/* v2.x 读取单个响应原始响应标头 */\nIDictionary<string, string> headers = response.RawHeaders;\n/* v2.x 读取单个响应原始响应体 */\nbyte[] bytes = response.RawBytes;\n\n/* v3.x 读取单个响应原始状态码 */\nint statusCode = response.GetRawStatus();\n/* v3.x 读取单个响应原始响应标头 */\nHttpHeaderCollection headers = response.GetRawHeaders();\n/* v3.x 读取单个响应原始响应体 */\nbyte[] bytes = response.GetRawBytes();\n```\n\n需要注意的是，上述 Get 方法返回的均为同一个对象引用，因此请不要在获取后尝试修改它们的内容。\n\n### 新的构造器模式（配置 `HttpClient`）\n\n随着 `Flurl.Http` 的升级，原有的与 `IHttpClientFactory` 集成的方式发生了根本性的改变。\n\n为了应对这种变化（请参阅本文档[《与 `HttpClientFactory` 集成》](./Advanced_HttpClientFactory.md)这一章节），也为了日后能更加灵活地配置客户端，我们在新版本中提供了构造器模式来构造客户端：\n\n```csharp\nvar options = new DouyinOpenClientOptions() { /* 具体配置项略 */ };\nvar client = DouyinOpenClientBuilder.Create(options).Build();\n```\n\n当然，原有的实例化方式仍然可用：\n\n```csharp\nvar options = new DouyinOpenClientOptions() { /* 具体配置项略 */ };\nvar client = new DouyinOpenClient(options);\n```\n\n### 新的异常类型\n\n公共组件中提供了如下的异常类型：\n\n-   `CommonException`：异常基类。\n-   `CommonHttpException`：执行 HTTP 请求时引发的异常。\n-   `CommonTimeoutException`：超时引发的异常。\n-   `CommonSerializationException`：序列化或反序列化时引发的异常。\n-   `CommonInterceptorCallException`：拦截器引发的异常。\n\n模块内更加细化的异常信息，统一由 `DouyinOpenException` 异常类型包装，但废弃并移除了其派生的异常类型：\n\n-   `DouyinOpenRequestTimeoutException`\n-   `DouyinOpenEventSerializationException`\n\n### 基础类型：`SKIT.FlurlHttpClient.Primitives.EncodedeString`\n\n在进行加解密或哈希等操作时，参与运算的数据和最终得到的结果通常是字节数组（即 `byte[]`）形式。而在实际应用中，我们常常需要将这些字节序列转换成文本格式。我们发现即便是同一种加解密或哈希算法，在不同平台上所需要的编码方式也可能不同。比如同为 SHA256，在某些接口中需要转换为十六进制（HEX）编码传参，而在另一些接口中却需要转换为 Base64 编码传参。\n\n在过往的版本中，我们在不同的模块中针对不同平台的要求提供了单独的封装方法，这使得代码更加分散且不易维护。\n\n为了统一处理并简化这些差异，我们在公共组件中引入了 `EncodedString` 这一类型。`EncodedString` 类型是一个封装结构，它提供了统一的接口来处理不同编码方式的字符串。通过该类型，开发者可以不必关心底层使用的是哪种编码方式，从而使代码更加简洁和清晰。\n\n幸运的是，为了简化升级的难度，`EncodedString` 仍可以与 `String` 类型互相转换：\n\n```csharp\n// string → EncodedString\nstring str = \"U0tJVC5GbHVybEh0dHBDbGllbnQgaXMgQVdFU09NRSE=\";\nEncodedString estr = (EncodedString)str;\n\n// EncodedString → string\nEncodedString estr = new EncodedString(\"U0tJVC5GbHVybEh0dHBDbGllbnQgaXMgQVdFU09NRSE=\", EncodingKinds.Base64);\nstring str = (string)estr;\n```\n\n涉及此变化的包括 `AESUtility`、`MD5Utility`、`SHA1Utility`、`SHA256Utility`、`HMACUtility` 等工具类。\n\n### 基础类型：`SKIT.FlurlHttpClient.Primitives.ErroredResult`\n\n在进行数据验签等操作时，由于传入了错误的参数导致抛出异常，通常需要被视为验签失败。\n\n在过往的版本中，我们在相应的方法内部 `try-catch` 捕获所有异常，并直接返回 `false`。然而，这种做法虽然简化了返回值的处理，但却严重限制了开发者错误调试的能力，因为它无法提供关于异常的详细信息。虽然有部分方法提供了带有 `(..., out Exception error)` 引用参数的重载，但却不能在异步方法中所使用。\n\n为了解决这一问题，我们在公共组件中引入了 `ErroredResult` 这一类型。`ErroredResult` 类型是一个封装结构，它不仅可以在逻辑上表示操作的成功与否，而且能够携带发生的异常信息，极大地便利了异常处理和调试过程。\n\n幸运的是，为了简化升级的难度，`ErroredResult` 仍可以与 `Boolean` 类型互相转换：\n\n```csharp\n// Boolean → ErroredResult\nbool ret = true;\nErroredResult eret = (ErroredResult)ret;\n\n// ErroredResult → Boolean\nErroredResult eret = new ErroredResult(true);\nbool ret = (bool)eret;\n```\n\n涉及此变化的包括 `VerifyEventSignature()` 等扩展方法。\n\n### 方法命名参数的变化\n\n为了统一并规范化各个模块，我们调整了部分方法的命名参数。如果你在调用该方法时使用了命名实参，请注意修改。\n\n涉及此变化的包括 `DeserializeEvent()`、`VerifyEventSignature()` 等扩展方法，及 `AESUtility`、`MD5Utility`、`SHA1Utility`、`SHA256Utility`、`HMACUtility` 等工具类。\n"
  },
  {
    "path": "docs/DouyinOpen/README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n\n基于 `Flurl.Http` 的[抖音开放平台](https://open.douyin.com/platform) HTTP API SDK。\n\n---\n\n## 功能\n\n-   基于抖音开放平台 API 封装。\n-   提供了抖音开放平台 API 所需的 AES、MD5、SHA-1、SHA-256、HMAC-SHA-256 等算法工具类。\n-   提供了生成授权链接、生成 JSBridge 签名、解析回调通知事件、解密手机号码等扩展方法。\n-   配合 [SKIT.FlurlHttpClient.ByteDance.MicroApp](../MicroApp/README.md) 模块，可无缝对接抖音小程序开放平台。\n\n---\n\n## 快速入门\n\n> [!IMPORTANT]\n> 此目录下的文档适用于 v3.x 版本的模块。如果你正在使用 2.x 版本，请移步至 GitHub/Gitee 的已归档分支。\n\n### 安装：\n\n提示：如果你使用 Visual Studio NuGet 管理器图形化界面，请在搜索结果中勾选“**包括预发行版**”。\n\n```shell\n# 通过 NuGet 安装\n> Install-Package SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n\n# 通过 dotnet-tools 安装\n> dotnet add package SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n```\n\n### 初始化：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.DouyinOpen;\n\nvar options = new DouyinOpenClientOptions()\n{\n    ClientKey = \"抖音开放平台应用 Key\",\n    ClientSecret = \"抖音开放平台应用密钥\"\n};\nvar client = DouyinOpenClientBuilder.Create(options).Build();\n```\n\n### 请求 & 响应：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.DouyinOpen;\nusing SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models;\n\n/* 以获取用户信息接口为例 */\nvar request = new OAuthUserInfoRequest()\n{\n    AccessToken = \"抖音开放平台的 AccessToken\",\n    OpenId = \"用户唯一标识\"\n};\nvar response = await client.ExecuteOAuthUserInfoAsync(request);\nif (response.IsSuccessful())\n{\n    Console.WriteLine(\"昵称：\" + response.Data.Nickname);\n    Console.WriteLine(\"头像：\" + response.Data.AvatarUrl);\n}\nelse\n{\n    Console.WriteLine(\"错误代码：\" + response.Extra?.ErrorCode);\n    Console.WriteLine(\"错误描述：\" + response.Extra?.ErrorDescription);\n}\n```\n\n---\n\n## 基础用法\n\n-   ⭐ [如何快速找到需要调用的 API 模型类名 / 方法名？](./Basic_ModelDefinition.md)\n\n-   [如何解析 Webhook 事件？](./Basic_EventDeserialization.md)\n\n-   [如何验证 Webhook 事件签名？](./Basic_EventSignatureVerification.md)\n\n-   ⭐ [如何生成 JSBridge 初始化时所需的参数及签名？](./Basic_Parameters.md)\n\n-   [如何解密用户公开信息中的手机号码？](./Basic_MobileNumberDecryption.md)\n\n-   [如何解密抖音生活服务 SPI 接口中的加密字段？](./Basic_GoodLifeSPIDecryption.md)\n\n-   [如何自定义额外的 API 接口？](./Basic_Extensions.md)\n\n---\n\n## 高级技巧\n\n-   [配置 JSON 序列化器](./Advanced_JsonSerializer.md)\n\n-   [配置 HttpClient](./Advanced_HttpClient.md)\n\n-   [使用拦截器](./Advanced_Interceptor.md)\n\n-   [避免内存泄漏](./Advanced_Dispose.md)\n\n-   [与 `IHttpClientFactory` 集成](./Advanced_HttpClientFactory.md)\n\n---\n\n## 迁移指南\n\n-   [v3.x 迁移指南](./Migration_V3.md)\n"
  },
  {
    "path": "docs/DouyinShop/README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance.DouyinShop\n\n基于 `Flurl.Http` 的[抖店开放平台](https://op.jinritemai.com/) HTTP API SDK。\n\n---\n\n## 公告\n\n抖店开放平台已于 2022-12-05 提供了官方的 .NET SDK（[点此传送](https://op.jinritemai.com/docs/guide-docs/1041/1072)），因此本项目将无限期搁置开发。\n\n如果你有二次开发需要，请 Fork 项目后自行维护。\n"
  },
  {
    "path": "docs/MicroApp/Advanced_Dispose.md",
    "content": "﻿## 避免内存泄漏\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：避免内存泄漏》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/MicroApp/Advanced_HttpClient.md",
    "content": "﻿## 配置 HttpClient\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：配置 HttpClient》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/MicroApp/Advanced_HttpClientFactory.md",
    "content": "﻿## 与 `IHttpClientFactory` 集成\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 最佳实践：与 `IHttpClientFactory` 集成》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将域名部分的 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变，即可访问。\n"
  },
  {
    "path": "docs/MicroApp/Advanced_Interceptor.md",
    "content": "﻿## 使用拦截器\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：使用拦截器》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 内置拦截器\n\n本库内置了一个用于在发出请求时自动生成请求签名的拦截器。\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/MicroApp/Advanced_JsonSerializer.md",
    "content": "﻿## 配置 JSON 序列化器\n\n---\n\n本功能来自于公共组件，请参阅公共组件下的相关文档：\n\n> [《SKIT.FlurlHttpClient 高级用法：配置 JSON 序列化器》](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/blob/main/docs/README.md)\n\n---\n\n### 镜像站点\n\n国内用户如访问 GitHub 网络状况不佳，可在打开上述链接后，手动将浏览器地址栏中的域名部分 **github.com** 替换为 **gitee.com**、剩余路径部分保持不变即可。\n"
  },
  {
    "path": "docs/MicroApp/Basic_EventDeserialization.md",
    "content": "﻿## 如何解析回调通知事件？\n\n---\n\n对于抖音小程序推送过来的回调通知事件，本库封装了直接解析成事件模型的扩展方法，下面给出一个示例：\n\n```csharp\n/* 如果是 JSON 格式的通知内容，以 text 事件为例 */\nstring webhookJson = \"{ ... }\";\nvar webhookModel = client.DeserializeEventFromJson<Events.TextMessageEvent>(webhookJson);\n\n/* 如果是 XML 格式的通知内容，以 text 事件为例 */\nstring webhookXml = \"<xml> ... </xml>\";\nvar webhookModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(webhookXml);\n```\n\n完整的回调通知模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Events_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/OpenApi/Events_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/ProductApi/Events_ 目录。\n\n---\n\n### 事件类型：\n\n由于抖音小程序会将全部事件推送到同一个回调通知地址上，开发者需要根据事件类型才能决定如何反序列化。\n\n这里给出两种解决方案。\n\n一种是利用 `System.Xml.Linq`：\n\n```csharp\nXDocument xDoc = XDocument.Parse(webhookXml);\nstring msgType = xDoc.Root?.Element(\"MsgType\")?.Value?.ToUpper();\n```\n\n另一种是利用本库的扩展方法：\n\n```csharp\nByteDanceMicroAppEvent eventModel = client.DeserializeEventFromXml(webhookXml);\nstring msgType = eventModel.MessageType?.ToUpper();\n\nswitch (msgType)\n{\n    case \"TEXT\":\n        {\n            var webhookModel = client.DeserializeEventFromXml<Events.TextMessageEvent>(webhookXml);\n        }\n        break;\n    // 省略其他情况\n}\n```\n"
  },
  {
    "path": "docs/MicroApp/Basic_EventSignatureVerification.md",
    "content": "﻿## 如何验证回调通知事件签名？\n\n---\n\n> 请先自行阅读：\n>\n> [《抖音小程序文档 - 消息推送客服：验证消息来自今日头条》](https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/component/message-push-customer-service)\n\n同样的，你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证，也可以通过扩展方法实现：\n\n```csharp\n/* 在初始化客户端时需指定服务器推送的相关参数 */\nvar options = new DouyinMicroAppClientOptions()\n{\n    // 其他配置项略\n    PushToken = \"服务器推送的 Token\"\n};\nvar client = DouyinMicroAppClientBuilder.Create(options).Build();\n\n/* 验证抖音服务器 */\nbool ret = client.VerifyEventSignatureForEcho(\n    webhookTimestamp: \"抖音小程序回调通知中的 timestamp 字段\",\n    webhookNonce: \"抖音小程序回调通知中的 nonce 字段\",\n    webhookMsg: \"抖音回调通知中的 msg 字段\",\n    webhookSignature: \"抖音回调通知中的 signature 字段\"\n);\n```\n"
  },
  {
    "path": "docs/MicroApp/Basic_Extensions.md",
    "content": "﻿## 如何自定义额外的 API 接口？\n\n---\n\n如果有某些接口本库尚未支持，你可按照下面的示例自行扩展：\n\n```csharp\n/* 继承 DouyinMicroAppRequest 实现自定义请求类 */\npublic class MyFakeRequest : DouyinMicroAppRequest\n{\n    [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n    [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n    public string MyFakeProps { get; set; }\n}\n\n/* 继承 DouyinMicroAppResponse 实现自定义响应类 */\npublic class MyFakeResponse : DouyinMicroAppResponse\n{\n    [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n    [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n    public string MyFakeProps { get; set; }\n}\n\n/* 扩展 DouyinMicroAppClient 方法 */\npublic static class MyFakeClientExtensions\n{\n    public static async Task<MyFakeResponse> ExecuteMyFakeAsync(this DouyinMicroAppClient client, MyFakeRequest request, CancellationToken cancellationToken = default)\n    {\n        if (client is null) throw new ArgumentNullException(nameof(client));\n        if (request is null) throw new ArgumentNullException(nameof(request));\n\n        IFlurlRequest flurlReq = client\n            .CreateRequest(request, HttpMethod.Post, \"my-fake-url\")\n            .SetQueryParam(\"access_token\", request.AccessToken);\n\n        return await client.SendRequestWithJsonAsync<MyFakeResponse>(flurlReq, request, cancellationToken);\n    }\n}\n```\n\n同样的，你也可自行扩展回调通知事件模型：\n\n```csharp\n/* 继承 DouyinMicroAppEvent 实现自定义的 JSON 格式的回调通知事件 */\npublic class MyFakeEvent : DouyinMicroAppEvent, DouyinMicroAppEvent.Serialization.IJsonSerializable\n{\n    [Newtonsoft.Json.JsonProperty(\"my_fake_props\")]\n    [System.Text.Json.Serialization.JsonPropertyName(\"my_fake_props\")]\n    public string MyFakeProps { get; set; }\n}\n\n/* 继承 DouyinMicroAppEvent 实现自定义的 XML 格式的回调通知事件 */\npublic class MyFakeEvent : DouyinMicroAppEvent, DouyinMicroAppEvent.Serialization.IXmlSerializable\n{\n    [System.Xml.Serialization.XmlElement(\"my_fake_props\")]\n    public string MyFakeProps { get; set; }\n}\n```\n"
  },
  {
    "path": "docs/MicroApp/Basic_ModelDefinition.md",
    "content": "﻿## 如何快速找到需要调用的 API 模型类名 / 方法名？\n\n---\n\n本库提供的请求模型、响应模型和接口方法，三者均保持同名。\n\n例如，发送订阅消息的请求是 `AppsMessageCustomSendRequest`，响应是 `AppsMessageCustomSendResponse`，接口是 `ExecuteAppsMessageCustomSendAsync()`。知道其中一个，其余两个就可以快速地推断出了。\n\n再有，每个对象的命名与官方文档的接口地址大体保持一致。例如刚刚提到的发送订阅消息，它的接口地址是 `[POST] /apps/message/custom/send`，将其中的反斜杠去掉、并以大驼峰命名法的方式调整它，就可以得到前文提到的几个对象了。如果路由中带有版本信息，那么版本号一般都在结尾处，例如接口 `[POST] /v2/tags/image` 对应的是 `TagsImageV2`。此外，部分接口地址会以 `/api/` 开头，在命名中会被省略。\n\n完整的模型定义可以参考项目目录下的 _src/SKIT.FlurlHttpClient.ByteDance.Api/Models_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/OpenApi/Models_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/ProductApi/Models_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/RoleApi/Models_、_src/SKIT.FlurlHttpClient.ByteDance.Api/ExtendedSDK/Webcast/Models_ 目录。\n\n---\n\n### 抖音小程序开放平台 API 支持情况：\n\n#### 1. 小程序\n\n<details>\n\n<summary>[展开查看]</summary>\n\n|     |                 抖音 API                  |                备注                |\n| :-: | :---------------------------------------: | :--------------------------------: |\n|  ×  |            <del>联合授权</del>            | 异构协议，请使用 `DouyinOpen` 模块 |\n|  ×  | <del>接口调用凭证：经营能力调用凭证</del> | 异构协议，请使用 `DouyinOpen` 模块 |\n|  ×  | <del>接口调用凭证：用户授权调用凭证</del> | 异构协议，请使用 `DouyinOpen` 模块 |\n|  √  |     接口调用凭证：非用户授权调用凭证      |                                    |\n|  √  |                   登录                    |                                    |\n|  √  |           小程序码与小程序链接            |                                    |\n|  √  |                Web 化接入                 |                                    |\n|  ×  |           <del>私聊和群聊</del>           | 异构协议，请使用 `DouyinOpen` 模块 |\n|  ×  |            <del>解决方案</del>            | 异构协议，请使用 `DouyinOpen` 模块 |\n|  √  |                 线索组件                  |                                    |\n|  √  |                 隐私协议                  |                                    |\n|  √  |               直播预约能力                |                                    |\n|  √  |                 视频能力                  |                                    |\n|  √  |                 搜索能力                  |                                    |\n|  √  |                 任务能力                  |                                    |\n|  √  |                   电商                    |                                    |\n|  ×  |            <del>生活服务</del>            |              _开发中_              |\n|  √  |                 短剧行业                  |                                    |\n|  √  |                 用户信息                  |                                    |\n|  √  |                   分享                    |                                    |\n|  √  |                   客服                    |                                    |\n|  √  |            交易工具：信用免押             |                                    |\n|  √  |            交易工具：周期代扣             |                                    |\n|  √  |                 小程序券                  |                                    |\n|  √  |          交易系统：通用交易系统           |                                    |\n|  ×  |   <del>交易系统：生活服务交易系统</del>   | 异构协议，请使用 `DouyinOpen` 模块 |\n|  √  |          交易系统：行业交易系统           |                                    |\n|  √  |                  素材库                   |                                    |\n|  √  |                 内容安全                  |                                    |\n|  √  |             泛知识：角色系统              |                                    |\n|  √  |              泛知识：课程库               |                                    |\n|  √  |                 担保支付                  |                                    |\n|  √  |                   评价                    |                                    |\n|  √  |          其他：直播间自定义封面           |                                    |\n|  √  |  其他：抖音开放平台与小程序视频打通能力   |                                    |\n|  √  |              其他：上传资源               |                                    |\n|  √  |                 订阅消息                  |                                    |\n|  √  |              小程序推广计划               |                                    |\n|  √  |                   挂载                    |                                    |\n|  √  |                   分发                    |                                    |\n|  √  |                 数据分析                  |                                    |\n|  √  |                 服务类目                  |                                    |\n|  √  |                直播间能力                 |                                    |\n|  √  |               抖音开放能力                |                                    |\n|  √  |              页面结构自定义               |                                    |\n|  √  |              普通二维码绑定               |                                    |\n|  √  |                抖音号绑定                 |                                    |\n|  √  |                  流量主                   |                                    |\n|  √  |                 抖店绑定                  |                                    |\n\n</details>\n\n#### 2. 小游戏\n\n<details>\n\n<summary>[展开查看]</summary>\n\n|     |   抖音 API   | 备注 |\n| :-: | :----------: | :--: |\n|  √  | 接口调用凭证 |      |\n|  √  |     登录     |      |\n|  √  |   数据缓存   |      |\n|  √  |    二维码    |      |\n|  √  |   订阅消息   |      |\n|  √  |   礼包福袋   |      |\n|  √  |   内容安全   |      |\n\n</details>\n\n#### 3. 服务商平台\n\n<details>\n\n<summary>[展开查看]</summary>\n\n|     |               抖音 API               |   备注   |\n| :-: | :----------------------------------: | :------: |\n|  √  |        代开发小程序：上传资源        |          |\n|  √  |          代开发小程序：授权          |          |\n|  √  |          代开发小程序：域名          |          |\n|  √  |        代开发小程序：模板管理        |          |\n|  √  |    代开发小程序：代商家管理小程序    |          |\n|  √  | 代开发小程序：代商家入驻抖音开放平台 |          |\n|  ×  |  <del>代开发生活服务商家应用</del>   | _开发中_ |\n\n</details>\n\n#### 4. 直播小玩法\n\n<details>\n\n<summary>[展开查看]</summary>\n\n|     | 抖音 API | 备注 |\n| :-: | :------: | :--: |\n|  √  | 直播能力 |      |\n"
  },
  {
    "path": "docs/MicroApp/Migration_V3.md",
    "content": "﻿## v3.x 迁移指南\n\nv3.x 版本是一个主要版本，其中包括了一些破坏性的变化。从 v2.x 升级到 v3.x 之前，请仔细阅读本文档。\n\n---\n\n### 目标框架和基础库的变更\n\n微软官方已于 2022 年 4 月 26 日宣布中止对 .NET Framework 4.6.1 的支持。因此，本项目的最低运行时要求调整为 .NET Framework 4.6.2。\n\n与此同时，相关的 .NET 基础库（即通常在 `System.*` 或 `Microsoft.*` 命名空间下的内置依赖）版本对齐至 .NET 8.0。\n\n### `Flurl.Http` 的变更\n\n本库所依赖的 `Flurl.Http` 版本已升级至 v4.0.0，并由此带来一些底层的破坏性变化。\n\n通常情况下，开发者不需要关注这些变化，除非你正在自定义额外的 API 接口。\n\n### 新的请求、响应模型\n\n原有的请求模型中的 `Timeout` 属性，变更为 `WithTimeout()` 方法：\n\n```csharp\n/* v2.x 设置单个请求超时时间 */\nrequest.Timeout = TimeSpan.FromMinutes(2);\n\n/* v3.x 设置单个请求超时时间 */\nrequest.WithTimeout(TimeSpan.FromMinutes(2));\n```\n\n原有的响应模型中的 `RawStatus` 属性，变更为 `GetRawStatus()` 方法；`RawHeaders` 属性，变更为 `GetRawHeaders()` 方法；`RawBytes` 属性，变更为 `GetRawBytes()` 方法：\n\n```csharp\n/* v2.x 读取单个响应原始状态码 */\nint statusCode = response.RawStatus;\n/* v2.x 读取单个响应原始响应标头 */\nIDictionary<string, string> headers = response.RawHeaders;\n/* v2.x 读取单个响应原始响应体 */\nbyte[] bytes = response.RawBytes;\n\n/* v3.x 读取单个响应原始状态码 */\nint statusCode = response.GetRawStatus();\n/* v3.x 读取单个响应原始响应标头 */\nHttpHeaderCollection headers = response.GetRawHeaders();\n/* v3.x 读取单个响应原始响应体 */\nbyte[] bytes = response.GetRawBytes();\n```\n\n需要注意的是，上述 Get 方法返回的均为同一个对象引用，因此请不要在获取后尝试修改它们的内容。\n\n### 新的构造器模式（配置 `HttpClient`）\n\n随着 `Flurl.Http` 的升级，原有的与 `IHttpClientFactory` 集成的方式发生了根本性的改变。\n\n为了应对这种变化（请参阅本文档[《与 `HttpClientFactory` 集成》](./Advanced_HttpClientFactory.md)这一章节），也为了日后能更加灵活地配置客户端，我们在新版本中提供了构造器模式来构造客户端：\n\n```csharp\nvar options = new DouyinMicroAppClientOptions() { /* 具体配置项略 */ };\nvar client = DouyinMicroAppClientBuilder.Create(options).Build();\n```\n\n当然，原有的实例化方式仍然可用：\n\n```csharp\nvar options = new DouyinMicroAppClientOptions() { /* 具体配置项略 */ };\nvar client = new DouyinMicroAppClient(options);\n```\n\n### 新的客户端和入口点\n\n原 `ByteDanceMicroAppClient` 更名为 `DouyinMicroAppClient`。其余相关类型的重命名略。\n\n由于抖音官方增加了一批使用非用户授权调用凭证（即 `ClientToken`）的接口，并与原来的使用用户授权调用凭证（即 `AccessToken`）的接口有了显著区别。我们为此重新抽象了新、旧两种的接口模型。请注意新的 `DouyinMicroAppClient` 客户端配置项中的新、旧版入口点的独立设置。\n\n在未来的版本更新中，我们将与抖音官方保持同步，逐步废弃旧版接口模型，直至最终彻底移除旧版入口点。\n\n### 新的异常类型\n\n公共组件中提供了如下的异常类型：\n\n-   `CommonException`：异常基类。\n-   `CommonHttpException`：执行 HTTP 请求时引发的异常。\n-   `CommonTimeoutException`：超时引发的异常。\n-   `CommonSerializationException`：序列化或反序列化时引发的异常。\n-   `CommonInterceptorCallException`：拦截器引发的异常。\n\n模块内更加细化的异常信息，统一由 `DouyinMicroAppException`（即原 `ByteDanceMicroAppException`）异常类型包装，但废弃并移除了其派生的异常类型：\n\n-   `ByteDanceMicroAppRequestTimeoutException`\n-   `ByteDanceMicroAppEventSerializationException`\n\n### 基础类型：`SKIT.FlurlHttpClient.Primitives.EncodedeString`\n\n在进行加解密或哈希等操作时，参与运算的数据和最终得到的结果通常是字节数组（即 `byte[]`）形式。而在实际应用中，我们常常需要将这些字节序列转换成文本格式。我们发现即便是同一种加解密或哈希算法，在不同平台上所需要的编码方式也可能不同。比如同为 SHA256，在某些接口中需要转换为十六进制（HEX）编码传参，而在另一些接口中却需要转换为 Base64 编码传参。\n\n在过往的版本中，我们在不同的模块中针对不同平台的要求提供了单独的封装方法，这使得代码更加分散且不易维护。\n\n为了统一处理并简化这些差异，我们在公共组件中引入了 `EncodedString` 这一类型。`EncodedString` 类型是一个封装结构，它提供了统一的接口来处理不同编码方式的字符串。通过该类型，开发者可以不必关心底层使用的是哪种编码方式，从而使代码更加简洁和清晰。\n\n幸运的是，为了简化升级的难度，`EncodedString` 仍可以与 `String` 类型互相转换：\n\n```csharp\n// string → EncodedString\nstring str = \"U0tJVC5GbHVybEh0dHBDbGllbnQgaXMgQVdFU09NRSE=\";\nEncodedString estr = (EncodedString)str;\n\n// EncodedString → string\nEncodedString estr = new EncodedString(\"U0tJVC5GbHVybEh0dHBDbGllbnQgaXMgQVdFU09NRSE=\", EncodingKinds.Base64);\nstring str = (string)estr;\n```\n\n涉及此变化的包括 `AESUtility`、`MD5Utility`、`SHA1Utility`、`HMACUtility` 等工具类。\n\n### 基础类型：`SKIT.FlurlHttpClient.Primitives.ErroredResult`\n\n在进行数据验签等操作时，由于传入了错误的参数导致抛出异常，通常需要被视为验签失败。\n\n在过往的版本中，我们在相应的方法内部 `try-catch` 捕获所有异常，并直接返回 `false`。然而，这种做法虽然简化了返回值的处理，但却严重限制了开发者错误调试的能力，因为它无法提供关于异常的详细信息。虽然有部分方法提供了带有 `(..., out Exception error)` 引用参数的重载，但却不能在异步方法中所使用。\n\n为了解决这一问题，我们在公共组件中引入了 `ErroredResult` 这一类型。`ErroredResult` 类型是一个封装结构，它不仅可以在逻辑上表示操作的成功与否，而且能够携带发生的异常信息，极大地便利了异常处理和调试过程。\n\n幸运的是，为了简化升级的难度，`ErroredResult` 仍可以与 `Boolean` 类型互相转换：\n\n```csharp\n// Boolean → ErroredResult\nbool ret = true;\nErroredResult eret = (ErroredResult)ret;\n\n// ErroredResult → Boolean\nErroredResult eret = new ErroredResult(true);\nbool ret = (bool)eret;\n```\n\n涉及此变化的包括 `VerifyEventSignatureForEcho()`、`VerifyEventSignatureFromJson()`、`VerifyEventSignatureFromXml()` 等扩展方法。\n\n### 服务商平台、泛知识 SDK 的变化\n\n原服务商平台 SDK 客户端的命名空间发生了变化，由 `SKIT.FlurlHttpClient.ByteDance.MicroApp.SDK.OpenApi` 移动至 `SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi`。\n\n原泛知识课程库 SDK 客户端的命名空间发生了变化，由 `SKIT.FlurlHttpClient.ByteDance.MicroApp.SDK.ProductApi` 移动至 `SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.ProductApi`。\n\n原泛知识角色系统 SDK 客户端的命名空间发生了变化，由 `SKIT.FlurlHttpClient.ByteDance.MicroApp.SDK.RoleApi` 移动至 `SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.RoleApi`。\n\n同时，我们提供了新的直播小玩法 SDK，位于 `SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast` 命名空间。\n\n### 方法命名参数的变化\n\n为了统一并规范化各个模块，我们调整了部分方法的命名参数。如果你在调用该方法时使用了命名实参，请注意修改。\n\n涉及此变化的包括 `DeserializeEventFromJson()`、`DeserializeEventFromXml()`、`VerifyEventSignatureForEcho()`、`VerifyEventSignatureFromJson()`、`VerifyEventSignatureFromXml()` 等扩展方法，及 `AESUtility`、`MD5Utility`、`SHA1Utility`、`HMACUtility` 等工具类。\n"
  },
  {
    "path": "docs/MicroApp/README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance.MicroApp\n\n基于 `Flurl.Http` 的[抖音小程序开放平台](https://microapp.bytedance.com/) HTTP API SDK。\n\n本模块仅支持抖音小程序专属的 API，如需接入与抖音开放平台共享的 API，请移步 [`SKIT.FlurlHttpClient.ByteDance.DouyinOpen`](../DouyinOpen/README.md) 模块。\n\n---\n\n## 功能\n\n-   基于抖音小程序开放平台 API 封装。\n-   提供了抖音小程序所需的 RSA、AES、MD5、SHA-1、HMAC-SHA-256 等算法工具类。\n-   提供了解析回调通知事件等扩展方法。\n-   配合 [SKIT.FlurlHttpClient.ByteDance.DouyinOpen](../DouyinOpen/README.md) 模块，可无缝对接抖音开放平台。\n\n---\n\n## 快速入门\n\n> [!IMPORTANT]\n> 此目录下的文档适用于 v3.x 版本的模块。如果你正在使用 2.x 版本，请移步至 GitHub/Gitee 的已归档分支。\n\n### 安装：\n\n提示：如果你使用 Visual Studio NuGet 管理器图形化界面，请在搜索结果中勾选“**包括预发行版**”。\n\n```shell\n# 通过 NuGet 安装\n> Install-Package SKIT.FlurlHttpClient.ByteDance.MicroApp\n\n# 通过 dotnet-tools 安装\n> dotnet add package SKIT.FlurlHttpClient.ByteDance.MicroApp\n```\n\n### 初始化：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp;\n\nvar options = new DouyinMicroAppClientOptions()\n{\n    AppId = \"抖音小程序 AppId\",\n    AppSecret = \"抖音小程序 AppSecret\",\n    AppKeyVersion = \"应用密钥版本号，用于交易系统等需要请求签名的 API，不用则不填\",\n    AppPrivateKey = \"应用密钥私钥，用于交易系统等需要请求签名的 API，不用则不填\",\n    ECPaySalt = \"担保支付相关服务的密钥，不用则不填\"\n};\nvar client = DouyinMicroAppClientBuilder.Create(options).Build();\n```\n\n### 请求 & 响应：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp;\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp.Models;\n\n/* 以获取用户授权登录凭证接口为例 */\nvar request = new AppsJsCode2SessionRequest()\n{\n    Code = \"登录 Code，与匿名 Code 二选一\",\n    AnoymousCode = \"匿名 Code，与登录 Code 二选一\"\n};\nvar response = await client.ExecuteAppsJsCode2SessionAsync(request);\nif (response.IsSuccessful())\n{\n    Console.WriteLine(\"会话密钥：\" + response.SessionKey);\n    Console.WriteLine(\"用户 OpenId：\" + response.OpenId);\n    Console.WriteLine(\"匿名 OpenId：\" + response.AnonymousOpenId);\n}\nelse\n{\n    Console.WriteLine(\"错误代码：\" + response.ErrorNumber);\n    Console.WriteLine(\"错误描述：\" + response.ErrorTips);\n}\n```\n\n### 独立的扩展客户端（服务商平台、泛知识课程库、泛知识角色系统、直播小玩法等）：\n\n部分 API 的接入点、接口模型公共参数等配置项与基础 API 完全不同，需要使用独立的扩展客户端。\n\n-   服务商平台：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi;\n\nvar options = new DouyinMicroAppOpenApiClientOptions()\n{\n    ComponentAppId = \"第三方应用 AppId\",\n    ComponentAppSecret = \"第三方应用 AppSecret\"\n};\nvar client = DouyinMicroAppOpenApiClientBuilder.Create(options).Build();\n```\n\n-   泛知识课程库：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi;\n\nvar options = new DouyinMicroAppProductApiClientOptions()\n{\n    AppId = \"抖音小程序 AppId\",\n    AppSecret = \"抖音小程序 AppSecret\"\n};\nvar client = DouyinMicroAppProductApiClientBuilder.Create(options).Build();\n```\n\n-   泛知识角色系统：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi;\n\nvar options = new DouyinMicroAppRoleApiClientOptions()\n{\n    AppId = \"抖音小程序 AppId\",\n    AppSecret = \"抖音小程序 AppSecret\"\n};\nvar client = DouyinMicroAppRoleApiClientBuilder.Create(options).Build();\n```\n\n-   直播小玩法：\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast;\n\nvar options = new DouyinMicroAppWebcastClientOptions()\n{\n    AppId = \"抖音小程序 AppId\",\n    AppSecret = \"抖音小程序 AppSecret\",\n    AppKeyVersion = \"应用密钥版本号\",\n    AppPrivateKey = \"应用密钥私钥\",\n    PlatformPublicKey = \"平台密钥公钥\"\n};\nvar client = DouyinMicroAppWebcastClientBuilder.Create(options).Build();\n```\n\n这些扩展客户端在用法上基础客户端完全相同，只需引入各自的命名空间即可。\n\n---\n\n## 基础用法\n\n-   ⭐ [如何快速找到需要调用的 API 模型类名 / 方法名？](./Basic_ModelDefinition.md)\n\n-   [如何解析回调通知事件？](./Basic_EventDeserialization.md)\n\n-   [如何验证回调通知事件签名？](./Basic_EventSignatureVerification.md)\n\n-   [如何自定义额外的 API 接口？](./Basic_Extensions.md)\n\n---\n\n## 高级技巧\n\n-   [配置 JSON 序列化器](./Advanced_JsonSerializer.md)\n\n-   [配置 HttpClient](./Advanced_HttpClient.md)\n\n-   [使用拦截器](./Advanced_Interceptor.md)\n\n-   [避免内存泄漏](./Advanced_Dispose.md)\n\n-   [与 `IHttpClientFactory` 集成](./Advanced_HttpClientFactory.md)\n\n---\n\n## 迁移指南\n\n-   [v3.x 迁移指南](./Migration_V3.md)\n"
  },
  {
    "path": "docs/TikTokGlobal/Basic_ModelDefinition.md",
    "content": "﻿## API Reference Manual\n\nNaming Policies:\n\n-   Request Models: _`${API}`_ + `Request`\n-   Response Models: _`${API}`_ + `Response`\n-   API Methods: `Execute` + _`${API}`_ + `Async`\n\n---\n\n### APIs\n\n<details>\n\n<summary>[View Details]</summary>\n\n-   Manage User Access Tokens\n    -   Fetch an Access Token Using an Authorization Aode: `OAuthAccessToken`\n    -   Refresh an Access Token Using a Refresh Token: `OAuthRefreshToken`\n    -   Revoke Access: `OAuthRevokeToken`\n-   QR Code Authorization\n    -   Get QR Code: `OAuthGetQrcode`\n    -   Check QR Code Status: `OAuthCheckQrcode`\n-   Content Posting\n    -   Video - Direct Post\n        -   Initialize the Posting Pequest: `PostPublishVideoInit`\n        -   Send Video to TikTok Servers: `PostUploadVideo`\n    -   Video - Upload\n        -   Initialize Video Upload: `PostPublishInboxVideoInit`\n        -   Send Video to TikTok Servers: `PostUploadVideo`\n    -   Photo - Direct Post\n        -   Initialize the Posting Pequest: `PostPublishContentInit`\n    -   Query Creator Info: `PostPublishCreatorInfoQuery`\n    -   Get Post Status: `PostPublishStatusFetch`\n-   Data Portability\n    -   Add Data Request: `UserDataAdd`\n    -   Cancel Data Request: `UserDataCancel`\n    -   Check Status of Data Request: `UserDataCheck`\n    -   Download: `UserDataDownload`\n-   Display\n    -   Get User Info: `UserInfo`\n    -   Query Videos: `VideoQuery`\n    -   List Videos: `VideoList`\n-   Research\n    -   Query Videos: `ResearchVideoQuery`\n    -   Query User Info: `ResearchUserInfo`\n    -   Query Video Comments: `ResearchVideoCommentList`\n    -   Query User Liked Videos: `ResearchUserLikedVideos`\n    -   Query User Pinned Videos: `ResearchUserPinnedVideos`\n    -   Query User Followers: `ResearchUserFollowers`\n    -   Query User Following: `ResearchUserFollowing`\n    -   Query User Reposted Videos: `ResearchUserRepostedVideos`\n    -   Query Playlists: `ResearchPlaylistInfo`\n-   Commercial Content\n    -   Query Ads: `ResearchAdlibAdQuery`\n    -   Query Advertisers: `ResearchAdlibAdvertiserQuery`\n    -   Get Ad Details: `ResearchAdlibAdDetail`\n    -   Get Ad Report: `ResearchAdlibAdReport`\n    -   Query Commercial Content: `ResearchAdlibCommercialContentQuery`\n\n</details>\n"
  },
  {
    "path": "docs/TikTokGlobal/README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n\nA HTTP API SDK for [TikTok Developer API](https://developers.tiktok.com/) based on `Flurl.Http`.\n\n---\n\n## Features\n\n-   Based on TikTok Developer API.\n\n---\n\n## Get Started\n\n> [!IMPORTANT]\n> The documents are applicable to version 3.x of this SDK. If you are using version 2.x, please move to the archived branches on GitHub/Gitee.\n\n### Installation:\n\n```shell\n# Install by NuGet\n> Install-Package SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n\n# Install by .NET CLI\n> dotnet add package SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n```\n\n### Initialization:\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobal;\n\nvar options = new TikTokV2ClientOptions()\n{\n    ClientKey = \"${CLIENT_KEY}\",\n    ClientSecret = \"${CLIENT_SECRET}}\"\n};\nvar client = TikTokV2ClientBuilder.Create(options).Build();\n```\n\n### Requests & Responses:\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobal;\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models;\n\n/* Example: Fetch Access Token Using Authorization Code */\nvar request = new OAuthAccessTokenRequest()\n{\n    Code = \"AUTHORIZATION_CODE\"\n};\nvar response = await client.ExecuteOAuthAccessTokenAsync(request);\nif (response.IsSuccessful())\n{\n    Console.WriteLine(\"AccessToken: \" + response.Data.AccessToken);\n    Console.WriteLine(\"OpenId: \" + response.Data.OpenId);\n}\nelse\n{\n    Console.WriteLine(\"Error: \" + response.ErrorCode);\n    Console.WriteLine(\"ErrorDescription: \" + response.ErrorDescription);\n}\n```\n\n---\n\n## Basic Usage\n\n-   [API Reference Manual](./Basic_ModelDefinition.md)\n"
  },
  {
    "path": "docs/TikTokGlobalShop/Basic_LegacyAPI.md",
    "content": "﻿## Legacy API (pre-v202309)\n\nLegacy API versions (pre-v202309) will no longer be supported or maintained from 2024-06-30 and will be retired on 2024-12-31.\n\nNew apps should use v202309 exclusively and not legacy versions.\n\nSince version v3.1.0 in this SDK, we have isolated the legacy versions API. If you are still using them, please follow below:\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy;\n\nvar options = new TikTokShopLegacyClientOptions()\n{\n    AppKey = \"${APP_KEY}\",\n    AppSecret = \"${APP_SECRET}}\"\n};\nvar client = TikTokShopLegacyClientBuilder.Create(options).Build();\n```\n\n---\n\n### APIs\n\n<details>\n\n<summary>[View Details]</summary>\n\n-   Authorization\n    -   Get Access Token: `AuthGetToken`\n    -   Refresh Access Token: `AuthRefreshToken`\n-   Shop\n    -   Get Authorized Shop: `ShopGetAuthorizedShopList`\n-   Seller\n    -   Get Active Shop List: `SellerGetGlobalActiveShopList`\n    -   Check Global Product Mode: `SellerCheckGlobalProductMode`\n-   Product\n    -   Upload File: `ProductUploadFile`\n    -   Upload Image: `ProductUploadImage`\n    -   Create Product: `ProductCreateProduct`\n    -   Delete Product: `ProductDeleteProducts`\n    -   Edit Product: `ProductUpdateProduct`\n    -   Update Stock: `ProductUpdateProductStock`\n    -   Get Product List: `ProductSearchProducts`\n    -   Get Product Detail: `ProductGetProductDetail`\n    -   Get Product Stock: `ProductGetProductStocks`\n    -   Deactivate Product: `ProductDeactivateProducts`\n    -   Activate Product: `ProductActivateProducts`\n    -   Recover Deleted Product: `ProductRecoverProducts`\n    -   Update Price: `ProductUpdateProductPrice`\n    -   Get Categories: `ProductGetCategoryList`\n    -   Get Brands: `ProductGetBrandList`\n    -   Create Brand: `ProductCreateBrand`\n    -   Get Attributes: `ProductGetAttributeList`\n    -   Get Category Rule: `ProductGetCategoryRules`\n    -   Category Recommended: `ProductRecommendCategory`\n    -   Pre-check for Operating Product: `ProductPrecheck`\n-   Order\n    -   Get Order Detail: `OrderGetOrderDetail`\n    -   Get Order List: `OrderSearchOrders`\n    -   Ship Order: `OrderShipOrder`\n-   Fulfillment\n    -   Verify Order Split: `FulfillmentVerifyOrderSplit`\n    -   Confirm Order Split: `FulfillmentConfirmOrderSplit`\n    -   Search Pre Combine Package: `FulfillmentSearchPreCombinePackages`\n    -   Get Package Shipping Document: `FulfillmentGetShippingDocument`\n    -   Update Package Shipping Info: `FulfillmentUpdateShippingInfo`\n    -   Get Package Shipping Info: `FulfillmentGetShippingInfo`\n    -   Search Package: `FulfillmentSearchPackages`\n    -   Ship Package: `FulfillmentShipPackage`\n    -   Get Package Pickup Config: `FulfillmentGetPackagePickupConfigList`\n    -   Remove Package Order: `FulfillmentRemovePackageOrders`\n    -   Confirm Precombine Package: `FulfillmentConfirmPreCombinePackage`\n    -   Get Package Detail: `FulfillmentGetPackageDetail`\n    -   Fulfillment Upload Image: `FulfillmentUploadImage`\n    -   Update Package Delivery Status: `FulfillmentUpdatePackageDeliveryStatus`\n    -   Fulfillment Upload File: `FulfillmentUploadFile`\n    -   Batch Ship Packages: `FulfillmentBatchShipPackage`\n    -   Get Shipping Service: `FulfillmentGetShippingService`\n    -   Create Label: `FulfillmentCreateLabel`\n-   Logistics\n    -   Get Subscribed Delivery Options: `LogisticsGetSubscribedDeliveryOptions`\n    -   Update Shipping Info: `LogisticsUpdateShippingInfo`\n    -   Get Shipping Document: `LogisticsGetShippingDocument`\n    -   Get Shipping Provider: `LogisticsGetShippingProviderList`\n    -   Get Shipping Info: `LogisticsGetShippingInfo`\n    -   Get Warehouse List: `LogisticsGetWarehouseList`\n-   Reverse\n    -   Reject Reverse Request: `ReverseRejectReverseRequest`\n    -   Get Reverse Order List: `ReverseSearchReverseOrders`\n    -   Confirm Reverse Request: `ReverseConfirmReverseRequest`\n    -   Cancel Order: `ReverseCancelOrder`\n    -   Get Reject Reason List: `ReverseGetRejectReasonList`\n-   Finance\n    -   Get Settlements: `FinanceSearchSettlements`\n    -   Get Transactions: `FinanceSearchTransactions`\n    -   Get Order Settlements: `FinanceGetOrderSettlementList`\n-   Global Product\n    -   Create Global Product: `GlobalProductCreateProduct`\n    -   Get Global Product List: `GlobalProductSearchProducts`\n    -   Get Global Product Detail: `GlobalProductGetProductDetail`\n    -   Publish Global Product: `GlobalProductPublishProduct`\n    -   Update Global Product Price: `GlobalProductUpdateProductPrice`\n    -   Get Global Categories: `GlobalProductGetCategoryList`\n    -   Edit Global Product: `GlobalProductUpdateProduct`\n    -   Get Global Attributes: `GlobalProductGetAttributeList`\n    -   Get Global Category Rule: `GlobalProductGetCategoryRules`\n    -   Delete Global Product: `GlobalProductDeleteProducts`\n-   Promotion\n    -   Update Basic Information: `PromotionUpdateActivity`\n    -   Get Promotion List: `PromotionSearchActivities`\n    -   Deactivate Promotion: `PromotionDeactivateActivity`\n    -   Remove Promotion Item: `PromotionRemoveActivityItems`\n    -   Get Promotion Details: `PromotionGetActivityDetail`\n    -   Add/Update Discount Item: `PromotionAddOrUpdateActivityItems`\n    -   Add Promotion: `PromotionCreateActivity`\n-   Supply Chain\n    -   Package Fulfillment Data Sync: `SupplyChainSyncPackageFulfillmentData`\n\n</details>\n"
  },
  {
    "path": "docs/TikTokGlobalShop/Basic_ModelDefinition.md",
    "content": "﻿## API Reference Manual\n\nNaming Policies:\n\n-   Request Models: _`${API}`_ + `Request`\n-   Response Models: _`${API}`_ + `Response`\n-   API Methods: `Execute` + _`${API}`_ + `Async`\n\n---\n\n### APIs\n\nNotes: The following catalog is consistent with the catalog structure of [TikTokShop Partner Center API Reference](https://partner.tiktokshop.com/docv2/page/6632a7434585a502e1cb5591).\n\n<details>\n\n<summary>[View Details]</summary>\n\n-   Authentication\n    -   Get Access Token: `AuthGetToken`\n    -   Refresh Access Token: `AuthRefreshToken`\n-   Authorization\n    -   Get Authorized Category Assets: `AuthorizationGetCategoryAssets`\n    -   Get Authorized Shops: `AuthorizationGetShops`\n-   Event\n    -   Get Shop Webhooks: `EventGetWebhooks`\n    -   Update Shop Webhook: `EventUpdateWebhook`\n    -   Delete Shop Webhook: `EventDeleteWebhook`\n-   Seller\n    -   Get Seller Permissions: `SellerGetPermissions`\n    -   Get Active Shops: `SellerGetShops`\n-   Products\n    -   Check Listing Prerequisites: `ProductGetPrerequisites`\n    -   Get Categories: `ProductGetCategories`\n    -   Recommend Categories: `ProductRecommendCategories`\n    -   Get Category Rules: `ProductGetCategoryRules`\n    -   Get Attributes: `ProductGetCategoryAttributes`\n    -   Get Brands: `ProductGetBrands`\n    -   Create Custom Brands: `ProductCreateBrand`\n    -   Check Product Listing: `ProductCreateProductListingCheck`\n    -   Upload Product Image: `ProductUploadImage`\n    -   Upload Product File: `ProductUploadFile`\n    -   Search Size Charts: `ProductSearchSizeCharts`\n    -   Create Product: `ProductCreateProduct`\n    -   Partial Edit Product: `ProductUpdateProductPartially`\n    -   Edit Product: `ProductUpdateProduct`\n    -   Activate Products: `ProductActivateProducts`\n    -   Deactivate Products: `ProductDeactivateProducts`\n    -   Delete Products: `ProductDeleteProducts`\n    -   Recover Products: `ProductRecoverProducts`\n    -   Get Product: `ProductGetProductDetail`\n    -   Search Products: `ProductSearchProducts`\n    -   Update Price: `ProductUpdateProductPrice`\n    -   Update Inventory: `ProductUpdateProductInventory`\n    -   Inventory Search: `ProductGetInventories`\n    -   Product Information Issue Diagnosis: `ProductGetProductDiagnoses`\n    -   Get Products SEO Words: `ProductGetProductSEOWords`\n    -   Get Recommended Product Title And Description: `ProductGetProductSuggestions`\n    -   Optimized Images: `ProductOptimizeImages`\n    -   Get Global Categories: `ProductGetGlobalCategories`\n    -   Recommend Global Categories: `ProductRecommendGlobalCategories`\n    -   Get Global Category Rules: `ProductGetGlobalCategoryRules`\n    -   Get Global Attributes: `ProductGetGlobalCategoryAttributes`\n    -   Create Global Product: `ProductCreateGlobalProduct`\n    -   Publish Global Product: `ProductPublishGlobalProduct`\n    -   Edit Global Product: `ProductUpdateGlobalProduct`\n    -   Delete Global Products: `ProductDeleteGlobalProducts`\n    -   Get Global Product: `ProductGetGlobalProductDetail`\n    -   Search Global Products: `ProductSearchGlobalProducts`\n    -   Update Global Inventory: `ProductUpdateGlobalProductInventory`\n    -   Create Manufacturer: `ProductCreateComplianceManufacturer`\n    -   Partial Edit Manufacturer: `ProductUpdateComplianceManufacturerPartially`\n    -   Search Manufacturers: `ProductSearchComplianceManufacturers`\n    -   Create Responsible Person: `ProductCreateComplianceResponsiblePerson`\n    -   Partial Edit Responsible Person: `ProductUpdateComplianceResponsiblePersonPartially`\n    -   Search Responsible Persons: `ProductSearchComplianceResponsiblePersons`\n    -   Create Category Upgrade Task: `ProductCreateProductCategoryUpgradeTask`\n    -   Listing Schemas: `ProductGetListingSchemas`\n-   Promotion\n    -   Create Activity: `PromotionCreateActivity`\n    -   Update Activity: `PromotionUpdateActivity`\n    -   Deactivate Activity: `PromotionDeactivateActivity`\n    -   Get Activity: `PromotionGetActivityDetail`\n    -   Search Activities: `PromotionSearchActivities`\n    -   Update Activity Product: `PromotionUpdateActivityProducts`\n    -   Remove Activity Product: `PromotionDeleteActivityProducts`\n    -   Get Coupon: `PromotionGetCouponDetail`\n    -   Search Coupons: `PromotionSearchCoupons`\n-   Orders\n    -   Get Order List: `OrderSearchOrders`\n    -   Get Order Detail: `OrderBatchGetOrderDetail`\n    -   Get Price Detail: `OrderGetOrderPriceDetail`\n    -   Add External Order References: `OrderCreateExternalOrder`\n    -   Get External Order References: `OrderGetExternalOrders`\n    -   Search Order By External Order Reference: `OrderSearchExternalOrders`\n-   Fulfillment\n    -   Get Order Split Attributes: `FulfillmentGetOrderSplitAttributes`\n    -   Split Orders: `FulfillmentSplitOrder`\n    -   Get Eligible Shipping Service: `FulfillmentSearchOrderShippingServices`\n    -   Create First Mile Bundle: `FulfillmentCreateBundle`\n    -   Create Packages: `FulfillmentCreatePackage`\n    -   Search Package: `FulfillmentSearchPackages`\n    -   Search Combinable Packages: `FulfillmentSearchCombinablePackages`\n    -   Combine Package: `FulfillmentCombinePackage`\n    -   Uncombine Packages: `FulfillmentUncombinePackage`\n    -   Get Package Handover Time Slots: `FulfillmentGetPackageHandoverTimeSlots`\n    -   Ship Package: `FulfillmentShipPackage`\n    -   Batch Ship Packages: `FulfillmentBatchShipPackages`\n    -   Mark Package As Shipped: `FulfillmentUpdateOrderPackages`\n    -   Get Package Shipping Document: `FulfillmentGetPackageShippingDocuments`\n    -   Get Package Detail: `FulfillmentGetPackageDetail`\n    -   Get Tracking: `FulfillmentGetOrderTracking`\n    -   Update Shipping Info: `FulfillmentUpdateOrderShippingInfo`\n    -   Update Package Shipping Info: `FulfillmentUpdatePackageShippingInfo`\n    -   Fulfillment Upload Delivery File: `FulfillmentUploadFile`\n    -   Fulfillment Upload Delivery Image: `FulfillmentUploadImage`\n    -   Update Package Delivery Status: `FulfillmentBatchUpdatePackagesDeliveryStatus`\n-   Fulfillment By TikTok (FBT)\n    -   Get FBT Merchant Onboarded Regions: `FBTGetMerchantOnboardedRegions`\n    -   Get FBT Warehouse List: `FBTGetWarehouses`\n    -   Get Inbound Order: `FBTGetInboundOrders`\n    -   Search FBT Inventory: `FBTGetInventories`\n    -   Search FBT Inventory Record: `FBTGetInventoryRecords`\n    -   Search Goods Info: `FBTGetGoods`\n-   Logistics\n    -   Get Warehouse List: `LogisticsGetWarehouses`\n    -   Get Global Seller Warehouse: `LogisticsGetGlobalWarehouses`\n    -   Get Warehouse Delivery Options: `LogisticsGetWarehouseDeliveryOptions`\n    -   Get Shipping Providers: `LogisticsGetDeliveryOptionShippingProviders`\n-   Return and Refund\n    -   Get Aftersale Eligibility: `ReturnRefundGetOrderAftersaleEligibility`\n    -   Get Reject Reasons: `ReturnRefundGetRejectReasons`\n    -   Create Return: `ReturnRefundCreateReturn`\n    -   Approve Return: `ReturnRefundApproveReturn`\n    -   Reject Return: `ReturnRefundRejectReturn`\n    -   Search Returns: `ReturnRefundSearchReturns`\n    -   Get Return Records: `ReturnRefundGetReturnRecords`\n    -   Cancel Order: `ReturnRefundCreateCancellation`\n    -   Approve Cancellation: `ReturnRefundApproveCancellation`\n    -   Reject Cancellation: `ReturnRefundRejectCancellation`\n    -   Search Cancellations: `ReturnRefundSearchCancellations`\n    -   Calculate Refund: `ReturnRefundCalculateRefund`\n-   Finance\n    -   Get Statements: `FinanceGetStatements`\n    -   Get Statement Transactions: `FinanceGetStatementTransactions`\n    -   Get Order Statement Transactions: `FinanceGetOrderStatementTransactions`\n    -   Get Payments: `FinanceGetPayments`\n    -   Get Withdrawals: `FinanceGetWithdrawals`\n-   Customer Service\n    -   Create Conversation: `CustomerServiceCreateConversation`\n    -   Get Conversations: `CustomerServiceGetConversations`\n    -   Get Conversation Messages: `CustomerServiceGetConversationMessages`\n    -   Upload Buyer Messages Image: `CustomerServiceUploadImage`\n    -   Send Message: `CustomerServiceCreateConversationMessage`\n    -   Read Message: `CustomerServiceReadConversationMessage`\n    -   Get Agent Settings: `CustomerServiceGetAgentSettings`\n    -   Update Agent Settings: `CustomerServiceUpdateAgentSettings`\n    -   Get Customer Service Performance: `CustomerServiceGetPerformance`\n-   Supply Chain\n    -   Confirm Package Shipment: `SupplyChainSyncPackages`\n\n</details>\n"
  },
  {
    "path": "docs/TikTokGlobalShop/README.md",
    "content": "﻿# SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n\nA HTTP API SDK for [TikTok Shop Open Platform](https://partner.tiktokshop.com/) based on `Flurl.Http`.\n\n---\n\n## Features\n\n-   Based on TikTok Shop Open Platform API.\n-   Auto-generated signature on API requests.\n-   Provides some algorithm utilities (such as HMAC-SHA-256).\n\n---\n\n## Get Started\n\n> [!IMPORTANT]\n> The documents are applicable to version 3.x of this SDK. If you are using version 2.x, please move to the archived branches on GitHub/Gitee.\n\n### Installation:\n\n```shell\n# Install by NuGet\n> Install-Package SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n\n# Install by .NET CLI\n> dotnet add package SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n```\n\n### Initialization:\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop;\n\nvar options = new TikTokShopClientOptions()\n{\n    AppKey = \"${APP_KEY}\",\n    AppSecret = \"${APP_SECRET}}\"\n};\nvar client = TikTokShopClientBuilder.Create(options).Build();\n```\n\n### Requests & Responses:\n\n```csharp\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop;\nusing SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models;\n\n/* Example: Get Order List */\nvar request = new OrderSearchOrdersRequest()\n{\n    AccessToken = \"${ACCESS_TOKEN}\",\n    ShopCipher = \"${SHOP_CIPHER}\",\n};\nvar response = await client.ExecuteOrderSearchOrdersAsync(request);\nif (response.IsSuccessful())\n{\n    Console.WriteLine(\"Orders: \" + response.Data.OrderList);\n    Console.WriteLine(\"Total: \" + response.Data.TotalCount);\n}\nelse\n{\n    Console.WriteLine(\"Code: \" + response.Code);\n    Console.WriteLine(\"Message: \" + response.Message);\n}\n```\n\n---\n\n## Basic Usage\n\n-   [API Reference Manual](./Basic_ModelDefinition.md)\n\n-   [Legacy API (pre-v202309)](./Basic_LegacyAPI.md)\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 一个抖音开放平台 API HTTP 客户端。\n    /// </summary>\n    public class DouyinOpenClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的抖音开放平台凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinOpenClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinOpenClient(DouyinOpenClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinOpenClient(DouyinOpenClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? DouyinOpenEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinOpenRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinOpenResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinOpenResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsFormUrlEncodedAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinOpenResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.FormUrlEncoded); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken).ConfigureAwait(false) :\n                await base.SendFlurlRequestAsFormUrlEncodedAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinOpenClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinOpenClientBuilder : ICommonClientBuilder<DouyinOpenClient>\n    {\n        private readonly DouyinOpenClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinOpenClientBuilder(DouyinOpenClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinOpenClient> ICommonClientBuilder<DouyinOpenClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinOpenClient> ICommonClientBuilder<DouyinOpenClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinOpenClient> ICommonClientBuilder<DouyinOpenClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinOpenClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinOpenClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinOpenClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinOpenClient Build()\n        {\n            DouyinOpenClient client = _disposeClient.HasValue\n                ? new DouyinOpenClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinOpenClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinOpenClientBuilder\n    {\n        public static DouyinOpenClientBuilder Create(DouyinOpenClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinOpenClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinOpenClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinOpenClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinOpenEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = DouyinOpenEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音开放平台应用 Key。\n        /// </summary>\n        public string ClientKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音开放平台应用密钥。\n        /// </summary>\n        public string ClientSecret { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 Webhook 验签秘钥。\n        /// </summary>\n        public string WebhookSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 抖音开放平台 API 接口域名。\n    /// </summary>\n    public static class DouyinOpenEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://open.douyin.com\";\n\n        /// <summary>\n        /// 沙盒域名。\n        /// </summary>\n        public const string SANDBOX = \"https://open-sandbox.douyin.com\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 表示抖音开放平台 API Webhook 事件的基类。\n    /// </summary>\n    public class DouyinOpenEvent : ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n        public virtual string Event { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置应用的 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public virtual string ClientKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置事件发起者用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"from_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"from_user_id\")]\n        public virtual string? FromUserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件接收者用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_user_id\")]\n        public virtual string? ToUserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public virtual string? LogId { get; set; }\n    }\n\n    /// <summary>\n    /// 表示抖音开放平台 API Webhook 事件的泛型基类。\n    /// </summary>\n    public abstract class DouyinOpenEvent<TContent> : DouyinOpenEvent\n    {\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public virtual TContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenException.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 当调用抖音开放平台 API 出错时引发的异常。\n    /// </summary>\n    public class DouyinOpenException : CommonException\n    {\n        /// <inheritdoc/>\n        public DouyinOpenException()\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinOpenException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinOpenException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 抖音开放平台 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinOpenRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置接口调用凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/DouyinOpenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 抖音开放平台 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinOpenResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音开放平台 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public virtual int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取抖音开放平台 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public virtual string? ErrorDescription { get; set; }\n\n        /// <summary>\n        /// 获取抖音开放平台 API 返回的扩展信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public virtual DouyinOpenResponseExtra? Extra { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音开放平台 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorCode\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200\n                && ErrorCode == 0\n                && (Extra?.ErrorCode).GetValueOrDefault() == 0\n                && (Extra?.SubErrorCode).GetValueOrDefault() == 0;\n        }\n    }\n\n    /// <summary>\n    /// 抖音开放平台 API 响应的返回数据字段。\n    /// </summary>\n    public abstract class DouyinOpenResponseData\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? ErrorDescription { get; set; }\n    }\n\n    /// <summary>\n    /// 抖音开放平台 API 响应的扩展信息字段。\n    /// </summary>\n    public sealed class DouyinOpenResponseExtra\n    {\n        /// <summary>\n        /// 获取请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logid\")]\n        public string LogId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取毫秒级时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"now\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"now\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public long Now { get; set; }\n\n        /// <summary>\n        /// 获取错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int? ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? ErrorDescription { get; set; }\n\n        /// <summary>\n        /// 获取子错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_error_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_error_code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int? SubErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取子错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_description\")]\n        public string? SubErrorDescription { get; set; }\n    }\n\n    /// <summary>\n    /// 抖音开放平台 API 响应的泛型基类。\n    /// </summary>\n    public abstract class DouyinOpenResponse<TData> : DouyinOpenResponse\n        where TData : DouyinOpenResponseData\n    {\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置接口返回消息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public string? Message { get; set; }\n\n        /// <summary>\n        /// <inheritdoc/>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && (Data?.ErrorCode).GetValueOrDefault() == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/GoodLife/LifeMemberJoinEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 life_member_join 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/member/member.join ]]>\n    /// </para>\n    /// </summary>\n    public class LifeMemberJoinEvent : DouyinOpenEvent<LifeMemberJoinEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置商家 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string AccountId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string MobileNumber { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/GoodLife/LifeMemberLeaveEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 life_member_leave 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/member/member.join ]]>\n    /// </para>\n    /// </summary>\n    public class LifeMemberLeaveEvent : DouyinOpenEvent<LifeMemberLeaveEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content : LifeMemberJoinEvent.Types.Content\n            {\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/GoodLife/LifeProductAuditEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 life_product_audit 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/goods.audit ]]>\n    /// </para>\n    /// </summary>\n    public class LifeProductAuditEvent : DouyinOpenEvent<LifeProductAuditEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string AuditStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                public string? RejectReason { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/GoodLife/LifeTradeCertificateNotifyEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 life_trade_certificate_notify 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/order.query/trade.certificate.notify ]]>\n    /// </para>\n    /// </summary>\n    public class LifeTradeCertificateNotifyEvent : DouyinOpenEvent<LifeTradeCertificateNotifyEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string AccountId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n                public string Action { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置消息时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long Timestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置券信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate\")]\n                public Types.Certificate Certificate { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/GoodLife/LifeTradeOrderNotifyEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 life_trade_order_notify 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/order.query/trade.order.notify ]]>\n    /// </para>\n    /// </summary>\n    public class LifeTradeOrderNotifyEvent : DouyinOpenEvent<LifeTradeOrderNotifyEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string AccountId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售卖价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int OriginalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户支付价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下单时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long PayTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n                public string Action { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置消息时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long Timestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order\")]\n                public Types.Order Order { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/EnterGroupAuditChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 enter_group_audit_change 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/group-fans-webhook/add-group-audit-webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/group-fans-webhook/enter-group-audit-change-webhook ]]>\n    /// </para>\n    /// </summary>\n    public class EnterGroupAuditChangeEvent : DouyinOpenEvent<EnterGroupAuditChangeEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置群 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置入群申请 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n                public string ApplyId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置申请状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_status\")]\n                public int ApplyStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_nicker\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_nicker\")]\n                public string UserNickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_avatar\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_avatar\")]\n                public string UserAvatarUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/GroupFansEventEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 group_fans_event 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/group-fans-webhook/group-fans-join ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/group-fans-webhook/join-group-event ]]>\n    /// </para>\n    /// </summary>\n    public class GroupFansEventEvent : DouyinOpenEvent<GroupFansEventEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置群 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"im_group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"im_group_id\")]\n                public string GroupId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群主的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OwnerOpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_group_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_group_type\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? GroupType { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_type\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int ActionType { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMAuthorizeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_authorize 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/im_authorize_wenhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMAuthorizeEvent : DouyinOpenEvent<IMAuthorizeEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置操作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"operation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"operation_type\")]\n                public int OperationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_status\")]\n                public int AuthStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string Source { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扩展字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置到期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public long ExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string? PagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                public string? PageQuery { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_im_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_im_extra\")]\n                public string? DataIMExtra { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMEnterDirectMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_enter_direct_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/enter-direct-msg-webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/enter-direct-msg-webhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMEnterDirectMessageEvent : DouyinOpenEvent<IMEnterDirectMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class UserInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置用户唯一标识。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AvatarUrl { get; set; } = default!;\n                    }\n\n                    public class AdInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置广告计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                        public long AdId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告计划名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_name\")]\n                        public string AdName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adv_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adv_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adv_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adv_name\")]\n                        public string AdvertiserName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创意 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_id\")]\n                        public long? CreativeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_id\")]\n                        public long? PromotionId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材标题 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_title_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_title_id\")]\n                        public long? MaterialTitleId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_image_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_image_id\")]\n                        public long? MaterialImageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_video_id\")]\n                        public long? MaterialVideoId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"server_message_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"server_message_id\")]\n                public string ServerMessageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_short_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_short_id\")]\n                public string ConversationShortId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_type\")]\n                public int ConversationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"objectId\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"objectId\")]\n                public string? ObjectId { get; set; }\n\n                /// <summary>\n                /// 获取或设置场景类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                public int SceneType { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string? PagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                public string? PageQuery { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data-im-extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data-im-extra\")]\n                public string? DataIMExtra { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_infos\")]\n                public Types.UserInfo[]? UserList { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_info\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_info\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n                public Types.AdInfo? AdInfo { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMGroupReceiveMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_group_receive_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/group-msg/group.fans.webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-message/group.fans.webhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMGroupReceiveMessageEvent : DouyinOpenEvent<IMGroupReceiveMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class UserInfo : IMReceiveMessageEvent.Types.Content.Types.UserInfo\n                    {\n                    }\n\n                    public class CardData : IMReceiveMessageEvent.Types.Content.Types.CardData\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"server_message_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"server_message_id\")]\n                public string ServerMessageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_short_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_short_id\")]\n                public string ConversationShortId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_type\")]\n                public int ConversationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置群主的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_id\")]\n                public string OwnerOpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置场景类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                public int SceneType { get; set; }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message_type\")]\n                public string MessageType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置消息来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string? Source { get; set; }\n\n                /// <summary>\n                /// 获取或设置文字内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public string? Text { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_type\")]\n                public string? ResourceType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_url\")]\n                public string? ResourceUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_height\")]\n                public int? ResourceHeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_width\")]\n                public int? ResourceWidth { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string? ItemId { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n                public string? CardId { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_status\")]\n                public int? CardStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_data\")]\n                public Types.CardData[]? CardData { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_infos\")]\n                public Types.UserInfo[]? UserList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMGroupSendMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_group_send_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/group-msg/group.fans.webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-message/group.fans.webhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMGroupSendMessageEvent : DouyinOpenEvent<IMGroupSendMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content : IMGroupReceiveMessageEvent.Types.Content\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMReceiveMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_receive_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/private-msg-webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/private-msg-webhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMReceiveMessageEvent : DouyinOpenEvent<IMReceiveMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class UserInfo : IMEnterDirectMessageEvent.Types.Content.Types.UserInfo\n                    {\n                    }\n\n                    public class CardData\n                    {\n                        /// <summary>\n                        /// 获取或设置表单项标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"label\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"label\")]\n                        public string Label { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置表单项内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public string Value { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"server_message_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"server_message_id\")]\n                public string ServerMessageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_short_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_short_id\")]\n                public string ConversationShortId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置会话类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_type\")]\n                public int ConversationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置场景类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                public int SceneType { get; set; }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message_type\")]\n                public string MessageType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置消息来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string? Source { get; set; }\n\n                /// <summary>\n                /// 获取或设置文字内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public string? Text { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_type\")]\n                public string? ResourceType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_url\")]\n                public string? ResourceUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_height\")]\n                public int? ResourceHeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_width\")]\n                public int? ResourceWidth { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string? ItemId { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n                public string? CardId { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_status\")]\n                public int? CardStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_data\")]\n                public Types.CardData[]? CardData { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_infos\")]\n                public Types.UserInfo[]? UserList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/IM/IMSendMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 im_send_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/private-msg-webhook ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/private-msg-webhook ]]>\n    /// </para>\n    /// </summary>\n    public class IMSendMessageEvent : DouyinOpenEvent<IMSendMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content : IMReceiveMessageEvent.Types.Content\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Interaction/NewFollowActionEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 new_follow_action 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/intention-user/user-follow ]]>\n    /// </para>\n    /// </summary>\n    public class NewFollowActionEvent : DouyinOpenEvent<NewFollowActionEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置动作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action_type\")]\n                public int ActionType { get; set; }\n\n                /// <summary>\n                /// 获取或设置动作时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action_time\")]\n                public long ActionTimestamp { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Interaction/NewVideoDiggEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 new_video_digg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/intention-user/item-digg ]]>\n    /// </para>\n    /// </summary>\n    public class NewVideoDiggEvent : DouyinOpenEvent<NewVideoDiggEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string ItemId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置动作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action_type\")]\n                public int ActionType { get; set; }\n\n                /// <summary>\n                /// 获取或设置动作时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"action_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"action_time\")]\n                public long ActionTimestamp { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/UnionAuth/UnionAuthInfoForBEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 union_auth_info_for_b 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/union_auth/union_auth_info ]]>\n    /// </para>\n    /// </summary>\n    public class UnionAuthInfoForBEvent : DouyinOpenEvent<UnionAuthInfoForBEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置 B 端应用 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b_client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b_client_key\")]\n                public string BClientKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户在 B 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b_open_id\")]\n                public string BOpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 C 端应用 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"c_client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"c_client_key\")]\n                public string CClientKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户在 C 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"c_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"c_open_id\")]\n                public string COpenId { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/UnionAuth/UnionAuthInfoForCEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 union_auth_info_for_c 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/union_auth/union_auth_info ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/union_auth/union_auth_info_for_c ]]>\n    /// </para>\n    /// </summary>\n    public class UnionAuthInfoForCEvent : DouyinOpenEvent<UnionAuthInfoForCEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置 B 端应用 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b_client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b_client_key\")]\n                public string BClientKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户在 B 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b_open_id\")]\n                public string BOpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 C 端应用 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"c_client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"c_client_key\")]\n                public string CClientKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户在 C 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"c_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"c_open_id\")]\n                public string COpenId { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public override Types.Content EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/AuthorizeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 authorize 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class AuthorizeEvent : DouyinOpenEvent<AuthorizeEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置授权列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scopes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scopes\")]\n                public string[] ScopeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/CreateVideoEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 create_video 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class CreateVideoEvent : DouyinOpenEvent<CreateVideoEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string ItemId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分享 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"share_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"share_id\")]\n                public string ShareId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/DialogPhoneEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 dial_phone 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class DialogPhoneEvent : DouyinOpenEvent\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/ItemCommentReplyEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 item_comment_reply 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/comment-management-user/accept-comment-reply-event ]]>\n    /// </para>\n    /// </summary>\n    public class ItemCommentReplyEvent : DouyinOpenEvent<ItemCommentReplyEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置评论 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                public string CommentId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置评论发布者 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_user_id\")]\n                public string CommentUserId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回复内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                public string CommentContent { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置点赞数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                public int DiggCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置回复数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reply_comment_total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_total\")]\n                public int ReplyCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置回复的评论 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reply_to_comment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reply_to_comment_id\")]\n                public string? ReplyToCommentId { get; set; }\n\n                /// <summary>\n                /// 获取或设置回复的视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reply_to_item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reply_to_item_id\")]\n                public string? ReplyToItemId { get; set; }\n\n                /// <summary>\n                /// 获取或设置回复的用户 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"at_user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"at_user_id\")]\n                public string? AtUserId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/PersonalTabContactEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 personal_tab_contact 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class PersonalTabContactEvent : DouyinOpenEvent\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/ReceiveMessageEvent.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 receive_msg 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class ReceiveMessageEvent : DouyinOpenEvent<ReceiveMessageEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class Action\n                    {\n                        /// <summary>\n                        /// 获取或设置文本信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文本链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public string Value { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文本点击后的事件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"action_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"action_type\")]\n                        public string ActionType { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message_type\")]\n                public string MessageType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文本消息内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public string? Text { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_type\")]\n                public string? ResourceType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_height\")]\n                public int? ResourceHeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_width\")]\n                public int? ResourceWidth { get; set; }\n\n                /// <summary>\n                /// 获取或设置资源 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_url\")]\n                public string? ResourceUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片标题或消息内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string? Description { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片图标 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"icon_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"icon_url\")]\n                public string? IconUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡片跳转链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_url\")]\n                public string? LinkUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置附带内容字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"actions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"actions\")]\n                public IDictionary<string, Types.Action>? ActionMap { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/UnauthorizeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 unauthorize 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class UnauthorizeEvent : DouyinOpenEvent<UnauthorizeEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content : AuthorizeEvent.Types.Content\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/VerifyWebhookEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 verify_webhook 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/guide/open-capabilities/webhook ]]>\n    /// </para>\n    /// </summary>\n    public class VerifyWebhookEvent : DouyinOpenEvent<VerifyWebhookEvent.Types.Content>\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                /// <summary>\n                /// 获取或设置验证信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"challenge\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"challenge\")]\n                public int Challenge { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Events/Webhook/WebsiteContactEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\n{\n    /// <summary>\n    /// <para>表示 website_contact 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/event-list ]]>\n    /// </para>\n    /// </summary>\n    public class WebsiteContactEvent : DouyinOpenEvent\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientDecryptionExtensions.cs",
    "content": "using System;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    /// <summary>\n    /// 为 <see cref=\"DouyinOpenClient\"/> 提供解密的扩展方法。\n    /// </summary>\n    public static class DouyinOpenClientDecryptionExtensions\n    {\n        /// <summary>\n        /// 解密用户公开信息中的手机号码。\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-management/phone-number-decode-demo ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"encryptedMobileNumber\"></param>\n        /// <returns></returns>\n        public static string DecryptOAuthUserInfoMobileNumber(this DouyinOpenClient client, string encryptedMobileNumber)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (encryptedMobileNumber is null) throw new ArgumentNullException(encryptedMobileNumber);\n\n            byte[] keyBytes = Encoding.UTF8.GetBytes(client.Credentials.ClientSecret);\n            byte[] ivBytes = new byte[16]; Array.Copy(keyBytes, 0, ivBytes, 0, 16);\n            byte[] cipherBytes = Convert.FromBase64String(encryptedMobileNumber);\n            byte[] plainBytes = Utilities.AESUtility.DecryptWithCBC(keyBytes, ivBytes, cipherBytes);\n            return Encoding.UTF8.GetString(plainBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientEventExtensions.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// 为 <see cref=\"DouyinOpenClient\"/> 提供 Webhook 事件的扩展方法。\n    /// </summary>\n    public static class DouyinOpenClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinOpenEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEvent<TEvent>(this DouyinOpenClient client, string webhookJson)\n            where TEvent : DouyinOpenEvent, new()\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(webhookJson);\n\n            try\n            {\n                return client.JsonSerializer.Deserialize<TEvent>(webhookJson);\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinOpenException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n\n        /// <summary>\n        /// <para>验证 Webhook 事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/summarize ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\">抖音 Webhook 事件中请求正文（JSON 格式）。</param>\n        /// <param name=\"webhookSignature\">抖音 Webhook 事件中的 \"X-Douyin-Signature\" 请求标头。</param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignature(this DouyinOpenClient client, string webhookJson, string webhookSignature)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(nameof(webhookJson));\n\n            ErroredResult result;\n\n            try\n            {\n                string msg = $\"{client.Credentials.ClientSecret}{webhookJson}\";\n                string sign = Utilities.SHA1Utility.Hash(msg).Value!;\n                bool valid = string.Equals(sign, webhookSignature, StringComparison.OrdinalIgnoreCase);\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match. Maybe \\\"{webhookSignature}\\\" is an illegal signature.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiAppsAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiAppsAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/auth/get_openid_by_c/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/union_auth/get_openid_by_c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsAuthGetOpenIdByCV1Response> ExecuteAppsAuthGetOpenIdByCV1Async(this DouyinOpenClient client, Models.AppsAuthGetOpenIdByCV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"auth\", \"get_openid_by_c/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsAuthGetOpenIdByCV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiAppsTradeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiAppsTradeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/order/query_item_order_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/query-info/query-item-info ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/query-info/query-item-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeOrderQueryItemOrderInfoV2Response> ExecuteAppsTradeOrderQueryItemOrderInfoV2Async(this DouyinOpenClient client, Models.AppsTradeOrderQueryItemOrderInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"order\", \"query_item_order_info\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeOrderQueryItemOrderInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/order/query_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/query-info/query-order ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/query-info/query-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeOrderQueryOrderV2Response> ExecuteAppsTradeOrderQueryOrderV2Async(this DouyinOpenClient client, Models.AppsTradeOrderQueryOrderV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"order\", \"query_order\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeOrderQueryOrderV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/order/query_cps 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/query-info/query-cps ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/query-info/query-cps ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeOrderQueryCPSV2Response> ExecuteAppsTradeOrderQueryCPSV2Async(this DouyinOpenClient client, Models.AppsTradeOrderQueryCPSV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"order\", \"query_cps\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeOrderQueryCPSV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/order/create_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/pre-order/create-order ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/pre-order/create-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeOrderCreateOrderV2Response> ExecuteAppsTradeOrderCreateOrderV2Async(this DouyinOpenClient client, Models.AppsTradeOrderCreateOrderV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"order\", \"create_order\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeOrderCreateOrderV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/order/close_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/pre-order/close_order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeOrderCloseOrderV2Response> ExecuteAppsTradeOrderCloseOrderV2Async(this DouyinOpenClient client, Models.AppsTradeOrderCloseOrderV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"order\", \"close_order\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeOrderCloseOrderV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/delivery_prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/fulfillment/douyin-code/delivery-prepare ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/douyin-code/delivery-preparation ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentDeliveryPrepareV2Response> ExecuteAppsTradeFulfillmentDeliveryPrepareV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentDeliveryPrepareV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"delivery_prepare\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentDeliveryPrepareV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/delivery_verify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/fulfillment/douyin-code/delivery-verify ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/douyin-code/delivery-verify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentDeliveryVerifyV2Response> ExecuteAppsTradeFulfillmentDeliveryVerifyV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentDeliveryVerifyV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"delivery_verify\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentDeliveryVerifyV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/verify_cancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/fulfillment/douyin-code/verify-cancel ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/fulfillment/third-code/verify-cancel ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentVerifyCancelV2Response> ExecuteAppsTradeFulfillmentVerifyCancelV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentVerifyCancelV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"verify_cancel\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentVerifyCancelV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/push_delivery 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/fulfillment/third-code/push-delivery ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/third-party-code/push-delivery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentPushDeliveryV2Response> ExecuteAppsTradeFulfillmentPushDeliveryV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentPushDeliveryV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"push_delivery\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentPushDeliveryV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/query_user_certificates 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/query-user-certificates ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentQueryUserCertificatesV2Response> ExecuteAppsTradeFulfillmentQueryUserCertificatesV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentQueryUserCertificatesV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"query_user_certificates\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentQueryUserCertificatesV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/fulfillment/order_can_use 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/order-can-use ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeFulfillmentOrderCanUseV2Response> ExecuteAppsTradeFulfillmentOrderCanUseV2Async(this DouyinOpenClient client, Models.AppsTradeFulfillmentOrderCanUseV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"fulfillment\", \"order_can_use\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeFulfillmentOrderCanUseV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/settle/create_settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/settlement/init-settle ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeSettleCreateSettleV2Response> ExecuteAppsTradeSettleCreateSettleV2Async(this DouyinOpenClient client, Models.AppsTradeSettleCreateSettleV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"settle\", \"create_settle\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeSettleCreateSettleV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/settle/query_settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/settlement/query-settle ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/settlement/query-settle ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeSettleQuerySettleV2Response> ExecuteAppsTradeSettleQuerySettleV2Async(this DouyinOpenClient client, Models.AppsTradeSettleQuerySettleV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"settle\", \"query_settle\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeSettleQuerySettleV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/refund/create_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/refund/apply ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/refund/init-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeRefundCreateRefundV2Response> ExecuteAppsTradeRefundCreateRefundV2Async(this DouyinOpenClient client, Models.AppsTradeRefundCreateRefundV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"refund\", \"create_refund\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeRefundCreateRefundV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/refund/query_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/refund/query-refund ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/refund/query-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeRefundQueryRefundV2Response> ExecuteAppsTradeRefundQueryRefundV2Async(this DouyinOpenClient client, Models.AppsTradeRefundQueryRefundV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"refund\", \"query_refund\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeRefundQueryRefundV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/refund/merchant_audit_callback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/agency-trade-system/refund/audit-callback ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/refund/audit-callback ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeRefundMerchantAuditCallbackV2Response> ExecuteAppsTradeRefundMerchantAuditCallbackV2Async(this DouyinOpenClient client, Models.AppsTradeRefundMerchantAuditCallbackV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"refund\", \"merchant_audit_callback\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeRefundMerchantAuditCallbackV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/book/create_book 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/book/create-book-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeBookCreateBookV2Response> ExecuteAppsTradeBookCreateBookV2Async(this DouyinOpenClient client, Models.AppsTradeBookCreateBookV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"book\", \"create_book\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeBookCreateBookV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/book/book_result_callback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/book/book-result-callback ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeBookResultCallbackV2Response> ExecuteAppsTradeBookResultCallbackV2Async(this DouyinOpenClient client, Models.AppsTradeBookResultCallbackV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"book\", \"book_result_callback\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeBookResultCallbackV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/book/merchant_cancel_book 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/book/merchant-cancel-book ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeBookMerchantCancelBookV2Response> ExecuteAppsTradeBookMerchantCancelBookV2Async(this DouyinOpenClient client, Models.AppsTradeBookMerchantCancelBookV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"book\", \"merchant_cancel_book\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeBookMerchantCancelBookV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/book/user_cancel_book 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/book/user-cancel-book ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeBookUserCancelBookV2Response> ExecuteAppsTradeBookUserCancelBookV2Async(this DouyinOpenClient client, Models.AppsTradeBookUserCancelBookV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"book\", \"user_cancel_book\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeBookUserCancelBookV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/book/query_book 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/book/query-book ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeBookQueryBookV2Response> ExecuteAppsTradeBookQueryBookV2Async(this DouyinOpenClient client, Models.AppsTradeBookQueryBookV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"book\", \"query_book\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeBookQueryBookV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/auth/get_related_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-management/get-related-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinAuthGetRelatedIdV1Response> ExecuteDouyinAuthGetRelatedIdV1Async(this DouyinOpenClient client, Models.DouyinAuthGetRelatedIdV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"auth\", \"get_related_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinAuthGetRelatedIdV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/auth/get_openid_by_c/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/union_auth/get_openid_by_c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinAuthGetOpenIdByCV1Response> ExecuteDouyinAuthGetOpenIdByCV1Async(this DouyinOpenClient client, Models.DouyinAuthGetOpenIdByCV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"auth\", \"get_openid_by_c/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinAuthGetOpenIdByCV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/auth/get_openid_by_b/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/union_auth/get_openid_by_b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinAuthGetOpenIdByBV1Response> ExecuteDouyinAuthGetOpenIdByBV1Async(this DouyinOpenClient client, Models.DouyinAuthGetOpenIdByBV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"auth\", \"get_openid_by_b/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinAuthGetOpenIdByBV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinIMExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinIMExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/im/set_applet_template/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/micro-app-card/create-template ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/business-tool/micro-app-card/create-template ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinIMSetAppletTemplateV1Response> ExecuteDouyinIMSetAppletTemplateV1Async(this DouyinOpenClient client, Models.DouyinIMSetAppletTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"im\", \"set_applet_template/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinIMSetAppletTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/im/get_applet_template/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/micro-app-card/query-template ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/business-tool/micro-app-card/query-template ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinIMGetAppletTemplateV1Response> ExecuteDouyinIMGetAppletTemplateV1Async(this DouyinOpenClient client, Models.DouyinIMGetAppletTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"im\", \"get_applet_template/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinIMGetAppletTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/im/del_applet_template/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/micro-app-card/delete-template ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/business-tool/micro-app-card/delete-template ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinIMDeleteAppletTemplateV1Response> ExecuteDouyinIMDeleteAppletTemplateV1Async(this DouyinOpenClient client, Models.DouyinIMDeleteAppletTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"im\", \"del_applet_template/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"card_template_id\", request.CardTemplateId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinIMDeleteAppletTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinInteractiveExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinInteractiveExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/douyin/v1/interactive/intention/log/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/intention-user/log ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinInteractiveIntentionLogListV1Response> ExecuteDouyinInteractiveIntentionLogListV1Async(this DouyinOpenClient client, Models.DouyinInteractiveIntentionLogListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"douyin\", \"v1\", \"interactive\", \"intention\", \"log\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"event\", request.Event)\n                .SetQueryParam(\"query_session\", request.QuerySession)\n                .SetQueryParam(\"count\", request.Count);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinInteractiveIntentionLogListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinRoleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinRoleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/role/check/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-management/check-user-business-role ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinRoleCheckV1Response> ExecuteDouyinRoleCheckV1Async(this DouyinOpenClient client, Models.DouyinRoleCheckV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"role\", \"check/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinRoleCheckV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinSchemaExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinSchemaExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/schema/get_share/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/jump/h5-share ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinSchemaGetShareV1Response> ExecuteDouyinSchemaGetShareV1Async(this DouyinOpenClient client, Models.DouyinSchemaGetShareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"schema\", \"get_share/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinSchemaGetShareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/schema/get_user_profile/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/jump/get-user-profile ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinSchemaGetUserProfileV1Response> ExecuteDouyinSchemaGetUserProfileV1Async(this DouyinOpenClient client, Models.DouyinSchemaGetUserProfileV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"schema\", \"get_user_profile/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinSchemaGetUserProfileV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/schema/get_chat/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/jump/chat ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinSchemaGetChatV1Response> ExecuteDouyinSchemaGetChatV1Async(this DouyinOpenClient client, Models.DouyinSchemaGetChatV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"schema\", \"get_chat/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinSchemaGetChatV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/schema/get_item_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/jump/item-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinSchemaGetItemInfoV1Response> ExecuteDouyinSchemaGetItemInfoV1Async(this DouyinOpenClient client, Models.DouyinSchemaGetItemInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"schema\", \"get_item_info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinSchemaGetItemInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/schema/get_live/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/jump/live ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinSchemaGetLiveV1Response> ExecuteDouyinSchemaGetLiveV1Async(this DouyinOpenClient client, Models.DouyinSchemaGetLiveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"schema\", \"get_live/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinSchemaGetLiveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinUserExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinUserExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/douyin/v1/user/fans_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/fans-portrait-data/get-user-fans-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinUserFansDataV1Response> ExecuteDouyinUserFansDataV1Async(this DouyinOpenClient client, Models.DouyinUserFansDataV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"douyin\", \"v1\", \"user\", \"fans_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinUserFansDataV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiDouyinVideoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiDouyinVideoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/upload_video/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-video/upload-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoUploadVideoV1Response> ExecuteDouyinVideoUploadVideoV1Async(this DouyinOpenClient client, Models.DouyinVideoUploadVideoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"upload_video/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            if (request.VideoFileName is null)\n                request.VideoFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".mp4\";\n\n            if (request.VideoContentType is null)\n                request.VideoContentType = \"video/mp4\";\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.VideoFileName, fileBytes: request.VideoFileBytes, fileContentType: request.VideoContentType, formDataName: \"video\");\n            return await client.SendFlurlRequestAsync<Models.DouyinVideoUploadVideoV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/create_video/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-video/video-create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoCreateVideoV1Response> ExecuteDouyinVideoCreateVideoV1Async(this DouyinOpenClient client, Models.DouyinVideoCreateVideoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"create_video/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoCreateVideoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/douyin/v1/video/video_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/search-video/account-video-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoListV1Response> ExecuteDouyinVideoListV1Async(this DouyinOpenClient client, Models.DouyinVideoListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"douyin\", \"v1\", \"video\", \"video_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/video_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/search-video/video-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoDataV1Response> ExecuteDouyinVideoDataV1Async(this DouyinOpenClient client, Models.DouyinVideoDataV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"video_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId); ;\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoDataV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/video_basic_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/posting-task/video-basic-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoBasicInfoV1Response> ExecuteDouyinVideoBasicInfoV1Async(this DouyinOpenClient client, Models.DouyinVideoBasicInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"video_basic_info/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId); ;\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoBasicInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Iframe\n        /// <summary>\n        /// <para>异步调用 [GET] /api/douyin/v1/video/get_iframe_by_video 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/iframe-player/get-iframe-by-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoGetIframeByVideoV1Response> ExecuteDouyinVideoGetIframeByVideoV1Async(this DouyinOpenClient client, Models.DouyinVideoGetIframeByVideoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"douyin\", \"v1\", \"video\", \"get_iframe_by_video\")\n                .SetQueryParam(\"video_id\", request.VideoId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoGetIframeByVideoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/douyin/v1/video/get_iframe_by_item 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/iframe-player/get-iframe-by-item ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoGetIframeByItemV1Response> ExecuteDouyinVideoGetIframeByItemV1Async(this DouyinOpenClient client, Models.DouyinVideoGetIframeByItemV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"douyin\", \"v1\", \"video\", \"get_iframe_by_item\")\n                .SetQueryParam(\"client_key\", request.ClientKey)\n                .SetQueryParam(\"video_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoGetIframeByItemV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Image\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/upload_image/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-image-text/image-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoUploadImageV1Response> ExecuteDouyinVideoUploadImageV1Async(this DouyinOpenClient client, Models.DouyinVideoUploadImageV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"upload_image/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageContentType is null)\n                request.ImageContentType = \"image/jpeg\";\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageContentType, formDataName: \"image\");\n            return await client.SendFlurlRequestAsync<Models.DouyinVideoUploadImageV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/create_image_text/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-image-text/create-image-text ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoCreateImageTextV1Response> ExecuteDouyinVideoCreateImageTextV1Async(this DouyinOpenClient client, Models.DouyinVideoCreateImageTextV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"create_image_text/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoCreateImageTextV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Part\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/init_video_part_upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-video/video-part-upload-init ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoInitVideoPartUploadV1Response> ExecuteDouyinVideoInitVideoPartUploadV1Async(this DouyinOpenClient client, Models.DouyinVideoInitVideoPartUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"init_video_part_upload/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoInitVideoPartUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/upload_video_part/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create-video/video-part-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoUploadVideoPartV1Response> ExecuteDouyinVideoUploadVideoPartV1Async(this DouyinOpenClient client, Models.DouyinVideoUploadVideoPartV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"upload_video_part/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"upload_id\", request.UploadId)\n                .SetQueryParam(\"part_number\", request.PartNumber);\n\n            if (request.VideoFileName is null)\n                request.VideoFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".mp4\";\n\n            if (request.VideoContentType is null)\n                request.VideoContentType = \"video/mp4\";\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.VideoFileName, fileBytes: request.VideoFileBytes, fileContentType: request.VideoContentType, formDataName: \"video\");\n            return await client.SendFlurlRequestAsync<Models.DouyinVideoUploadVideoPartV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/douyin/v1/video/complete_video_part_upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/create/slice-accomplish-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DouyinVideoCompleteVideoPartUploadV1Response> ExecuteDouyinVideoCompleteVideoPartUploadV1Async(this DouyinOpenClient client, Models.DouyinVideoCompleteVideoPartUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"douyin\", \"v1\", \"video\", \"complete_video_part_upload/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"upload_id\", request.UploadId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DouyinVideoCompleteVideoPartUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiIMExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiIMExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/im/message/resources/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/get-message-resources ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMMessageResourcesResponse> ExecuteIMMessageResourcesAsync(this DouyinOpenClient client, Models.IMMessageResourcesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"im\", \"message\", \"resources/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"conversation_id\", request.ConversationId)\n                .SetQueryParam(\"message_id\", request.MessageId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMMessageResourcesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiIndustryExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiIndustryExtensions\n    {\n        #region AppTestRelation\n        /// <summary>\n        /// <para>异步调用 [POST] /api/industry/v1/solution/query_app_test_relation 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/test-relation-api ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IndustrySolutionQueryAppTestRelationV1Response> ExecuteIndustrySolutionQueryAppTestRelationV1Async(this DouyinOpenClient client, Models.IndustrySolutionQueryAppTestRelationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"industry\", \"v1\", \"solution\", \"query_app_test_relation\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IndustrySolutionQueryAppTestRelationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/industry/v1/solution/add_app_test_relation 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/test-relation-api ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IndustrySolutionAddAppTestRelationV1Response> ExecuteIndustrySolutionAddAppTestRelationV1Async(this DouyinOpenClient client, Models.IndustrySolutionAddAppTestRelationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"industry\", \"v1\", \"solution\", \"add_app_test_relation\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IndustrySolutionAddAppTestRelationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/industry/v1/solution/delete_app_test_relation 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/test-relation-api ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IndustrySolutionDeleteAppTestRelationV1Response> ExecuteIndustrySolutionDeleteAppTestRelationV1Async(this DouyinOpenClient client, Models.IndustrySolutionDeleteAppTestRelationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"industry\", \"v1\", \"solution\", \"delete_app_test_relation\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IndustrySolutionDeleteAppTestRelationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region AppTestRelation\n        /// <summary>\n        /// <para>异步调用 [POST] /api/industry/v1/solution/set_impl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/open-capacity/Industry/industry_mode/solution#_4-1-%E9%85%8D%E7%BD%AE%E5%BC%80%E6%94%BE%E8%83%BD%E5%8A%9B%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IndustrySolutionSetImplementationV1Response> ExecuteIndustrySolutionSetImplementationV1Async(this DouyinOpenClient client, Models.IndustrySolutionSetImplementationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"industry\", \"v1\", \"solution\", \"set_impl\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IndustrySolutionSetImplementationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/industry/v1/solution/query_impl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/open-capacity/Industry/industry_mode/solution#_4-2-%E6%9F%A5%E8%AF%A2%E7%94%9F%E6%95%88%E4%B8%AD%E9%85%8D%E7%BD%AE%E6%8E%A5%E5%8F%A3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IndustrySolutionQueryImplementationV1Response> ExecuteIndustrySolutionQueryImplementationV1Async(this DouyinOpenClient client, Models.IndustrySolutionQueryImplementationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"industry\", \"v1\", \"solution\", \"query_impl\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IndustrySolutionQueryImplementationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteApiMatchExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteApiMatchExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_violate_talent_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/query_violate_talent_list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxQueryViolateTalentListV2Response> ExecuteMatchTaskboxQueryViolateTalentListV2Async(this DouyinOpenClient client, Models.MatchTaskboxQueryViolateTalentListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_violate_talent_list/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxQueryViolateTalentListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/agency_query_bill_link/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/AgencyQueryBillLink ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxAgencyQueryBillLinkV2Response> ExecuteMatchTaskboxAgencyQueryBillLinkV2Async(this DouyinOpenClient client, Models.MatchTaskboxAgencyQueryBillLinkV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"agency_query_bill_link/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxAgencyQueryBillLinkV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/agency_query_video_sum_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/AgencyQueryVideoSum ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxAgencyQueryVideoSummaryDataV2Response> ExecuteMatchTaskboxAgencyQueryVideoSummaryDataV2Async(this DouyinOpenClient client, Models.MatchTaskboxAgencyQueryVideoSummaryDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"agency_query_video_sum_data/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxAgencyQueryVideoSummaryDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/gen_agent_link/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/gen_agent_link ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxGenerateAgentLinkV1Response> ExecuteMatchTaskboxGenerateAgentLinkV1Async(this DouyinOpenClient client, Models.MatchTaskboxGenerateAgentLinkV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"gen_agent_link/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxGenerateAgentLinkV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/change_user_bind_agent/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/change_user_bind_agent ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxChangeUserBindAgentV1Response> ExecuteMatchTaskboxChangeUserBindAgentV1Async(this DouyinOpenClient client, Models.MatchTaskboxChangeUserBindAgentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"change_user_bind_agent/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxChangeUserBindAgentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/get_agency_user_bind_record/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/get_agency_user_bind_record ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxGetAgencyUserBindRecordV1Response> ExecuteMatchTaskboxGetAgencyUserBindRecordV1Async(this DouyinOpenClient client, Models.MatchTaskboxGetAgencyUserBindRecordV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"get_agency_user_bind_record/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxGetAgencyUserBindRecordV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/save_agent/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/save_agent ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxSaveAgentV1Response> ExecuteMatchTaskboxSaveAgentV1Async(this DouyinOpenClient client, Models.MatchTaskboxSaveAgentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"save_agent/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxSaveAgentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/query_task_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/agency_query_task_info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxQueryTaskInfoV1Response> ExecuteMatchTaskboxQueryTaskInfoV1Async(this DouyinOpenClient client, Models.MatchTaskboxQueryTaskInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"query_task_info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxQueryTaskInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v1/taskbox/query_app_task_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/agency_query_app_task_id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxQueryAppTaskIdV1Response> ExecuteMatchTaskboxQueryAppTaskIdV1Async(this DouyinOpenClient client, Models.MatchTaskboxQueryAppTaskIdV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v1\", \"taskbox\", \"query_app_task_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxQueryAppTaskIdV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_task_video_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/taskbox/query_task_video_status_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskboxQueryTaskVideoStatusV2Response> ExecuteMatchTaskboxQueryTaskVideoStatusV2Async(this DouyinOpenClient client, Models.MatchTaskboxQueryTaskVideoStatusV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_task_video_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskboxQueryTaskVideoStatusV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteDataExternalExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteDataExternalExtensions\n    {\n        #region Anchor\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/anchor/mp_item_click_distribution 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/mini-app-list/get-video-click-distribution ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalAnchorMpItemClickDistributionResponse> ExecuteDataExternalAnchorMpItemClickDistributionAsync(this DouyinOpenClient client, Models.DataExternalAnchorMpItemClickDistributionRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"anchor\", \"mp_item_click_distribution\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"mp_id\", request.MiniAppId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalAnchorMpItemClickDistributionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard\n        #region Billboard/HotVideo\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/hot_video 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/hot-video-list/hot-video-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardHotVideoResponse> ExecuteDataExternalBillboardHotVideoAsync(this DouyinOpenClient client, Models.DataExternalBillboardHotVideoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"hot_video\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardHotVideoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Sport\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/sports-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportOverallResponse> ExecuteDataExternalBillboardSportOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/basketball 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/basketball-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportBasketballResponse> ExecuteDataExternalBillboardSportBasketballAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportBasketballRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"basketball\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportBasketballResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/soccer 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/football-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportSoccerResponse> ExecuteDataExternalBillboardSportSoccerAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportSoccerRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"soccer\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportSoccerResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/comprehensive 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/multiple-sports-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportComprehensiveResponse> ExecuteDataExternalBillboardSportComprehensiveAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportComprehensiveRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"comprehensive\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportComprehensiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/fitness 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/fitness-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportFitnessResponse> ExecuteDataExternalBillboardSportFitnessAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportFitnessRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"fitness\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportFitnessResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/outdoors 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/outdoor-sports-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportOutdoorsResponse> ExecuteDataExternalBillboardSportOutdoorsAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportOutdoorsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"outdoors\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportOutdoorsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/table_tennis 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/billiards-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportTableTennisResponse> ExecuteDataExternalBillboardSportTableTennisAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportTableTennisRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"table_tennis\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportTableTennisResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/sport/culture 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/sports-list/sport-culture-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardSportCultureResponse> ExecuteDataExternalBillboardSportCultureAsync(this DouyinOpenClient client, Models.DataExternalBillboardSportCultureRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"sport\", \"culture\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardSportCultureResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Amusement\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/amusement/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/funny-list-data/funny-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardAmusementOverallResponse> ExecuteDataExternalBillboardAmusementOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardAmusementOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"amusement\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardAmusementOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/amusement/new 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/funny-list-data/funny-new-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardAmusementNewResponse> ExecuteDataExternalBillboardAmusementNewAsync(this DouyinOpenClient client, Models.DataExternalBillboardAmusementNewRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"amusement\", \"new\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardAmusementNewResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Game\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/game/console 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/game-list-data/computer-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardGameConsoleResponse> ExecuteDataExternalBillboardGameConsoleAsync(this DouyinOpenClient client, Models.DataExternalBillboardGameConsoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"game\", \"console\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardGameConsoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/game/inf 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/game-list-data/game-information-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardGameInformationResponse> ExecuteDataExternalBillboardGameInformationAsync(this DouyinOpenClient client, Models.DataExternalBillboardGameInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"game\", \"inf\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardGameInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Food\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/food/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/food-list-data/food-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardFoodOverallResponse> ExecuteDataExternalBillboardFoodOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardFoodOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"food\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardFoodOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/food/new 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/food-list-data/food-new-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardFoodNewResponse> ExecuteDataExternalBillboardFoodNewAsync(this DouyinOpenClient client, Models.DataExternalBillboardFoodNewRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"food\", \"new\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardFoodNewResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/food/tutorial 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/food-list-data/food-guide-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardFoodTutorialResponse> ExecuteDataExternalBillboardFoodTutorialAsync(this DouyinOpenClient client, Models.DataExternalBillboardFoodTutorialRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"food\", \"tutorial\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardFoodTutorialResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/food/shop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/food-list-data/food-discover-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardFoodShopResponse> ExecuteDataExternalBillboardFoodShopAsync(this DouyinOpenClient client, Models.DataExternalBillboardFoodShopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"food\", \"shop\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardFoodShopResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Drama\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/drama/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/plot-list-data/plot-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardDramaOverallResponse> ExecuteDataExternalBillboardDramaOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardDramaOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"drama\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardDramaOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Car\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/car/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/car-list-data/car-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCarOverallResponse> ExecuteDataExternalBillboardCarOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardCarOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"car\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCarOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/car/comment 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/car-list-data/comment ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCarCommentResponse> ExecuteDataExternalBillboardCarCommentAsync(this DouyinOpenClient client, Models.DataExternalBillboardCarCommentRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"car\", \"comment\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCarCommentResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/car/play 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/car-list-data/play ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCarPlayResponse> ExecuteDataExternalBillboardCarPlayAsync(this DouyinOpenClient client, Models.DataExternalBillboardCarPlayRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"car\", \"play\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCarPlayResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/car/use 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/car-list-data/drive ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCarUseResponse> ExecuteDataExternalBillboardCarUseAsync(this DouyinOpenClient client, Models.DataExternalBillboardCarUseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"car\", \"use\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCarUseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/car/driver 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/car-list-data/exam ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCarDriverResponse> ExecuteDataExternalBillboardCarDriverAsync(this DouyinOpenClient client, Models.DataExternalBillboardCarDriverRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"car\", \"driver\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCarDriverResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Travel\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/travel/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/tour-list-data/tour-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardTravelOverallResponse> ExecuteDataExternalBillboardTravelOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardTravelOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"travel\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardTravelOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/travel/new 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/tour-list-data/tour-new-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardTravelNewResponse> ExecuteDataExternalBillboardTravelNewAsync(this DouyinOpenClient client, Models.DataExternalBillboardTravelNewRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"travel\", \"new\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardTravelNewResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Cospa\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/overall 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/anime-overall-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaOverallResponse> ExecuteDataExternalBillboardCospaOverallAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaOverallRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"overall\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaOverallResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/qing_man 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/light-anime ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaQingmanResponse> ExecuteDataExternalBillboardCospaQingmanAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaQingmanRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"qing_man\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaQingmanResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/out_shot 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/shoot ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaOutshotResponse> ExecuteDataExternalBillboardCospaOutshotAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaOutshotRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"out_shot\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaOutshotResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/painting 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/draw ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaPaintingResponse> ExecuteDataExternalBillboardCospaPaintingAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaPaintingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"painting\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaPaintingResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/voice_control 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/sound ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaVoiceResponse> ExecuteDataExternalBillboardCospaVoiceAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaVoiceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"voice_control\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaVoiceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/brain_cavity 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/imagine ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaBrainCavityResponse> ExecuteDataExternalBillboardCospaBrainCavityAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaBrainCavityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"brain_cavity\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaBrainCavityResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/cospa/new 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/anime-list-data/anime-new-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardCospaNewResponse> ExecuteDataExternalBillboardCospaNewAsync(this DouyinOpenClient client, Models.DataExternalBillboardCospaNewRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"cospa\", \"new\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardCospaNewResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Stars\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/stars 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/entertainment-star-list-data/entertainment-star-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardStarsResponse> ExecuteDataExternalBillboardStarsAsync(this DouyinOpenClient client, Models.DataExternalBillboardStarsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"stars\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardStarsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Live\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/live 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/live-list-data/live-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardLiveResponse> ExecuteDataExternalBillboardLiveAsync(this DouyinOpenClient client, Models.DataExternalBillboardLiveRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"live\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardLiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Music\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/music/hot 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/music-list-data/hot-songs-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardMusicHotResponse> ExecuteDataExternalBillboardMusicHotAsync(this DouyinOpenClient client, Models.DataExternalBillboardMusicHotRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"music\", \"hot\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardMusicHotResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/music/soar 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/music-list-data/ascending-songs-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardMusicSoarResponse> ExecuteDataExternalBillboardMusicSoarAsync(this DouyinOpenClient client, Models.DataExternalBillboardMusicSoarRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"music\", \"soar\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardMusicSoarResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/music/original 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/music-list-data/original-songs-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardMusicOriginalResponse> ExecuteDataExternalBillboardMusicOriginalAsync(this DouyinOpenClient client, Models.DataExternalBillboardMusicOriginalRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"music\", \"original\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardMusicOriginalResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Topic\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/topic 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/topic-list-data/topic-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardTopicResponse> ExecuteDataExternalBillboardTopicAsync(this DouyinOpenClient client, Models.DataExternalBillboardTopicRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"topic\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardTopicResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Billboard/Prop\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/billboard/prop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/tops-data/prop-list-data/prop-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalBillboardPropResponse> ExecuteDataExternalBillboardPropAsync(this DouyinOpenClient client, Models.DataExternalBillboardPropRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"billboard\", \"prop\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalBillboardPropResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Fans\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/fans/source 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/fans-portrait-data/get-user-fans-origin ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalFansSourceResponse> ExecuteDataExternalFansSourceAsync(this DouyinOpenClient client, Models.DataExternalFansSourceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"fans\", \"source\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalFansSourceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/fans/favourite 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/fans-portrait-data/get-user-fans-like ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalFansFavouriteResponse> ExecuteDataExternalFansFavouriteAsync(this DouyinOpenClient client, Models.DataExternalFansFavouriteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"fans\", \"favourite\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalFansFavouriteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/extern/fans/comment 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/fans-portrait-data/get-user-fans-hot-comment ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalFansCommentResponse> ExecuteDataExternalFansCommentAsync(this DouyinOpenClient client, Models.DataExternalFansCommentRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"extern\", \"fans\", \"comment\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalFansCommentResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Item\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/item/base 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/video-data/get-basic-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalItemBaseResponse> ExecuteDataExternalItemBaseAsync(this DouyinOpenClient client, Models.DataExternalItemBaseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"item\", \"base\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalItemBaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/item/like 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/video-data/get-like-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalItemLikeResponse> ExecuteDataExternalItemLikeAsync(this DouyinOpenClient client, Models.DataExternalItemLikeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"item\", \"like\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalItemLikeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/item/comment 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/video-data/get-comment-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalItemCommentResponse> ExecuteDataExternalItemCommentAsync(this DouyinOpenClient client, Models.DataExternalItemCommentRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"item\", \"comment\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalItemCommentResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/item/play 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/video-data/get-play-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalItemPlayResponse> ExecuteDataExternalItemPlayAsync(this DouyinOpenClient client, Models.DataExternalItemPlayRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"item\", \"play\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalItemPlayResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/item/share 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/video-data/get-share-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalItemShareResponse> ExecuteDataExternalItemShareAsync(this DouyinOpenClient client, Models.DataExternalItemShareRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"item\", \"share\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalItemShareResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region POI\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/base 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/get-poi-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIBaseResponse> ExecuteDataExternalPOIBaseAsync(this DouyinOpenClient client, Models.DataExternalPOIBaseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"base\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"poi_id\", request.POIId)\n                .SetQueryParam(\"begin_date\", request.BeginDateString)\n                .SetQueryParam(\"end_date\", request.EndDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIBaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/user 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/poi-user-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIUserResponse> ExecuteDataExternalPOIUserAsync(this DouyinOpenClient client, Models.DataExternalPOIUserRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"user\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"poi_id\", request.POIId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIUserResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/service_base 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/poi-service-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIServiceBaseResponse> ExecuteDataExternalPOIServiceBaseAsync(this DouyinOpenClient client, Models.DataExternalPOIServiceBaseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"service_base\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"poi_id\", request.POIId)\n                .SetQueryParam(\"service_type\", request.ServiceType)\n                .SetQueryParam(\"begin_date\", request.BeginDateString)\n                .SetQueryParam(\"end_date\", request.EndDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIServiceBaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/service_user 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/poi-service-user-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIServiceUserResponse> ExecuteDataExternalPOIServiceUserAsync(this DouyinOpenClient client, Models.DataExternalPOIServiceUserRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"service_user\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"poi_id\", request.POIId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .SetQueryParam(\"service_type\", request.ServiceType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIServiceUserResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/billboard 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/poi-service-hot-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIBillboardResponse> ExecuteDataExternalPOIBillboardAsync(this DouyinOpenClient client, Models.DataExternalPOIBillboardRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"billboard\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"billboard_type\", request.BillboardType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIBillboardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/poi/claim/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-data/poi-claim-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalPOIClaimListResponse> ExecuteDataExternalPOIClaimListAsync(this DouyinOpenClient client, Models.DataExternalPOIClaimListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"poi\", \"claim\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalPOIClaimListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region User\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/item 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-video-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserItemResponse> ExecuteDataExternalUserItemAsync(this DouyinOpenClient client, Models.DataExternalUserItemRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"item\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserItemResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/fans 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-fans-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserFansResponse> ExecuteDataExternalUserFansAsync(this DouyinOpenClient client, Models.DataExternalUserFansRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"fans\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserFansResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/like 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-like-number ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserLikeResponse> ExecuteDataExternalUserLikeAsync(this DouyinOpenClient client, Models.DataExternalUserLikeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"like\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserLikeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/comment 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-comment-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserCommentResponse> ExecuteDataExternalUserCommentAsync(this DouyinOpenClient client, Models.DataExternalUserCommentRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"comment\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserCommentResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/share 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-share-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserShareResponse> ExecuteDataExternalUserShareAsync(this DouyinOpenClient client, Models.DataExternalUserShareRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"share\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserShareResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /data/external/user/profile 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/user-data/get-user-home-pv ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DataExternalUserProfileResponse> ExecuteDataExternalUserProfileAsync(this DouyinOpenClient client, Models.DataExternalUserProfileRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"data\", \"external\", \"user\", \"profile\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DataExternalUserProfileResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteDevToolExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteDevToolExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /devtool/micapp/is_legal/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/mini-app-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DevToolMicroAppIsLegalResponse> ExecuteDevToolMicroAppIsLegalAsync(this DouyinOpenClient client, Models.DevToolMicroAppIsLegalRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"devtool\", \"micapp\", \"is_legal/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"micapp_id\", request.MicroAppId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DevToolMicroAppIsLegalResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteDiscoveryExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteDiscoveryExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /discovery/ent/rank/item/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/douyin-tv-tops-data/get-douyin-tv-tops ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DiscoveryEntertainmentRankItemResponse> ExecuteDiscoveryEntertainmentRankItemAsync(this DouyinOpenClient client, Models.DiscoveryEntertainmentRankItemRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"discovery\", \"ent\", \"rank\", \"item/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"version\", request.Version);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DiscoveryEntertainmentRankItemResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /discovery/ent/rank/version/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/douyin-tv-tops-data/get-douyin-tv-version ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DiscoveryEntertainmentRankVersionResponse> ExecuteDiscoveryEntertainmentRankVersionAsync(this DouyinOpenClient client, Models.DiscoveryEntertainmentRankVersionRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"discovery\", \"ent\", \"rank\", \"version/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.DiscoveryEntertainmentRankVersionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteEnterpriseExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteEnterpriseExtensions\n    {\n        #region Media\n        /// <summary>\n        /// <para>异步调用 [POST] /enterprise/media/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/material-management/upload-material-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EnterpriseMediaUploadResponse> ExecuteEnterpriseMediaUploadAsync(this DouyinOpenClient client, Models.EnterpriseMediaUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"enterprise\", \"media\", \"upload\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            if (request.MediaFileName is null)\n                request.MediaFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.MediaContentType is null)\n                request.MediaContentType = \"image/jpeg\";\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MediaFileName, fileBytes: request.MediaFileBytes, fileContentType: request.MediaContentType, formDataName: \"media\");\n            return await client.SendFlurlRequestAsync<Models.EnterpriseMediaUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /enterprise/media/temp/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/material-management/upload-temp-material-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EnterpriseMediaTempUploadResponse> ExecuteEnterpriseMediaTempUploadAsync(this DouyinOpenClient client, Models.EnterpriseMediaTempUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"enterprise\", \"media\", \"temp\", \"upload\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            if (request.MediaFileName is null)\n                request.MediaFileName = Guid.NewGuid().ToString(\"N\").ToLower();\n\n            if (request.MediaContentType is null)\n                request.MediaContentType = MimeTypes.Binary;\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MediaFileName, fileBytes: request.MediaFileBytes, fileContentType: request.MediaContentType, formDataName: \"media\");\n            return await client.SendFlurlRequestAsync<Models.EnterpriseMediaTempUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /enterprise/media/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/material-management/material-list-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EnterpriseMediaListResponse> ExecuteEnterpriseMediaListAsync(this DouyinOpenClient client, Models.EnterpriseMediaListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"enterprise\", \"media\", \"list\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"access_token\", request.AccessToken)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.EnterpriseMediaListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /enterprise/media/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/material-management/delete-material-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EnterpriseMediaDeleteResponse> ExecuteEnterpriseMediaDeleteAsync(this DouyinOpenClient client, Models.EnterpriseMediaDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"enterprise\", \"media\", \"delete\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.EnterpriseMediaDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteEventExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteEventExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /event/status/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/get-event-subscription-status/ ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EventStatusListResponse> ExecuteEventStatusListAsync(this DouyinOpenClient client, Models.EventStatusListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"event\", \"status\", \"list\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.EventStatusListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /event/status/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/webhooks/update-event-subscription-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EventStatusUpdateResponse> ExecuteEventStatusUpdateAsync(this DouyinOpenClient client, Models.EventStatusUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"event\", \"status\", \"update\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.EventStatusUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteFansExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteFansExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /fans/check 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-management/fans-judge ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FansCheckResponse> ExecuteFansCheckAsync(this DouyinOpenClient client, Models.FansCheckRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fans\", \"check\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"follower_open_id\", request.FollowerOpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FansCheckResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteGoodLifeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    // TODO: 独立化 ExtendedSDK\n    public static class DouyinOpenClientExecuteGoodLifeExtensions\n    {\n        #region Aftersale\n        #region Aftersale/Audit\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/after_sale/audit/notify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/refundresult ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeAftersaleAuditNotifyV1Response> ExecuteGoodLifeAftersaleAuditNotifyV1Async(this DouyinOpenClient client, Models.GoodLifeAftersaleAuditNotifyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"after_sale\", \"audit\", \"notify\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeAftersaleAuditNotifyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Aftersale/Order\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/after_sale/order/merchant_reject 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/rejectorder ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeAftersaleOrderMerchantRejectV1Response> ExecuteGoodLifeAftersaleOrderMerchantRejectV1Async(this DouyinOpenClient client, Models.GoodLifeAftersaleOrderMerchantRejectV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"after_sale\", \"order\", \"merchant_reject\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeAftersaleOrderMerchantRejectV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/after_sale/order/apply_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/applyrefund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeAftersaleOrderApplyRefundV1Response> ExecuteGoodLifeAftersaleOrderApplyRefundV1Async(this DouyinOpenClient client, Models.GoodLifeAftersaleOrderApplyRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"after_sale\", \"order\", \"apply_refund\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeAftersaleOrderApplyRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Fulfilment\n        #region Fulfilment/Certificate\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/fulfilment/certificate/prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.fulfilment/certificate.prepare ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificatePrepareV1Response> ExecuteGoodLifeFulfilmentCertificatePrepareV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificatePrepareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"prepare\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"encrypted_data\", request.EncryptedData)\n                .SetQueryParam(\"code\", request.Code);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificatePrepareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/fulfilment/certificate/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.fulfilment/certificate.get ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificateGetV1Response> ExecuteGoodLifeFulfilmentCertificateGetV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificateGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"encrypted_code\", request.EncryptedCode)\n                .SetQueryParam(\"code\", request.Code)\n                .SetQueryParam(\"order_id\", request.OrderId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificateGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/fulfilment/certificate/cancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.fulfilment/certificate.cancel ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificateCancelV1Response> ExecuteGoodLifeFulfilmentCertificateCancelV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificateCancelV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"cancel\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificateCancelV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/fulfilment/certificate/verify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.fulfilment/certificate.verify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificateVerifyV1Response> ExecuteGoodLifeFulfilmentCertificateVerifyV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificateVerifyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"verify\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificateVerifyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/fulfilment/certificate/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.fulfilment/certificate.query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificateQueryV1Response> ExecuteGoodLifeFulfilmentCertificateQueryV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificateQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"encrypted_code\", request.EncryptedCode)\n                .SetQueryParam(\"order_id\", request.OrderId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificateQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/fulfilment/certificate/verify_record/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.billing/certificate.verifyrecord.query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response> ExecuteGoodLifeFulfilmentCertificateVerifyRecordQueryV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentCertificateVerifyRecordQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"fulfilment\", \"certificate\", \"verify_record\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"poi_ids\", request.POIIdList is null ? null : string.Join(\",\", request.POIIdList))\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Fulfilment/Certificate\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/fulfilment/distribution/order/sync_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/syncstatus ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentDistributionOrderSyncStatusV1Response> ExecuteGoodLifeFulfilmentDistributionOrderSyncStatusV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentDistributionOrderSyncStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"fulfilment\", \"distribution\", \"order\", \"sync_status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentDistributionOrderSyncStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Fulfilment/ReserveCode\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/fulfilment/reserve_code/batch_import 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/reservecode/batchimport ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentReserveCodeBatchImportV1Response> ExecuteGoodLifeFulfilmentReserveCodeBatchImportV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentReserveCodeBatchImportV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"fulfilment\", \"reserve_code\", \"batch_import\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentReserveCodeBatchImportV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/fulfilment/reserve_code/bind_order_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/reservecode/bind.order.info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response> ExecuteGoodLifeFulfilmentReserveCodeBindOrderInfoV1Async(this DouyinOpenClient client, Models.GoodLifeFulfilmentReserveCodeBindOrderInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"fulfilment\", \"reserve_code\", \"bind_order_info\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Goods\n        #region Goods/Calendar\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/calendar_static_attr_group/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/presale/savecalendar ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response> ExecuteGoodLifeGoodsCalendarStaticAttributeGroupSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"calendar_static_attr_group\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/calendar_stock_group/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/presale/savestock ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsCalendarStockGroupSaveV1Response> ExecuteGoodLifeGoodsCalendarStockGroupSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsCalendarStockGroupSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"calendar_stock_group\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsCalendarStockGroupSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/calendar_amount_group/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/presale/saveamount ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsCalendarAmountGroupSaveV1Response> ExecuteGoodLifeGoodsCalendarAmountGroupSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsCalendarAmountGroupSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"calendar_amount_group\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsCalendarAmountGroupSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/Category\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/category/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/category.get ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsCategoryGetV1Response> ExecuteGoodLifeGoodsCategoryGetV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsCategoryGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"category\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"category_id\", request.ParentCategoryId)\n                .SetQueryParam(\"query_category_type\", request.QueryType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsCategoryGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/Product\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/product/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/save ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductSaveV1Response> ExecuteGoodLifeGoodsProductSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"product\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/product/free_audit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/free.audit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductFreeAuditV1Response> ExecuteGoodLifeGoodsProductFreeAuditV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductFreeAuditV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"product\", \"free_audit\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductFreeAuditV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/product/operate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/operate ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductOperateV1Response> ExecuteGoodLifeGoodsProductOperateV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductOperateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"product\", \"operate\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductOperateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/product/draft/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductDraftQueryV1Response> ExecuteGoodLifeGoodsProductDraftQueryV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductDraftQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"product\", \"draft\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"status\", request.Status)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductDraftQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/product/draft/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/draft.get ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductDraftGetV1Response> ExecuteGoodLifeGoodsProductDraftGetV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductDraftGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"product\", \"draft\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"product_ids\", request.ProductIdList is null ? null : string.Join(\",\", request.ProductIdList))\n                .SetQueryParam(\"out_ids\", request.OutProductIdList is null ? null : string.Join(\",\", request.OutProductIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductDraftGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/product/online/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/online.query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductOnlineQueryV1Response> ExecuteGoodLifeGoodsProductOnlineQueryV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductOnlineQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"product\", \"online\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"status\", request.Status)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductOnlineQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/product/online/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/online.get ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsProductOnlineGetV1Response> ExecuteGoodLifeGoodsProductOnlineGetV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsProductOnlineGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"product\", \"online\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"product_ids\", request.ProductIdList is null ? null : string.Join(\",\", request.ProductIdList))\n                .SetQueryParam(\"out_ids\", request.OutProductIdList is null ? null : string.Join(\",\", request.OutProductIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsProductOnlineGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/SKU\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/sku/batch_save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/goods.batch.save ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsSKUBatchSaveV1Response> ExecuteGoodLifeGoodsSKUBatchSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsSKUBatchSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"sku\", \"batch_save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsSKUBatchSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/SPU\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/spu/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/presale/savespu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsSPUSaveV1Response> ExecuteGoodLifeGoodsSPUSaveV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsSPUSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"spu\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsSPUSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/Stock\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/goods/stock/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/batch.save ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsStockSyncV1Response> ExecuteGoodLifeGoodsStockSyncV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsStockSyncV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"goods\", \"stock\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsStockSyncV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Goods/Template\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/goods/template/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/template.get ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeGoodsTemplateGetV1Response> ExecuteGoodLifeGoodsTemplateGetV1Async(this DouyinOpenClient client, Models.GoodLifeGoodsTemplateGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"goods\", \"template\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"product_type\", request.ProductType)\n                .SetQueryParam(\"category_id\", request.CategoryId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeGoodsTemplateGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Member\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/member/user/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/member/update.info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeMemberUserUpdateV1Response> ExecuteGoodLifeMemberUserUpdateV1Async(this DouyinOpenClient client, Models.GoodLifeMemberUserUpdateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"member\", \"user\", \"update\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeMemberUserUpdateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/member/unionid/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/member/unionidget ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeMemberUnionIdGetV1Response> ExecuteGoodLifeMemberUnionIdGetV1Async(this DouyinOpenClient client, Models.GoodLifeMemberUnionIdGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"member\", \"unionid\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeMemberUnionIdGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Partner\n        #region Partner/Commission\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/partner/product_commission/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/productcommissionsave ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerProductCommissionSaveV1Response> ExecuteGoodLifePartnerProductCommissionSaveV1Async(this DouyinOpenClient client, Models.GoodLifePartnerProductCommissionSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"partner\", \"product_commission\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerProductCommissionSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/partner/product_commission/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/productcommissionquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerProductCommissionQueryV1Response> ExecuteGoodLifePartnerProductCommissionQueryV1Async(this DouyinOpenClient client, Models.GoodLifePartnerProductCommissionQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"partner\", \"product_commission\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerProductCommissionQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/partner/commission_record/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/commissionrecordquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerCommissionRecordQueryV1Response> ExecuteGoodLifePartnerCommissionRecordQueryV1Async(this DouyinOpenClient client, Models.GoodLifePartnerCommissionRecordQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"partner\", \"commission_record\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerCommissionRecordQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/partner/commission_record/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/commissionrecordget ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerCommissionRecordGetV1Response> ExecuteGoodLifePartnerCommissionRecordGetV1Async(this DouyinOpenClient client, Models.GoodLifePartnerCommissionRecordGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"partner\", \"commission_record\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"record_id\", request.RecordId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerCommissionRecordGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Partner/Order\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/partner/order/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerOrderCreateV1Response> ExecuteGoodLifePartnerOrderCreateV1Async(this DouyinOpenClient client, Models.GoodLifePartnerOrderCreateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"partner\", \"order\", \"create\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerOrderCreateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/partner/order/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/orderquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerOrderQueryV1Response> ExecuteGoodLifePartnerOrderQueryV1Async(this DouyinOpenClient client, Models.GoodLifePartnerOrderQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"partner\", \"order\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"cooperation_contents\", request.CooperationContentType)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"status\", request.Status)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize)\n                .SetQueryParam(\"is_asc\", request.IsSortByAsc.HasValue ? request.IsSortByAsc.Value ? \"true\" : \"false\" : null);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerOrderQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/partner/order/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/paterner/orderget ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePartnerOrderGetV1Response> ExecuteGoodLifePartnerOrderGetV1Async(this DouyinOpenClient client, Models.GoodLifePartnerOrderGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"partner\", \"order\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"without_product_items\", request.IsWithoutProductItems.GetValueOrDefault() ? \"true\" : \"false\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePartnerOrderGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region POI\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/poi/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/poisync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOISyncV1Response> ExecuteGoodLifePOISyncV1Async(this DouyinOpenClient client, Models.GoodLifePOISyncV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"poi\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOISyncV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/poi/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/poi.update ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIUpdateV1Response> ExecuteGoodLifePOIUpdateV1Async(this DouyinOpenClient client, Models.GoodLifePOIUpdateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"poi\", \"update\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIUpdateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/poi/claim 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/poi.claim ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIClaimV1Response> ExecuteGoodLifePOIClaimV1Async(this DouyinOpenClient client, Models.GoodLifePOIClaimV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"poi\", \"claim\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIClaimV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/poi/decorate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/poi.decorate ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIDecorateV1Response> ExecuteGoodLifePOIDecorateV1Async(this DouyinOpenClient client, Models.GoodLifePOIDecorateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"poi\", \"decorate\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIDecorateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/poi/task/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/task.query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOITaskQueryV1Response> ExecuteGoodLifePOITaskQueryV1Async(this DouyinOpenClient client, Models.GoodLifePOITaskQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"poi\", \"task\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"task_ids\", string.Join(\",\", request.TaskIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOITaskQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/match/task/submit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/match.tasksubmit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIMatchTaskSubmitV1Response> ExecuteGoodLifePOIMatchTaskSubmitV1Async(this DouyinOpenClient client, Models.GoodLifePOIMatchTaskSubmitV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"match\", \"task\", \"submit\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIMatchTaskSubmitV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/poi/match/task/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/match.taskquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIMatchTaskQueryV1Response> ExecuteGoodLifePOIMatchTaskQueryV1Async(this DouyinOpenClient client, Models.GoodLifePOIMatchTaskQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"poi\", \"match\", \"task\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"task_id\", request.TaskId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIMatchTaskQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/poi/match/relation/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/match.relationquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOIMatchRelationQueryV1Response> ExecuteGoodLifePOIMatchRelationQueryV1Async(this DouyinOpenClient client, Models.GoodLifePOIMatchRelationQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"poi\", \"match\", \"relation\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"ext_ids\", string.Join(\",\", request.POIExternalIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOIMatchRelationQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Goods/Crowd\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/poi/crowd/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/goods/crowdsave ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifePOICrowdSaveV1Response> ExecuteGoodLifePOICrowdSaveV1Async(this DouyinOpenClient client, Models.GoodLifePOICrowdSaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"poi\", \"crowd\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifePOICrowdSaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Settle\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/settle/ledger/query_record_by_cert 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.billing/ledger.query-record-by-cert ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeSettleLedgerQueryRecordByCertificateV1Response> ExecuteGoodLifeSettleLedgerQueryRecordByCertificateV1Async(this DouyinOpenClient client, Models.GoodLifeSettleLedgerQueryRecordByCertificateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"settle\", \"ledger\", \"query_record_by_cert\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"certificate_ids\", string.Join(\",\", request.CertificateIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeSettleLedgerQueryRecordByCertificateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/settle/ledger/detailed_query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.billing/detailedquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeSettleLedgerDetailedQueryV1Response> ExecuteGoodLifeSettleLedgerDetailedQueryV1Async(this DouyinOpenClient client, Models.GoodLifeSettleLedgerDetailedQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"settle\", \"ledger\", \"detailed_query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"size\", request.PageSize)\n                .SetQueryParam(\"bill_date\", request.BillDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeSettleLedgerDetailedQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/settle/ledger/detailed_query_by_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/detailedquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeSettleLedgerDetailedQueryByOrderV1Response> ExecuteGoodLifeSettleLedgerDetailedQueryByOrderV1Async(this DouyinOpenClient client, Models.GoodLifeSettleLedgerDetailedQueryByOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"settle\", \"ledger\", \"detailed_query_by_order\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"order_ids\", string.Join(\",\", request.OrderIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeSettleLedgerDetailedQueryByOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/settle/ledger/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.billing/merchantquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeSettleLedgerQueryV1Response> ExecuteGoodLifeSettleLedgerQueryV1Async(this DouyinOpenClient client, Models.GoodLifeSettleLedgerQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"settle\", \"ledger\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"size\", request.PageSize)\n                .SetQueryParam(\"bill_date\", request.BillDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeSettleLedgerQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/settle/ledger/query_by_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/querybyorder ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeSettleLedgerQueryByOrderV1Response> ExecuteGoodLifeSettleLedgerQueryByOrderV1Async(this DouyinOpenClient client, Models.GoodLifeSettleLedgerQueryByOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"settle\", \"ledger\", \"query_by_order\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"order_ids\", string.Join(\",\", request.OrderIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeSettleLedgerQueryByOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Shop\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/shop/poi/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/life.capacity.shop/shop.query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeShopPOIQueryV1Response> ExecuteGoodLifeShopPOIQueryV1Async(this DouyinOpenClient client, Models.GoodLifeShopPOIQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"shop\", \"poi\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize)\n                .SetQueryParam(\"account_id\", request.AccountId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeShopPOIQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Trade\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/trade/order/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/order.query/query ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/orderquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeTradeOrderQueryV1Response> ExecuteGoodLifeTradeOrderQueryV1Async(this DouyinOpenClient client, Models.GoodLifeTradeOrderQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"trade\", \"order\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"ext_order_id\", request.OrderExternalId)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"order_status\", request.OrderStatus)\n                .SetQueryParam(\"create_order_start_time\", request.CreateOrderStartTimestamp)\n                .SetQueryParam(\"create_order_end_time\", request.CreateOrderEndTimestamp)\n                .SetQueryParam(\"update_order_start_time\", request.UpdateOrderStartTimestamp)\n                .SetQueryParam(\"update_order_end_time\", request.UpdateOrderEndTimestamp)\n                .SetQueryParam(\"get_secret_number\", request.RequireGetSecretNumber.HasValue ? request.RequireGetSecretNumber.Value ? \"true\" : \"false\" : null)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeTradeOrderQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /goodlife/v1/trade/book/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/presale/bookingorderquery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeTradeBookGetV1Response> ExecuteGoodLifeTradeBookGetV1Async(this DouyinOpenClient client, Models.GoodLifeTradeBookGetV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"goodlife\", \"v1\", \"trade\", \"book\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"account_id\", request.AccountId)\n                .SetQueryParam(\"book_id\", request.BookId)\n                .SetQueryParam(\"order_id\", request.OrderId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeTradeBookGetV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /goodlife/v1/trade/buy/merchant_confirm_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/takeout/confirmorder ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GoodLifeTradeBuyMerchantConfirmOrderV1Response> ExecuteGoodLifeTradeBuyMerchantConfirmOrderV1Async(this DouyinOpenClient client, Models.GoodLifeTradeBuyMerchantConfirmOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"goodlife\", \"v1\", \"trade\", \"buy\", \"merchant_confirm_order\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GoodLifeTradeBuyMerchantConfirmOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteHotSearchExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteHotSearchExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /hotsearch/sentences/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/hot-video-data/get-current-hot-words ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.HotSearchSentencesResponse> ExecuteHotSearchSentencesAsync(this DouyinOpenClient client, Models.HotSearchSentencesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"hotsearch\", \"sentences/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.HotSearchSentencesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /hotsearch/trending/sentences/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/hot-video-data/get-ascending-words ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.HotSearchTrendingSentencesResponse> ExecuteHotSearchTrendingSentencesAsync(this DouyinOpenClient client, Models.HotSearchTrendingSentencesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"hotsearch\", \"trending\", \"sentences/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.HotSearchTrendingSentencesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /hotsearch/videos/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/hot-video-data/get-hot-words-polymerization-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.HotSearchVideosResponse> ExecuteHotSearchVideosAsync(this DouyinOpenClient client, Models.HotSearchVideosRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"hotsearch\", \"videos/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"hot_sentence\", request.HotSentence);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.HotSearchVideosResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteIMExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteIMExtensions\n    {\n        #region Authorize\n        /// <summary>\n        /// <para>异步调用 [POST] /im/authorize/user_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/query_private_auth_user ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/query_private_auth_user ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMAuthorizeUserListResponse> ExecuteIMAuthorizeUserListAsync(this DouyinOpenClient client, Models.IMAuthorizeUserListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"authorize\", \"user_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMAuthorizeUserListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/authorize/status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/QueryAuthorizeStatus ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMAuthorizeStatusResponse> ExecuteIMAuthorizeStatusAsync(this DouyinOpenClient client, Models.IMAuthorizeStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"authorize\", \"status/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMAuthorizeStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Card\n        /// <summary>\n        /// <para>异步调用 [POST] /im/save/retain_consult_card/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/retain-consult-card/create-retain-consult-card ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMSaveRetainConsultCardResponse> ExecuteIMSaveRetainConsultCardAsync(this DouyinOpenClient client, Models.IMSaveRetainConsultCardRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"save\", \"retain_consult_card/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMSaveRetainConsultCardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /im/get/retain_consult_card/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/retain-consult-card/query-retain-consult-card ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGetRetainConsultCardResponse> ExecuteIMGetRetainConsultCardAsync(this DouyinOpenClient client, Models.IMGetRetainConsultCardRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"im\", \"get\", \"retain_consult_card/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGetRetainConsultCardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/del/retain_consult_card/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/retain-consult-card/delete-retain-consult-card ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMDeleteRetainConsultCardResponse> ExecuteIMDeleteRetainConsultCardAsync(this DouyinOpenClient client, Models.IMDeleteRetainConsultCardRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"del\", \"retain_consult_card/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"card_id\", request.CardId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMDeleteRetainConsultCardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Group\n        /// <summary>\n        /// <para>异步调用 [POST] /im/group/fans/create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/create.fans.group ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/create-group ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupFansCreateResponse> ExecuteIMGroupFansCreateAsync(this DouyinOpenClient client, Models.IMGroupFansCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"group\", \"fans\", \"create/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupFansCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /im/group/fans/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/query.fans.group ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/query-group-information ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupFansListResponse> ExecuteIMGroupFansListAsync(this DouyinOpenClient client, Models.IMGroupFansListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"im\", \"group\", \"fans\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupFansListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /im/group/fans/count/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/group.fans.nums ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/query-group-scope ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupFansCountResponse> ExecuteIMGroupFansCountAsync(this DouyinOpenClient client, Models.IMGroupFansCountRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"im\", \"group\", \"fans\", \"count/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupFansCountResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/group/enter/audit/set/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/update.user.audit.status ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/join-group-audit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupEnterAuditSetResponse> ExecuteIMGroupEnterAuditSetAsync(this DouyinOpenClient client, Models.IMGroupEnterAuditSetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"group\", \"enter\", \"audit\", \"set/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupEnterAuditSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /im/group/enter/audit/get/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/group.fans.audit.get ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/check-group-member ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupEnterAuditGetResponse> ExecuteIMGroupEnterAuditGetAsync(this DouyinOpenClient client, Models.IMGroupEnterAuditGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"im\", \"group\", \"enter\", \"audit\", \"get/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupEnterAuditGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/group/setting/set/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/set_group_setting ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/group-setting ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupSettingSetResponse> ExecuteIMGroupSettingSetAsync(this DouyinOpenClient client, Models.IMGroupSettingSetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"group\", \"setting\", \"set/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupSettingSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/group/setting/disable/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/join-group/cancel_group_setting ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-manage/cancel_group-setting ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMGroupSettingDisableResponse> ExecuteIMGroupSettingDisableAsync(this DouyinOpenClient client, Models.IMGroupSettingDisableRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"group\", \"setting\", \"disable/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMGroupSettingDisableResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Message\n        /// <summary>\n        /// <para>异步调用 [POST] /im/send/msg/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/send-msg ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/send-message ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMSendMessageResponse> ExecuteIMSendMessageAsync(this DouyinOpenClient client, Models.IMSendMessageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"send\", \"msg/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMSendMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/send/msg/group/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/group-msg/im.group.message.send ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-message/im.group.message.send ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMSendMessageGroupResponse> ExecuteIMSendMessageGroupAsync(this DouyinOpenClient client, Models.IMSendMessageGroupRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"send\", \"msg\", \"group/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMSendMessageGroupResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /im/recall/msg/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/private-message/recall-msg ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/group-chat/group-msg/group-msg-recall ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/private-message/recall-msg ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/group-chat/group-message/group-msg-recall ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IMRecallMessageResponse> ExecuteIMRecallMessageAsync(this DouyinOpenClient client, Models.IMRecallMessageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"im\", \"recall\", \"msg/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.IMRecallMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteImageExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteImageExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /image/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/publish-img/upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n        public static async Task<Models.ImageUploadResponse> ExecuteImageUploadAsync(this DouyinOpenClient client, Models.ImageUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageContentType is null)\n                request.ImageContentType = \"image/jpeg\";\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"image\", \"upload\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageContentType, formDataName: \"image\");\n            return await client.SendFlurlRequestAsync<Models.ImageUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /image/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/publish-img/publish ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n        public static async Task<Models.ImageCreateResponse> ExecuteImageCreateAsync(this DouyinOpenClient client, Models.ImageCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"image\", \"create\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ImageCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteItemExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteItemExtensions\n    {\n        #region Comment\n        /// <summary>\n        /// <para>异步调用 [GET] /item/comment/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/comment-management-user/comment-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ItemCommentListResponse> ExecuteItemCommentListAsync(this DouyinOpenClient client, Models.ItemCommentListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"item\", \"comment\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"sort_type\", request.SortType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ItemCommentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /item/comment/reply/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/comment-management-user/comment-reply-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ItemCommentReplyListResponse> ExecuteItemCommentReplyListAsync(this DouyinOpenClient client, Models.ItemCommentReplyListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"item\", \"comment\", \"reply\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"comment_id\", request.CommentId)\n                .SetQueryParam(\"sort_type\", request.SortType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ItemCommentReplyListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /item/comment/reply/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/comment-management-user/video-comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ItemCommentReplyResponse> ExecuteItemCommentReplyAsync(this DouyinOpenClient client, Models.ItemCommentReplyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"item\", \"comment\", \"reply/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ItemCommentReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /item/comment/top/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/comment-management-user/item-comment-top ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ItemCommentTopResponse> ExecuteItemCommentTopAsync(this DouyinOpenClient client, Models.ItemCommentTopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"item\", \"comment\", \"top/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ItemCommentTopResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteJSExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteJSExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /js/getticket/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/jsb-management/get-jsb-ticket ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.JSGetTicketResponse> ExecuteJSGetTicketAsync(this DouyinOpenClient client, Models.JSGetTicketRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"js\", \"getticket/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.JSGetTicketResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteMarketServiceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteMarketServiceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /market/service/user/purchase/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/service-market/service-relationship/purchase-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MarketServiceUserPurchaseListResponse> ExecuteMarketServiceUserPurchaseListAsync(this DouyinOpenClient client, Models.MarketServiceUserPurchaseListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"market\", \"service\", \"user\", \"purchase\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"service_id\", request.ServiceId)\n                .SetQueryParam(\"is_test_env\", request.IsTestEnvironment);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MarketServiceUserPurchaseListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /market/service/user/remaintimes/decr/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/service-market/service-relationship/remaintimes-decr ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MarketServiceUserRemainTimesDecreaseResponse> ExecuteMarketServiceUserRemainTimesDecreaseAsync(this DouyinOpenClient client, Models.MarketServiceUserRemainTimesDecreaseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"market\", \"service\", \"user\", \"remaintimes\", \"decr/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MarketServiceUserRemainTimesDecreaseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /market/service/user/insert/purchase/info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/service-market/service-relationship/insert-purchase-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MarketServiceUserInsertPurchaseInfoResponse> ExecuteMarketServiceUserInsertPurchaseInfoAsync(this DouyinOpenClient client, Models.MarketServiceUserInsertPurchaseInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"market\", \"service\", \"user\", \"insert\", \"purchase\", \"info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MarketServiceUserInsertPurchaseInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /market/service/user/delete/purchase/info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/service-market/service-relationship/delete-purchase-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MarketServiceUserDeletePurchaseInfoResponse> ExecuteMarketServiceUserDeletePurchaseInfoAsync(this DouyinOpenClient client, Models.MarketServiceUserDeletePurchaseInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"market\", \"service\", \"user\", \"delete\", \"purchase\", \"info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MarketServiceUserDeletePurchaseInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteMessageExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteMessageExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /message/once/send/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/one-time-subscription-message ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MessageOnceSendResponse> ExecuteMessageOnceSendAsync(this DouyinOpenClient client, Models.MessageOnceSendRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"message\", \"once\", \"send/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MessageOnceSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteNamekExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    // TODO: 独立化 ExtendedSDK\n    public static class DouyinOpenClientExecuteNamekExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /namek/fulfilment/prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/tripartite.code/create/ ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NamekFulfilmentPrepareResponse> ExecuteNamekFulfilmentPrepareAsync(this DouyinOpenClient client, Models.NamekFulfilmentPrepareRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"namek\", \"fulfilment\", \"prepare\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"encrypted_data\", request.EncryptedData)\n                .SetQueryParam(\"code\", request.Code);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NamekFulfilmentPrepareResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteOAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteOAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/client_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-permission/client-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/non-user-authorization/get-client_token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthClientTokenResponse> ExecuteOAuthClientTokenAsync(this DouyinOpenClient client, Models.OAuthClientTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.ClientSecret is null)\n                request.ClientSecret = client.Credentials.ClientSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"client_token/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuthClientTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/access_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-permission/get-access-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/user-authorization/get-user-access-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthAccessTokenResponse> ExecuteOAuthAccessTokenAsync(this DouyinOpenClient client, Models.OAuthAccessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.ClientSecret is null)\n                request.ClientSecret = client.Credentials.ClientSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"access_token/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuthAccessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/refresh_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-permission/refresh-access-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/user-authorization/refresh-user-access-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthRefreshTokenResponse> ExecuteOAuthRefreshTokenAsync(this DouyinOpenClient client, Models.OAuthRefreshTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"refresh_token/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthRefreshTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/renew_refresh_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-permission/refresh-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/user-authorization/refresh-user-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthRenewRefreshTokenResponse> ExecuteOAuthRenewRefreshTokenAsync(this DouyinOpenClient client, Models.OAuthRenewRefreshTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"renew_refresh_token/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthRenewRefreshTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/business_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/business-token/get-business-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthBusinessTokenResponse> ExecuteOAuthBusinessTokenAsync(this DouyinOpenClient client, Models.OAuthBusinessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.WebhookSecret is null)\n                request.WebhookSecret = client.Credentials.WebhookSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"business_token/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuthBusinessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/refresh_biz_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/business-token/refresh-business-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthRefreshBusinessTokenResponse> ExecuteOAuthRefreshBusinessTokenAsync(this DouyinOpenClient client, Models.OAuthRefreshBusinessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.WebhookSecret is null)\n                request.WebhookSecret = client.Credentials.WebhookSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"refresh_biz_token/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuthRefreshBusinessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/business_scopes/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/business-token/query-business ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthBusinessScopesResponse> ExecuteOAuthBusinessScopesAsync(this DouyinOpenClient client, Models.OAuthBusinessScopesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"business_scopes/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuthBusinessScopesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region User\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/userinfo/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-management/get-account-open-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthUserInfoResponse> ExecuteOAuthUserInfoAsync(this DouyinOpenClient client, Models.OAuthUserInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"userinfo/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthUserInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteOpenExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteOpenExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /open/getticket 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/jsb-management/open-ticket ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenGetTicketResponse> ExecuteOpenGetTicketAsync(this DouyinOpenClient client, Models.OpenGetTicketRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"js\", \"getticket\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenGetTicketResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecutePOIExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    // TODO: 独立化 ExtendedSDK\n    public static class DouyinOpenClientExecutePOIExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/search/keyword 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/search-video/video-poi ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISearchKeywordResponse> ExecutePOISearchKeywordAsync(this DouyinOpenClient client, Models.POISearchKeywordRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"search\", \"keyword\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"keyword\", request.Keyword)\n                .SetQueryParam(\"city\", request.City)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISearchKeywordResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/get-douyin-poi-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIQueryResponse> ExecutePOIQueryAsync(this DouyinOpenClient client, Models.POIQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"amap_id\", request.AMapId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/base/query/amap 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/poi-basic-ability/get-douyin-id-by-autoNavi-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIBaseQueryAMapResponse> ExecutePOIBaseQueryAMapAsync(this DouyinOpenClient client, Models.POIBaseQueryAMapRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"base\", \"query\", \"amap\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"amap_id\", request.AMapId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIBaseQueryAMapResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Coupon\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/coupon/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/coupon/coupon-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICouponSyncV2Response> ExecutePOICouponSyncV2Async(this DouyinOpenClient client, Models.POICouponSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"coupon\", \"sync\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICouponSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/coupon/sync/coupon_available 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/coupon/coupon-update ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICouponSyncCouponAvailableV2Response> ExecutePOICouponSyncCouponAvailableV2Async(this DouyinOpenClient client, Models.POICouponSyncCouponAvailableV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"coupon\", \"sync\", \"coupon_available\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICouponSyncCouponAvailableV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region External\n        #region External/Hotel\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/hotel/order/commit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/place-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalHotelOrderCommitResponse> ExecutePOIExternalHotelOrderCommitAsync(this DouyinOpenClient client, Models.POIExternalHotelOrderCommitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"hotel\", \"order\", \"commit\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalHotelOrderCommitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/hotel/order/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/payment-status-notice ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalHotelOrderStatusResponse> ExecutePOIExternalHotelOrderStatusAsync(this DouyinOpenClient client, Models.POIExternalHotelOrderStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"hotel\", \"order\", \"status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalHotelOrderStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/hotel/order/cancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/cancel-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalHotelOrderCancelResponse> ExecutePOIExternalHotelOrderCancelAsync(this DouyinOpenClient client, Models.POIExternalHotelOrderCancelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"hotel\", \"order\", \"cancel\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalHotelOrderCancelResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/ext/hotel/sku 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/sku-pull ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalHotelSKUResponse> ExecutePOIExternalHotelSKUAsync(this DouyinOpenClient client, Models.POIExternalHotelSKURequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"ext\", \"hotel\", \"sku\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"spu_ext_id\", request.SPUExternalId)\n                .SetQueryParam(\"start_date\", request.StartDateString)\n                .SetQueryParam(\"end_date\", request.EndDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalHotelSKUResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region External/PresaleGroupon\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/presale_groupon/order/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/place-presell-ticket-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalPresaleGrouponOrderCreateResponse> ExecutePOIExternalPresaleGrouponOrderCreateAsync(this DouyinOpenClient client, Models.POIExternalPresaleGrouponOrderCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"presale_groupon\", \"order\", \"create\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalPresaleGrouponOrderCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/presale_groupon/order/commit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/confirm-presell-ticket-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalPresaleGrouponOrderCommitResponse> ExecutePOIExternalPresaleGrouponOrderCommitAsync(this DouyinOpenClient client, Models.POIExternalPresaleGrouponOrderCommitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"presale_groupon\", \"order\", \"commit\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalPresaleGrouponOrderCommitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/ext/presale_groupon/order/cancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/cancel-presell-ticket-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIExternalPresaleGrouponOrderCancelResponse> ExecutePOIExternalPresaleGrouponOrderCancelAsync(this DouyinOpenClient client, Models.POIExternalPresaleGrouponOrderCancelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"ext\", \"presale_groupon\", \"order\", \"cancel\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIExternalPresaleGrouponOrderCancelResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Order\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/order/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/client-message-sync/order-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderSyncResponse> ExecutePOIOrderSyncAsync(this DouyinOpenClient client, Models.POIOrderSyncRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.DateTimeUnixMilliseconds is null)\n                request.DateTimeUnixMilliseconds = DateTimeOffset.Now.ToUnixTimeMilliseconds();\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"order\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/order/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/order-status-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderStatusResponse> ExecutePOIOrderStatusAsync(this DouyinOpenClient client, Models.POIOrderStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"order\", \"status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/order/confirm 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/cancel-presell-ticket ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderConfirmResponse> ExecutePOIOrderConfirmAsync(this DouyinOpenClient client, Models.POIOrderConfirmRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"order\", \"confirm\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderConfirmResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/order/confirm/prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/pre-cancel-presell-ticket ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderConfirmPrepareResponse> ExecutePOIOrderConfirmPrepareAsync(this DouyinOpenClient client, Models.POIOrderConfirmPrepareRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"order\", \"confirm\", \"prepare\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderConfirmPrepareResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/order/confirm/cancel_prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/cancel-precancel-presell-ticket ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderConfirmCancelPrepareResponse> ExecutePOIOrderConfirmCancelPrepareAsync(this DouyinOpenClient client, Models.POIOrderConfirmCancelPrepareRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"order\", \"confirm\", \"cancel_prepare\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderConfirmCancelPrepareResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/order/bill/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/get-download-bill-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderBillTokenResponse> ExecutePOIOrderBillTokenAsync(this DouyinOpenClient client, Models.POIOrderBillTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"order\", \"bill\", \"token\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"bill_date\", request.BillDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderBillTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/order/list/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/trade-system/get-download-order-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIOrderListTokenResponse> ExecutePOIOrderListTokenAsync(this DouyinOpenClient client, Models.POIOrderListTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"order\", \"list\", \"token\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"order_date\", request.OrderDateString);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIOrderListTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Plan\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/common-plan-detail ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanDetailResponse> ExecutePOICommonPlanDetailAsync(this DouyinOpenClient client, Models.POICommonPlanDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"detail\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/talent/detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/common-plan-talent-detail ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanTalentDetailResponse> ExecutePOICommonPlanTalentDetailAsync(this DouyinOpenClient client, Models.POICommonPlanTalentDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"talent\", \"detail\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanTalentDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/talent/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/common-plan-talent-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanTalentListResponse> ExecutePOICommonPlanTalentListAsync(this DouyinOpenClient client, Models.POICommonPlanTalentListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"talent\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanTalentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/talent/media/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/common-plan-talent-media-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanTalentMediaListResponse> ExecutePOICommonPlanTalentMediaListAsync(this DouyinOpenClient client, Models.POICommonPlanTalentMediaListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"talent\", \"media\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanTalentMediaListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/plan/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/plan-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIPlanListResponse> ExecutePOIPlanListAsync(this DouyinOpenClient client, Models.POIPlanListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"plan\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIPlanListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/save 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/save-common-plan ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanSaveResponse> ExecutePOICommonPlanSaveAsync(this DouyinOpenClient client, Models.POICommonPlanSaveRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"save\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanSaveResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/common/plan/update/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/cps/update-common-plan-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POICommonPlanUpdateStatusResponse> ExecutePOICommonPlanUpdateStatusAsync(this DouyinOpenClient client, Models.POICommonPlanUpdateStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"common\", \"plan\", \"update\", \"status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POICommonPlanUpdateStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region ServiceProvider\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/service_provider/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.douyin.com/platform/doc/7005579747057027080 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POIServiceProviderSyncV2Response> ExecutePOIServiceProviderSyncV2Async(this DouyinOpenClient client, Models.POIServiceProviderSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"service_provider\", \"sync\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POIServiceProviderSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SKU\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/sku/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/sku-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISKUSyncResponse> ExecutePOISKUSyncAsync(this DouyinOpenClient client, Models.POISKUSyncRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"sku\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISKUSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SPU\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/spu/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/spu-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISPUSyncV2Response> ExecutePOISPUSyncV2Async(this DouyinOpenClient client, Models.POISPUSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"spu\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISPUSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/spu/status_sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/spu-status-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISPUStatusSyncV2Response> ExecutePOISPUStatusSyncV2Async(this DouyinOpenClient client, Models.POISPUStatusSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"spu\", \"status_sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISPUStatusSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/spu/stock_update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/spu-repo-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISPUStockUpdateV2Response> ExecutePOISPUStockUpdateV2Async(this DouyinOpenClient client, Models.POISPUStockUpdateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"spu\", \"stock_update\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISPUStockUpdateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/v2/spu/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/spu-info-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISPUGetV2Response> ExecutePOISPUGetV2Async(this DouyinOpenClient client, Models.POISPUGetV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"v2\", \"spu\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"spu_ext_id\", request.SPUExternalId)\n                .SetQueryParam(\"need_spu_draft\", request.RequireSPUDraft)\n                .SetQueryParam(\"spu_draft_count\", request.SPUDraftCount)\n                .SetQueryParam(\"supplier_ids_for_filter_reason\", request.SupplierIdForFilterReasonList is null ? null : string.Join(\",\", request.SupplierIdForFilterReasonList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISPUGetV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/spu/take_rate/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/goods-repo/take-rate ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISPUTakeRateSyncV2Response> ExecutePOISPUTakeRateSyncV2Async(this DouyinOpenClient client, Models.POISPUTakeRateSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"spu\", \"take_rate\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISPUTakeRateSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Supplier\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/supplier/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/synchronism/ ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierSyncResponse> ExecutePOISupplierSyncAsync(this DouyinOpenClient client, Models.POISupplierSyncRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"supplier\", \"sync\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/supplier/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/search ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierQueryResponse> ExecutePOISupplierQueryAsync(this DouyinOpenClient client, Models.POISupplierQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"supplier\", \"query\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"supplier_ext_id\", request.ExternalSupplierId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/supplier/query_all 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/query-all-shop-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierQueryAllResponse> ExecutePOISupplierQueryAllAsync(this DouyinOpenClient client, Models.POISupplierQueryAllRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"supplier\", \"query_all\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierQueryAllResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/supplier/query_callback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/query-shop-all-tasks ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierQueryCallbackResponse> ExecutePOISupplierQueryCallbackAsync(this DouyinOpenClient client, Models.POISupplierQueryCallbackRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"supplier\", \"query_callback\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"task_id\", request.TaskId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierQueryCallbackResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/v2/supplier/query/task 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/task-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierQueryTaskV2Response> ExecutePOISupplierQueryTaskV2Async(this DouyinOpenClient client, Models.POISupplierQueryTaskV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"v2\", \"supplier\", \"query\", \"task\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"supplier_task_ids\", string.Join(\",\", request.SupplierTaskIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierQueryTaskV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /poi/v2/supplier/query/supplier 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/status-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierQuerySupplierV2Response> ExecutePOISupplierQuerySupplierV2Async(this DouyinOpenClient client, Models.POISupplierQuerySupplierV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"poi\", \"v2\", \"supplier\", \"query\", \"supplier\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"supplier_ext_id\", string.Join(\",\", request.SupplierExternalIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierQuerySupplierV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /poi/v2/supplier/match 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/micro-app/shop/poi-sync-task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.POISupplierMatchV2Response> ExecutePOISupplierMatchV2Async(this DouyinOpenClient client, Models.POISupplierMatchV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"poi\", \"v2\", \"supplier\", \"match\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.POISupplierMatchV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteRoomExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteRoomExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /room/data/room_id/get/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/live-data/live-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RoomDataRoomIdGetResponse> ExecuteRoomDataRoomIdGetAsync(this DouyinOpenClient client, Models.RoomDataRoomIdGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"room\", \"data\", \"room_id\", \"get/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.RoomDataRoomIdGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /room/data/interactive/get/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/live-data/live-interactive-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RoomDataInteractiveGetResponse> ExecuteRoomDataInteractiveGetAsync(this DouyinOpenClient client, Models.RoomDataInteractiveGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"room\", \"data\", \"interactive\", \"get/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"live_id\", request.LiveId)\n                .SetQueryParam(\"room_id\", request.RoomId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.RoomDataInteractiveGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /room/data/audience/get/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/live-data/live-audience-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RoomDataAudienceGetResponse> ExecuteRoomDataAudienceGetAsync(this DouyinOpenClient client, Models.RoomDataAudienceGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"room\", \"data\", \"audience\", \"get/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"live_id\", request.LiveId)\n                .SetQueryParam(\"room_id\", request.RoomId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.RoomDataAudienceGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /room/data/base/get/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/live-data/live-base-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RoomDataBaseGetResponse> ExecuteRoomDataBaseGetAsync(this DouyinOpenClient client, Models.RoomDataBaseGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"room\", \"data\", \"base\", \"get/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"live_id\", request.LiveId)\n                .SetQueryParam(\"room_id\", request.RoomId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.RoomDataBaseGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteSandboxExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteSandboxExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /sandbox/webhook/event/send/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/tools-ability/sandbox-management/mock-webhook-event ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SandboxWebhookEventSendResponse> ExecuteSandboxWebhookEventSendAsync(this DouyinOpenClient client, Models.SandboxWebhookEventSendRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"sandbox\", \"webhook\", \"event\", \"send/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.SandboxWebhookEventSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteShareIdExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteShareIdExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /share-id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/search-video/video-share-result ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ShareIdResponse> ExecuteShareIdAsync(this DouyinOpenClient client, Models.ShareIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"share-id/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"need_callback\", request.RequireCallback.HasValue ? request.RequireCallback.Value ? \"true\" : \"false\" : null)\n                .SetQueryParam(\"source_style_id\", request.SourceStyleId)\n                .SetQueryParam(\"default_hashtag\", request.DefaultHashTag)\n                .SetQueryParam(\"link_param\", request.LinkParameter);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ShareIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteStarExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteStarExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /star/hot_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/star-data/star-tops/get-star-author-hot-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.StarHotListResponse> ExecuteStarHotListAsync(this DouyinOpenClient client, Models.StarHotListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"star\", \"hot_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"hot_list_type\", request.HotListType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.StarHotListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /star/author_score/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/star-data/star-author/get-star-author-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.StarAuthorScoreResponse> ExecuteStarAuthorScoreAsync(this DouyinOpenClient client, Models.StarAuthorScoreRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"star\", \"author_score/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.StarAuthorScoreResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /star/author_score_v2/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/data-open-service/star-data/star-author/get-star-author-data-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.StarAuthorScoreV2Response> ExecuteStarAuthorScoreV2Async(this DouyinOpenClient client, Models.StarAuthorScoreV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"star\", \"author_score_v2/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"unique_id\", request.DouyinId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.StarAuthorScoreV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteTaskExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteTaskExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /task/posting/create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/posting-task/create-posting-task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TaskPostingCreateResponse> ExecuteTaskPostingCreateAsync(this DouyinOpenClient client, Models.TaskPostingCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"task\", \"posting\", \"create/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TaskPostingCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /task/posting/bind_video/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/posting-task/bind-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TaskPostingBindVideoResponse> ExecuteTaskPostingBindVideoAsync(this DouyinOpenClient client, Models.TaskPostingBindVideoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"task\", \"posting\", \"bind_video/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TaskPostingBindVideoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /task/posting/user/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/posting-task/bind-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TaskPostingUserResponse> ExecuteTaskPostingUserAsync(this DouyinOpenClient client, Models.TaskPostingUserRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"task\", \"posting\", \"user/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TaskPostingUserResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteToolExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteToolExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /tool/imagex/client_upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/interaction-management/business-tool/image-upload ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/instant-message/business-tool/image-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ToolImagexClientUploadResponse> ExecuteToolImagexClientUploadAsync(this DouyinOpenClient client, Models.ToolImagexClientUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageContentType is null)\n                request.ImageContentType = \"image/jpeg\";\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tool\", \"imagex\", \"client_upload/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageContentType, formDataName: \"image\");\n            return await client.SendFlurlRequestAsync<Models.ToolImagexClientUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientExecuteVideoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientExecuteVideoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /video/source 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/video-management/douyin/search-video/douyin-video-origin ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoSourceResponse> ExecuteVideoSourceAsync(this DouyinOpenClient client, Models.VideoSourceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"source\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoSourceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Comment\n        /// <summary>\n        /// <para>异步调用 [GET] /video/comment/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/enterprise-open-ability/comment-management-enterprise/comment-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoCommentListResponse> ExecuteVideoCommentListAsync(this DouyinOpenClient client, Models.VideoCommentListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"video\", \"comment\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"item_id\", request.ItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoCommentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /video/comment/reply/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/enterprise-open-ability/comment-management-enterprise/comment-reply-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoCommentReplyListResponse> ExecuteVideoCommentReplyListAsync(this DouyinOpenClient client, Models.VideoCommentReplyListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"video\", \"comment\", \"reply\", \"list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"comment_id\", request.CommentId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoCommentReplyListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /video/comment/reply/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/enterprise-open-ability/comment-management-enterprise/video-comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoCommentReplyResponse> ExecuteVideoCommentReplyAsync(this DouyinOpenClient client, Models.VideoCommentReplyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"comment\", \"reply/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoCommentReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /video/comment/top/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/enterprise-open-ability/comment-management-enterprise/top-video-comment ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoCommentTopResponse> ExecuteVideoCommentTopAsync(this DouyinOpenClient client, Models.VideoCommentTopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"comment\", \"top/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoCommentTopResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Search\n        /// <summary>\n        /// <para>异步调用 [GET] /video/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/search-management/keywords-video-list/keywords-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoSearchResponse> ExecuteVideoSearchAsync(this DouyinOpenClient client, Models.VideoSearchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"video\", \"search\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"keyword\", request.Keyword);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoSearchResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /video/search/comment/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/search-management/keywords-video-comment-management/comment-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoSearchCommentListResponse> ExecuteVideoSearchCommentListAsync(this DouyinOpenClient client, Models.VideoSearchCommentListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"video\", \"search\", \"comment\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sec_item_id\", request.SecurityItemId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoSearchCommentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /video/search/comment/reply/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/search-management/keywords-video-comment-management/comment-reply-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoSearchCommentReplyListResponse> ExecuteVideoSearchCommentReplyListAsync(this DouyinOpenClient client, Models.VideoSearchCommentReplyListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"video\", \"search\", \"comment\", \"reply\", \"list\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sec_item_id\", request.SecurityItemId)\n                .SetQueryParam(\"comment_id\", request.CommentId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoSearchCommentReplyListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /video/search/comment/reply 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/search-management/keywords-video-comment-management/comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoSearchCommentReplyResponse> ExecuteVideoSearchCommentReplyAsync(this DouyinOpenClient client, Models.VideoSearchCommentReplyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"search\", \"comment\", \"reply\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"device_brand\", request.DeviceBrand)\n                .SetQueryParam(\"device_platform\", request.DevicePlatform)\n                .SetQueryParam(\"device_type\", request.DeviceType)\n                .SetQueryParam(\"ip\", request.ClientIp)\n                .SetQueryParam(\"os_version\", request.OSVersion)\n                .SetQueryParam(\"shark_channel\", request.SharkChannel);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoSearchCommentReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientParameterExtensions.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Collections.ObjectModel;\nusing Flurl;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    public static class DouyinOpenClientParameterExtensions\n    {\n        /// <summary>\n        /// <para>生成客户端 JSBridge `sdk.config` 所需的参数。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/sdk/web-app/js/js-access ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/sdk/web-app/js/signature ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"jsapiTicket\"></param>\n        /// <param name=\"url\"></param>\n        /// <returns></returns>\n        public static IDictionary<string, string> GenerateParametersForJSBridgeConfig(this DouyinOpenClient client, string jsapiTicket, string url)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (jsapiTicket is null) throw new ArgumentNullException(nameof(jsapiTicket));\n            if (url is null) throw new ArgumentNullException(nameof(url));\n\n            url = url.Split('#')[0];\n            string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString();\n            string nonce = Guid.NewGuid().ToString(\"N\");\n            string sign = Utilities.MD5Utility.Hash($\"jsapi_ticket={jsapiTicket}&nonce_str={nonce}&timestamp={timestamp}&url={url}\").Value!.ToLower();\n\n            return new ReadOnlyDictionary<string, string>(new Dictionary<string, string>()\n            {\n                { \"client_key\", client.Credentials.ClientKey },\n                { \"timestamp\", timestamp },\n                { \"nonce_str\", nonce },\n                { \"url\", url },\n                { \"signature\", sign }\n            });\n        }\n\n        /// <summary>\n        /// <para>生成抖音获取授权临时票据的 URL。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/sdk/web-app/web/permission ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/account-permission/douyin-get-permission-code ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"scope\"></param>\n        /// <param name=\"optionalScope\"></param>\n        /// <param name=\"redirectUrl\"></param>\n        /// <param name=\"state\"></param>\n        /// <returns></returns>\n        public static string GenerateParameterizedUrlForPlatformOAuthConnect(this DouyinOpenClient client, string? scope = null, string? optionalScope = null, string? redirectUrl = null, string? state = null)\n        {\n            return new Url(\"https://open.douyin.com/\")\n                .AppendPathSegments(\"platform\", \"oauth\", \"connect\")\n                .SetQueryParam(\"client_key\", client.Credentials.ClientKey)\n                .SetQueryParam(\"response_type\", \"code\")\n                .SetQueryParam(\"scope\", scope)\n                .SetQueryParam(\"optionalScope\", optionalScope)\n                .SetQueryParam(\"redirect_uri\", redirectUrl)\n                .SetQueryParam(\"state\", state)\n                .ToString();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Extensions/DouyinOpenClientSPIExtensions.cs",
    "content": "using System;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    public static class DouyinOpenClientSPIExtensions\n    {\n        /// <summary>\n        /// <para>验证 SPI 接口签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/beforeinsert/signruleintroduce/ ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/beforeinsert/signruleintroduce/ ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"requestTimestamp\">抖音 SPI 接口中的 timestamp 查询参数。</param>\n        /// <param name=\"requestBody\">抖音 SPI 接口中请求正文。</param>\n        /// <param name=\"requestSignature\">抖音 SPI 接口中的 X-Life-Sign 请求标头。</param>\n        /// <returns></returns>\n        public static ErroredResult VerifySPIRequestSignature(this DouyinOpenClient client, string requestTimestamp, string requestBody, string requestSignature)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (requestBody is null) throw new ArgumentNullException(nameof(requestBody));\n\n            ErroredResult result;\n\n            try\n            {\n                string msg = $\"{client.Credentials.ClientSecret}&client_key={client.Credentials.ClientKey}&timestamp={requestTimestamp}\";\n                if (!string.IsNullOrEmpty(requestBody))\n                    msg += $\"&http_body={requestBody}\";\n\n                string sign = Utilities.SHA256Utility.Hash(msg).Value!;\n                bool valid =  string.Equals(sign, requestSignature, StringComparison.OrdinalIgnoreCase);\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match. Maybe \\\"{requestSignature}\\\" is an illegal signature.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n\n        /// <summary>\n        /// 解密 SPI 接口中的敏感字段。\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/dop/develop/openapi/life-service-open-ability/life.capacity/beforeinsert/decrypt ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"encodingCipherText\">经 Base64 编码后的待解密数据。</param>\n        /// <returns>解密后的数据。</returns>\n        public static string DecryptSPICipherField(this DouyinOpenClient client, string encodingCipherText)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (encodingCipherText is null) throw new ArgumentNullException(encodingCipherText);\n\n            const int KEY_SIZE = 32;\n            const int KEY_IV_OFFSET = 16;\n            string key = client.Credentials.ClientSecret ?? string.Empty;\n\n            // 不足位填充\n            if (key.Length < KEY_SIZE)\n            {\n                int r = (KEY_SIZE - key.Length) / 2;\n                int l = (KEY_SIZE - key.Length) - r;\n\n                key = key.PadRight(key.Length + r, '#');\n                key = key.PadLeft(key.Length + l, '#');\n            }\n\n            // 溢出位截断\n            if (key.Length > KEY_SIZE)\n            {\n                int r = (key.Length - KEY_SIZE) / 2;\n                int l = (key.Length - KEY_SIZE) - r;\n\n                return key.Substring(l, KEY_SIZE + l);\n            }\n\n            byte[] keyBytes = Encoding.UTF8.GetBytes(key);\n            byte[] ivBytes = Encoding.UTF8.GetBytes(key.Substring(KEY_IV_OFFSET));\n            byte[] cipherBytes = Convert.FromBase64String(encodingCipherText);\n            byte[] plainBytes = Utilities.AESUtility.DecryptWithCBC(keyBytes, ivBytes, cipherBytes);\n            return Encoding.UTF8.GetString(plainBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsAuth/AppsAuthGetOpenIdByCV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/auth/get_openid_by_c/ 接口的请求。</para>\n    /// </summary>\n    public class AppsAuthGetOpenIdByCV1Request : DouyinAuthGetOpenIdByCV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsAuth/AppsAuthGetOpenIdByCV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/auth/get_openid_by_c/ 接口的响应。</para>\n    /// </summary>\n    public class AppsAuthGetOpenIdByCV1Response : DouyinAuthGetOpenIdByCV1Response\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookCreateBookV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/create_book 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeBookCreateBookV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class ItemBookInfo\n            {\n                public static class Types\n                {\n                    public class UserInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置电话号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                        public string? PhoneNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置身份证号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id_card_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_no\")]\n                        public string? IdCardNumber { get; set; }\n                    }\n\n                    public class BookSKUInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置 SKU ID 类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id_type\")]\n                        public int SKUIdType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置加价金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public int Price { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置外部店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ext_shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ext_shop_id\")]\n                public string ExternalPOIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string ShopName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                public string GoodsId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string? ItemOrderId { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约开始时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_start_time\")]\n                public long BookStartTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约结束时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_end_time\")]\n                public long BookEndTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_info_list\")]\n                public IList<Types.UserInfo>? UserInfoList { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约的商品 SKU 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_sku_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_sku_info\")]\n                public Types.BookSKUInfo? BookSKUInfo { get; set; }\n            }\n\n            public class MarkupInfo\n            {\n                public static class Types\n                {\n                    public class MicroAppSchema : AppsTradeRefundCreateRefundV2Request.Types.MicroAppSchema\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者加价单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_markup_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_markup_no\")]\n                public string OutMarkupNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置总金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单详情页的 Schema。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n                public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商家预约单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_book_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_book_no\")]\n        public string OutBookNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预约信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_book_info_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_book_info_list\")]\n        public IList<Types.ItemBookInfo> ItemBookInfoList { get; set; } = new List<Types.ItemBookInfo>();\n\n        /// <summary>\n        /// 获取或设置加价信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"markup_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"markup_info\")]\n        public Types.MarkupInfo? MarkupInfo { get; set; } \n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookCreateBookV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/create_book 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeBookCreateBookV2Response : DouyinOpenResponse<AppsTradeBookCreateBookV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class MarkupOrderInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置加价单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"markup_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"markup_order_id\")]\n                        public string MarkupOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置唤起收银台的支付订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                        public string PayOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置唤起收银台的 Token。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_token\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_token\")]\n                        public string PayOrderToken { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置预约单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n                public string BookId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置加价单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"markup_order_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"markup_order_info\")]\n                public Types.MarkupOrderInfo? MarkupOrderInfo { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookMerchantCancelBookV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/merchant_cancel_book 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeBookMerchantCancelBookV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置预约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"book_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n        public string BookId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置取消原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public string CancelReason { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookMerchantCancelBookV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/merchant_cancel_book 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeBookMerchantCancelBookV2Response : DouyinOpenResponse<AppsTradeBookMerchantCancelBookV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookQueryBookV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/query_book 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeBookQueryBookV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置预约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"book_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n        public string? BookId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookQueryBookV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/query_book 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeBookQueryBookV2Response : DouyinOpenResponse<AppsTradeBookQueryBookV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Book\n                    {\n                        public static class Types\n                        {\n                            public class ItemBookInfo\n                            {\n                                public static class Types\n                                {\n                                    public class UserInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置姓名。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string? Name { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置电话号码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"phone\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                                        public string? PhoneNumber { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置身份证号码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id_card_no\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_no\")]\n                                        public string? IdCardNumber { get; set; }\n                                    }\n\n                                    public class BookSKUInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID 类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id_type\")]\n                                        public int SKUIdType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                        public string SKUId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置加价金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                        public int Price { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置门店 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string POIId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                                public string GoodsId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string? ItemOrderId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预约开始时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"book_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"book_start_time\")]\n                                public long BookStartTimeMilliseconds { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预约结束时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"book_end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"book_end_time\")]\n                                public long BookEndTimeMilliseconds { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户信息列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"user_info_list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"user_info_list\")]\n                                public Types.UserInfo[]? UserInfoList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预约的商品 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string? SKUId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置加价单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"markup_item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"markup_item_order_id\")]\n                                public string? MarkupItemOrderId { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家预约单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_book_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_book_no\")]\n                        public string OutBookNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预约单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"book_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n                        public string BookId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预约状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预约信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"book_child_info_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"book_child_info_list\")]\n                        public Types.ItemBookInfo[] ItemBookInfoList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置加价单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"markup_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"markup_order_id\")]\n                        public string? MarkupOrderId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置预约单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_info_list\")]\n                public Types.Book[] BookList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookResultCallbackV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/book_result_callback 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeBookResultCallbackV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置预约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"book_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n        public string BookId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预约结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"result\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n        public int Result { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n        public string? Message { get; set; }\n\n        /// <summary>\n        /// 获取或设置接单方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"accept_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"accept_type\")]\n        public int? AcceptType { get; set; } \n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookResultCallbackV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/book_result_callback 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeBookResultCallbackV2Response : DouyinOpenResponse<AppsTradeBookResultCallbackV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookUserCancelBookV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/user_cancel_book 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeBookUserCancelBookV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置预约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"book_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n        public string BookId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置取消原因列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public IList<string> CancelReasonList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeBookUserCancelBookV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/book/user_cancel_book 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeBookUserCancelBookV2Response : DouyinOpenResponse<AppsTradeBookUserCancelBookV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentDeliveryPrepareV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/delivery_prepare 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentDeliveryPrepareV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置从二维码解析出的加密数据。与字段 <see cref=\"Code\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"encrypted_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_data\")]\n        public string? EncryptedData { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户券码。与字段 <see cref=\"EncryptedData\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? Code { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentDeliveryPrepareV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/delivery_prepare 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentDeliveryPrepareV2Response : DouyinOpenResponse<AppsTradeFulfillmentDeliveryPrepareV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置验券 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n                public string VerifyToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置可用券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentDeliveryVerifyV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/delivery_verify 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentDeliveryVerifyV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Certificate\n            {\n                /// <summary>\n                /// 获取或设置加密券码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                public string EncryptedCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置券 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                public string CertificateId { get; set; } = string.Empty;\n            }\n\n            public class POIInfo\n            {\n                /// <summary>\n                /// 获取或设置店铺名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string? ShopName { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销门店的外部店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ext_valid_shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ext_valid_shop_id\")]\n                public string? ExternalValidShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销门店对应的抖音 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_poi_id_str\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_poi_id_str\")]\n                public string? ValidPOIId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置验券 Token。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n        public string VerifyToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificates\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n        public IList<Types.Certificate> CertificateList { get; set; } = new List<Types.Certificate>();\n\n        /// <summary>\n        /// 获取或设置商铺 POI 信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.POIInfo? POIInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentDeliveryVerifyV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/delivery_verify 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentDeliveryVerifyV2Response : DouyinOpenResponse<AppsTradeFulfillmentDeliveryVerifyV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_code\")]\n                        public string CertificateCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置验券结果码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"result_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"result_code\")]\n                        public int ResultCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置验券结果说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"result_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"result_msg\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentOrderCanUseV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/order_can_use 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentOrderCanUseV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentOrderCanUseV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/order_can_use 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentOrderCanUseV2Response : DouyinOpenResponse<AppsTradeFulfillmentOrderCanUseV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate : AppsTradeFulfillmentQueryUserCertificatesV2Response.Types.Data.Types.Order.Types.Certificate\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否可用。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_use\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_use\")]\n                public bool CanUse { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentPushDeliveryV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/push_delivery 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentPushDeliveryV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class ItemOrder\n            {\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string ItemOrderId { get; set; } = string.Empty;\n            }\n\n            public class POIInfo : AppsTradeFulfillmentDeliveryVerifyV2Request.Types.POIInfo\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_list\")]\n        public IList<Types.ItemOrder> ItemOrderList { get; set; } = new List<Types.ItemOrder>();\n\n        /// <summary>\n        /// 获取或设置是否整单核销。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"use_all\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"use_all\")]\n        public bool? IsUseAll { get; set; }\n\n        /// <summary>\n        /// 获取或设置商铺 POI 信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.POIInfo? POIInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentPushDeliveryV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/push_delivery 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentPushDeliveryV2Response : DouyinOpenResponse<AppsTradeFulfillmentPushDeliveryV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentQueryUserCertificatesV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/query_user_certificates 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentQueryUserCertificatesV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商家团购账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_type\")]\n        public int? BusinessType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：50</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 50;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentQueryUserCertificatesV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/query_user_certificates 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentQueryUserCertificatesV2Response : DouyinOpenResponse<AppsTradeFulfillmentQueryUserCertificatesV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class Certificate\n                            {\n                                public static class Types\n                                {\n                                    public class SKU\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                                        public string? SPUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商家商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                                        public string? OutSPUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                        public string SKUId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商家 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"third_sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"third_sku_id\")]\n                                        public string? OutSKUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                        public string Title { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置团购类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"groupon_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"groupon_type\")]\n                                        public int GrouponType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置市场价（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                                        public int MarketPrice { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置团购售卖开始时间戳。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                        public int SoldStartTimestamp { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商家团购账号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                        public string? AccountId { get; set; }\n                                    }\n\n                                    public class Amount\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置原始金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                                        public int OriginalAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置实付金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                        public int PayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商家营销金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"merchant_ticket_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket_amount\")]\n                                        public int? MerchantTicketAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置支付优惠金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"payment_discount_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_discount_amount\")]\n                                        public int? PaymentDiscountAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置券实付金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"coupon_pay_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_pay_amount\")]\n                                        public int? CouponPayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置平台补贴金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"platform_ticket_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_ticket_amount\")]\n                                        public int? PlatformTicketAmount { get; set; }\n                                    }\n\n                                    public class TimesCardInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置总次数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"total_times\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"total_times\")]\n                                        public int TotalTimes { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置可用次数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"usable_times\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"usable_times\")]\n                                        public int UsableTimes { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置券 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                                public string CertificateId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置生效时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                                public long StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过期时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                                public long ExpireTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                public string? Code { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_info\")]\n                                public Types.SKU SKU { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                public Types.Amount Amount { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置次卡信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"times_card_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"times_card_info\")]\n                                public Types.TimesCardInfo? TimesCardInfo { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                        public Types.Certificate[] CertificateList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否可用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_use\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_use\")]\n                        public bool CanUse { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentVerifyCancelV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/verify_cancel 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentVerifyCancelV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n        public string CertificateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置核销 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n        public string VerifyId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeFulfillmentVerifyCancelV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/fulfillment/verify_cancel 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeFulfillmentVerifyCancelV2Response : DouyinOpenResponse<AppsTradeFulfillmentVerifyCancelV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderCloseOrderV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/close_order 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeOrderCloseOrderV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderCloseOrderV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/close_order 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeOrderCloseOrderV2Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderCreateOrderV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/create_order 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeOrderCreateOrderV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Goods\n            {\n                public static class Types\n                {\n                    public class OrderValidTime\n                    {\n                        /// <summary>\n                        /// 获取或设置有效期开始时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_start_time\")]\n                        public long? StartTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效期结束时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long? EndTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_duration\")]\n                        public int? Duration { get; set; }\n                    }\n\n                    public class BookingInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置预约类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"book_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"book_type\")]\n                        public int BookType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消政策。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_policy\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_policy\")]\n                        public int? CancelPolicy { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置提前取消的小时限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_advance_hour\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_advance_hour\")]\n                        public int? CancelAdvanceHours { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id_type\")]\n                public int GoodsIdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                public string GoodsId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_title\")]\n                public string? GoodsTitle { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_image\")]\n                public string? GoodsImageUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置标签列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"labels\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedStringListWithPipeSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"labels\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedStringListWithPipeSplitConverter))]\n                public IList<string>? LabelList { get; set; }\n\n                /// <summary>\n                /// 获取或设置使用规则。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date_rule\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date_rule\")]\n                public string? DateRuleText { get; set; }\n\n                /// <summary>\n                /// 获取或设置价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int? Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置折扣金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                public int? DiscountAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品详情页的 Schema。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_page\")]\n                public MicroAppSchema? GoodsPageSchema { get; set; }\n\n                /// <summary>\n                /// 获取或设置券的有效期。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_valid_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_valid_time\")]\n                public Types.OrderValidTime? OrderValidTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_book_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_book_info\")]\n                public Types.BookingInfo? BookingInfo { get; set; }\n            }\n\n            public class PriceCalculationDetail\n            {\n                public static class Types\n                {\n                    public class GoodsDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_discount_amount\")]\n                        public int TotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class ItemDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置商品总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_discount_amount\")]\n                        public int TotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class OrderDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置订单优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_total_discount_amount\")]\n                        public int OrderTotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_total_discount_amount\")]\n                        public int GoodsTotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class MarketingDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置营销 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置营销类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销子类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtype\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtype\")]\n                        public string? SubType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int DiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_range\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_range\")]\n                        public int DiscountRange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string? Title { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"note\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n                        public string? Notes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public long? Value { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置算价类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calculation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calculation_type\")]\n                public int CalculationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品算价结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_discount_detail\")]\n                public IList<Types.GoodsDiscountDetail>? GoodsDiscountDetailList { get; set; }\n\n                /// <summary>\n                /// 获取或设置单商品算价结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_discount_detail\")]\n                public IList<Types.ItemDiscountDetail>? ItemDiscountDetailList { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单算价结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_discount_detail\")]\n                public Types.OrderDiscountDetail? OrderDiscountDetail { get; set; }\n            }\n\n            public class MicroAppSchema\n            {\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string Path { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置页面参数字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                public string? ParamsString { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置折扣金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n        public int? DiscountAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_list\")]\n        public IList<Types.Goods> GoodsList { get; set; } = new List<Types.Goods>();\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public string? Notes { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact_name\")]\n        public string? ContactName { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_num\")]\n        public string? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付超时时间（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_expire_seconds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_expire_seconds\")]\n        public int? PayExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单详情页的 Schema。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n        public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n\n        /// <summary>\n        /// 获取或设置营销算价结果信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price_calculation_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price_calculation_detail\")]\n        public Types.PriceCalculationDetail? PriceCalculationDetail { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderCreateOrderV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/create_order 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeOrderCreateOrderV2Response : DouyinOpenResponse<AppsTradeOrderCreateOrderV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ItemOrderInfo\n                    {\n                        public static class Types\n                        {\n                            public class ItemOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int Price { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id_list\")]\n                        public string[] ItemOrderIdList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n                        public Types.ItemOrder[] ItemOrderList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的支付订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_token\")]\n                public string PayOrderToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_info_list\")]\n                public Types.ItemOrderInfo[] ItemOrderInfoList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryCPSV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_cps 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryCPSV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryCPSV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_cps 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryCPSV2Response : DouyinOpenResponse<AppsTradeOrderQueryCPSV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Payment\n                    {\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public string OrderStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_fee\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收款商户号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_uid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_uid\")]\n                        public string? MerchantId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付渠道。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                        public int? PayChannel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置渠道支付单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                        public string? ChannelPayId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public string? PayTimeString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置自定义字段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n                    }\n\n                    public class CPS\n                    {\n                        public static class Types\n                        {\n                            public class CPSItem\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sell_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sell_amount\")]\n                                public int SellAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分佣类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"source_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"source_type\")]\n                                public int SourceType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置订单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_amount\")]\n                                public int CommissionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分佣比例（单位：万分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                                public int CommissionRate { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人抖音号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_user_douyinid\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_user_douyinid\")]\n                                public string CommissionUserDouyinId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置达人昵称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_user_nickname\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_user_nickname\")]\n                                public string CommissionUserNickname { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置任务 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                                public string TaskId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置短视频或直播间 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ItemId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置佣金总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_commission_amount\")]\n                        public int TotalCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 CPS 信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cps_item_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cps_item_list\")]\n                        public Types.CPSItem[] CPSItemList { get; set; } = default!;\n                    }\n\n                    public class Refund\n                    {\n                        public static class Types\n                        {\n                            public class RefundItem\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置开发者退款单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n                                public string OutRefundNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int RefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                                public string RefundStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                                public long? RefundTimeMilliseconds { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_refund_amount\")]\n                        public int TotalRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_items\")]\n                        public Types.RefundItem[] RefundItemList { get; set; } = default!;\n                    }\n\n                    public class Delivery\n                    {\n                        public static class Types\n                        {\n                            public class DeliveryItem\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置核销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_amount\")]\n                                public int DeliveryAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置核销状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_status\")]\n                                public string Deliverytatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置核销时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_at\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_at\")]\n                                public long? DeliveryTimeMilliseconds { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置核销总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_delivery_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_delivery_amount\")]\n                        public int TotalDeliveryAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_items\")]\n                        public Types.DeliveryItem[] DeliveryItemList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payment_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payment_info\")]\n                public Types.Payment Payment { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 CPS 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cps_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cps_info\")]\n                public Types.CPS CPS { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_info\")]\n                public Types.Refund? Refund { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_info\")]\n                public Types.Delivery? Delivery { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryItemOrderInfoV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_item_order_info 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryItemOrderInfoV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id_list\")]\n        public IList<string>? ItemOrderIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryItemOrderInfoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_item_order_info 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryItemOrderInfoV2Response : DouyinOpenResponse<AppsTradeOrderQueryItemOrderInfoV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ItemOrder\n                    {\n                        public static class Types\n                        {\n                            public class TimesCardInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置总次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_times\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_times\")]\n                                public int TotalTimes { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置可用次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"usable_times\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"usable_times\")]\n                                public int UsableTimes { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_times\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_times\")]\n                                public int RefundTimes { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置单次现价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_amount_once\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount_once\")]\n                                public int? ActualOnceAmount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效期开始时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_start_time\")]\n                        public long ValidStartTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效期结束时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_time\")]\n                        public long DeliveryTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置次卡信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"times_card_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"times_card_info\")]\n                        public Types.TimesCardInfo? TimesCardInfo { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_list\")]\n                public Types.ItemOrder[] ItemOrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryOrderV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_order 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryOrderV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeOrderQueryOrderV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/order/query_order 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeOrderQueryOrderV2Response : DouyinOpenResponse<AppsTradeOrderQueryOrderV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_fee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_fee\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置已退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置已分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                public int? PayChannel { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道支付单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                public string? ChannelPayId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public string? PayTimeString { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string? ResultMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置短视频或直播间 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringReadOnlyConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ItemId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的支付订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payment_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payment_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置核销类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                public int DeliveryType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundCreateRefundV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/create_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeRefundCreateRefundV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class ItemOrder\n            {\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string ItemOrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n            }\n\n            public class MicroAppSchema\n            {\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string Path { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置页面参数字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                public string? ParamsString { get; set; } = string.Empty;\n            }\n\n            public class TimesCardRefundParameter\n            {\n                /// <summary>\n                /// 获取或设置退款类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"times_card_refund_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"times_card_refund_type\")]\n                public int RefundType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n        public int RefundTotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n        public IList<Types.ItemOrder>? ItemOrderList { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置次卡退款参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"times_card_refund_param\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"times_card_refund_param\")]\n        public Types.TimesCardRefundParameter? TimesCardRefundParameter { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单详情页的 Schema。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n        public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundCreateRefundV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/create_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeRefundCreateRefundV2Response : DouyinOpenResponse<AppsTradeRefundCreateRefundV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置退款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                public string RefundId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundMerchantAuditCallbackV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/merchant_audit_callback 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeRefundMerchantAuditCallbackV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_status\")]\n        public int AuditStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置不同意退款信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deny_message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deny_message\")]\n        public string? DenyMessage { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundMerchantAuditCallbackV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/merchant_audit_callback 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeRefundMerchantAuditCallbackV2Response : DouyinOpenResponse<AppsTradeRefundMerchantAuditCallbackV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundQueryRefundV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/query_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeRefundQueryRefundV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutRefundNumber\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string? OutRefundNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutRefundNumber\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n        public string? RefundId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeRefundQueryRefundV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/refund/query_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeRefundQueryRefundV2Response : DouyinOpenResponse<AppsTradeRefundQueryRefundV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Refund\n                    {\n                        public static class Types\n                        {\n                            public class ItemOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int RefundAmount { get; set; }\n                            }\n\n                            public class MerchantAuditDetail\n                            {\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                                public string AuditStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款审核类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"need_refund_audit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"need_refund_audit\")]\n                                public int RefundAuditType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核的最后期限毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_audit_deadline\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_deadline\")]\n                                public long AuditDeadlineMilliseconds { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置不同意退款信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"deny_message\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"deny_message\")]\n                                public string? DenyMessage { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开发者退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n                        public string OutRefundNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                        public string RefundId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                        public int RefundTotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n                        public Types.ItemOrder[]? ItemOrderList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_source\")]\n                        public int? RefundSource { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家审核信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_audit_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_audit_detail\")]\n                        public Types.MerchantAuditDetail? MerchantAuditDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_at\")]\n                        public long? CreateTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                        public long? RefundTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退款列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_list\")]\n                public Types.Refund[] RefundList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeSettleCreateSettleV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/settle/create_settle 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeSettleCreateSettleV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class SettleParameter\n            {\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string MerchantId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                public int Amount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string OutSettleNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_desc\")]\n        public string SettleDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账参数列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_params\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_params\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<Types.SettleParameter>? SettleParameterList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n        public string? ItemOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeSettleCreateSettleV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/settle/create_settle 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeSettleCreateSettleV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置内部分账单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inner_settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inner_settle_id\")]\n                public string InnerSettleId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeSettleQuerySettleV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/settle/query_settle 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeSettleQuerySettleV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string? OutSettleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n        public string? SettleId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiAppsTrade/AppsTradeSettleQuerySettleV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/settle/query_settle 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeSettleQuerySettleV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n                public string OutSettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string? ItemOrderId { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账详情。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_detail\")]\n                public string SettleDetail { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置手续费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"rake\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"rake\")]\n                public int RakeFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置佣金金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission\")]\n                public int CommissionAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_time\")]\n                public long? SettleTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetOpenIdByBV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_openid_by_b/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinAuthGetOpenIdByBV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 B 端应用 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"b_client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"b_client_key\")]\n        public string BClientKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户在 B 端下的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string BOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 C 端应用 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"c_client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"c_client_key\")]\n        public string CClientKey { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetOpenIdByBV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_openid_by_b/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinAuthGetOpenIdByBV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置用户在 C 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string COpenId { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetOpenIdByCV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_openid_by_c/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinAuthGetOpenIdByCV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 B 端应用 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"b_client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"b_client_key\")]\n        public string BClientKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 C 端应用 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"c_client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"c_client_key\")]\n        public string CClientKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户在 C 端下的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string COpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetOpenIdByCV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_openid_by_c/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinAuthGetOpenIdByCV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置用户在 B 端下的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string BOpenId { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetRelatedIdV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_related_id/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinAuthGetRelatedIdV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinAuth/DouyinAuthGetRelatedIdV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/auth/get_related_id/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinAuthGetRelatedIdV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置用户在相同主体下的唯一标志。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"allied_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"allied_id\")]\n                public string AlliedId { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMDeleteAppletTemplateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/del_applet_template/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinIMDeleteAppletTemplateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CardTemplateId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMDeleteAppletTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/del_applet_template/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinIMDeleteAppletTemplateV1Response : DouyinOpenResponse<DouyinIMDeleteAppletTemplateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMGetAppletTemplateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/get_applet_template/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinIMGetAppletTemplateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_template_id\")]\n        public string? CardTemplateId { get; set; }\n\n        /// <summary>\n        /// 获取或设置卡片状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMGetAppletTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/get_applet_template/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinIMGetAppletTemplateV1Response : DouyinOpenResponse<DouyinIMGetAppletTemplateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Card\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"card_template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"card_template_id\")]\n                        public string CardTemplateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卡片类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n                        public int CardType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卡片标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卡片内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n                        public string MediaId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string MicroAppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string MicroAppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_icon_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_icon_url\")]\n                        public string MicroAppIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卡片状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reasons\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置卡片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Card[] CardList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMSetAppletTemplateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/set_applet_template/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinIMSetAppletTemplateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_template_id\")]\n        public string? CardTemplateId { get; set; }\n\n        /// <summary>\n        /// 获取或设置卡片类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int? CardType { get; set; }\n\n        /// <summary>\n        /// 获取或设置卡片标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置卡片内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string? Content { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n        public string? MediaId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? MicroAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinIM/DouyinIMSetAppletTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/im/set_applet_template/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinIMSetAppletTemplateV1Response : DouyinOpenResponse<DouyinIMSetAppletTemplateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_template_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_template_id\")]\n                public string CardTemplateId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinInteractive/DouyinInteractiveIntentionLogListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/interactive/intention/log/list/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinInteractiveIntentionLogListV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Event { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询会话信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? QuerySession { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询获取数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Count { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinInteractive/DouyinInteractiveIntentionLogListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/interactive/intention/log/list/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinInteractiveIntentionLogListV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class IntentionLogInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置事件名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                        public string Event { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户唯一标识。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置事件时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event_time\")]\n                        public long EventTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置事件内容 JSON 字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string EventContentJson { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置互动日志列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"intention_log_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"intention_log_infos\")]\n                public Types.IntentionLogInfo[] IntentionLogList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置查询会话信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query_session\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query_session\")]\n                public string QuerySession { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinRole/DouyinRoleCheckV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/role/check/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinRoleCheckV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置身份标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"role_labels\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"role_labels\")]\n        public IList<string> RoleLabelList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。与字段 <see cref=\"DouyinId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户抖音号。与字段 <see cref=\"OpenId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_shortId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_shortId\")]\n        public string? DouyinId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinRole/DouyinRoleCheckV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/role/check/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinRoleCheckV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否匹配。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"match_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"match_result\")]\n                public bool IsMatched { get; set; }\n\n                /// <summary>\n                /// 获取或设置查询角色字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"filter_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"filter_role\")]\n                public IDictionary<string, bool>? FilterRoleMap { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetChatV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_chat/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinSchemaGetChatV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。与字段 <see cref=\"OpenId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account\")]\n        public string? DouyinId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。与字段 <see cref=\"DouyinId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置短链过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_at\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_at\")]\n        public long ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetChatV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_chat/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinSchemaGetChatV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 Schema URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string SchemaUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetItemInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_item_info/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinSchemaGetItemInfoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置视频 ID。与字段 <see cref=\"VideoId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string? ItemId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。与字段 <see cref=\"ItemId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n        public string? VideoId { get; set; }\n\n        /// <summary>\n        /// 获取或设置短链过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_at\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_at\")]\n        public long? ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetItemInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_item_info/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinSchemaGetItemInfoV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 Schema URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string SchemaUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetLiveV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_live/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinSchemaGetLiveV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。与字段 <see cref=\"OpenId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account\")]\n        public string? DouyinId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。与字段 <see cref=\"DouyinId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置短链过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_at\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_at\")]\n        public long ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetLiveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_live/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinSchemaGetLiveV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 Schema URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string SchemaUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetShareV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_share/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinSchemaGetShareV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class MicroApp\n            {\n                /// <summary>\n                /// 获取或设置客户端凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置小程序标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_title\")]\n                public string Title { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置小程序页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_url\")]\n                public string PagePath { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置小程序描述语\t。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string? Description { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置客户端凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_ticket\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_ticket\")]\n        public string ClientTicket { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置凭证过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_at\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_at\")]\n        public long ExpireTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置话题列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hashtag_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hashtag_list\")]\n        public IList<string>? HashTagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_list_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_list_path\")]\n        public IList<string>? ImageUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_path\")]\n        public string? ImageUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_info\")]\n        public Types.MicroApp? MicroApp { get; set; }\n\n        /// <summary>\n        /// 获取或设置 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分享到抖音发布页状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"share_to_publish\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"share_to_publish\")]\n        public int? ShareToPublishState { get; set; }\n\n        /// <summary>\n        /// 获取或设置分享携带参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"state\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n        public string? State { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频标题\t。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string? VideoTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_path\")]\n        public string? VideoUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetShareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_share/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinSchemaGetShareV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 Schema URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string SchemaUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetUserProfileV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_user_profile/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinSchemaGetUserProfileV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。与字段 <see cref=\"OpenId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account\")]\n        public string? DouyinId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。与字段 <see cref=\"DouyinId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置短链过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_at\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_at\")]\n        public long ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinSchema/DouyinSchemaGetUserProfileV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/schema/get_user_profile/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinSchemaGetUserProfileV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 Schema URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string SchemaUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinUser/DouyinUserFansDataV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/user/fans_data/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinUserFansDataV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinUser/DouyinUserFansDataV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/user/fans_data/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinUserFansDataV1Response : DouyinOpenResponse<DouyinUserFansDataV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        public static class Types\n                        {\n                            public class ItemValue\n                            {\n                                /// <summary>\n                                /// 获取或设置分布的种类。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item\")]\n                                public string Item { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置分布的数值。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                public int Value { get; set; }\n                            }\n\n                            public class FlowDistribution\n                            {\n                                /// <summary>\n                                /// 获取或设置流量来源。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"flow\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"flow\")]\n                                public string Flow { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置流量总值。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"all_sum\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"all_sum\")]\n                                public int AllSum { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置粉丝贡献流量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fans_sum\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fans_sum\")]\n                                public int FansSum { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置粉丝活跃天数分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"active_days_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"active_days_distributions\")]\n                        public Types.ItemValue[] ActiveDaysDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝年龄分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"age_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"age_distributions\")]\n                        public Types.ItemValue[] AgeDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝性别分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gender_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gender_distributions\")]\n                        public Types.ItemValue[] GenderDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝设备分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"device_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"device_distributions\")]\n                        public Types.ItemValue[] DeviceDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝地域分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"geographical_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"geographical_distributions\")]\n                        public Types.ItemValue[] GeographicalDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝兴趣分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"interest_distributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"interest_distributions\")]\n                        public Types.ItemValue[] InterestDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝流量贡献分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"flow_contributions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"flow_contributions\")]\n                        public Types.FlowDistribution[] FlowDistributions { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝总数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"all_fans_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"all_fans_num\")]\n                        public int TotalFansCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fans_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fans_data\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoBasicInfoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/video_basic_info/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoBasicInfoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。与字段 <see cref=\"VideoIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_ids\")]\n        public IList<string>? ItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。与字段 <see cref=\"ItemIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string>? VideoIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoBasicInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/video_basic_info/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoBasicInfoV1Response : DouyinOpenResponse<DouyinVideoBasicInfoV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string ItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string? VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置媒体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                        public int? MediaType { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoCreateVideoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/create_video/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoCreateVideoV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class VRTranscodeParameter\n            {\n                public static class Types\n                {\n                    public class VideoStyle\n                    {\n                        /// <summary>\n                        /// 获取或设置维度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dimention\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dimention\")]\n                        public int Dimention { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投影模式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"projection_model\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"projection_model\")]\n                        public int ProjectionModel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视野范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"vstyle\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"vstyle\")]\n                        public int ViewSize { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频类型。\n                        /// <para>默认值：1</para>\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"view_size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"view_size\")]\n                        public int Style { get; set; } = 1;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频格式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_style\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_style\")]\n                public Types.VideoStyle? VideoStyle { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置中介 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_client_key\")]\n        public string? AgentClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        public string VideoId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n        public string? POIName { get; set; }\n\n        /// <summary>\n        /// 获取或设置开启门店推广。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_commerce\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_commerce\")]\n        public bool? POICommerce { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_id\")]\n        public string? MicroAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_title\")]\n        public string? MicroAppTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_url\")]\n        public string? MicroAppPagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置文章 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"article_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"article_id\")]\n        public string? ArticleId { get; set; }\n\n        /// <summary>\n        /// 获取或设置文章标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"article_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"article_title\")]\n        public string? ArticleTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置时效新闻标签。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"timeliness_label\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"timeliness_label\")]\n        public int? TimelineLabel { get; set; }\n\n        /// <summary>\n        /// 获取或设置时效新闻关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"timeliness_keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"timeliness_keyword\")]\n        public string? TimelineKeyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置游戏 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"game_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"game_id\")]\n        public string? GameId { get; set; }\n\n        /// <summary>\n        /// 获取或设置游戏个性化参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"game_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"game_content\")]\n        public string? GameContent { get; set; }\n\n        /// <summary>\n        /// 获取或设置将传入的指定时间点对应帧设置为视频封面（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cover_tsp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cover_tsp\")]\n        public decimal? CoverTSP { get; set; }\n\n        /// <summary>\n        /// 获取或设置封面图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"custom_cover_image_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"custom_cover_image_url\")]\n        public string? CoverImageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 @用户 的 OpenId 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"at_users\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"at_users\")]\n        public IList<string>? AtUserOpenIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_type\")]\n        public int? DownloadType { get; set; }\n\n        /// <summary>\n        /// 获取或设置可见范围控制状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"private_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"private_status\")]\n        public int? PrivateStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置影视 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ent_id\")]\n        public string? EntertainmentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string? TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置全景视频参数信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vr_transcode_extra_params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vr_transcode_extra_params\")]\n        public Types.VRTranscodeParameter? VRTranscodeParameter { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoCreateVideoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/create_video/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoCreateVideoV1Response : DouyinOpenResponse<DouyinVideoCreateVideoV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string VideoId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string ItemId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoDataV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/video_data/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoDataV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_ids\")]\n        public IList<string> ItemIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoDataV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/video_data/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoDataV1Response : DouyinOpenResponse<DouyinVideoDataV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        public static class Types\n                        {\n                            public class Statistics : DouyinVideoListV1Response.Types.Data.Types.Video.Types.Statistics\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string ItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频分享 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_top\")]\n                        public bool IsTop { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否审核结束。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_reviewed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_reviewed\")]\n                        public bool IsReviewed { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置媒体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                        public int? MediaType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文章 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statistics\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statistics\")]\n                        public Types.Statistics Statistics { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/video_list/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoListV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/video_list/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoListV1Response : DouyinOpenResponse<DouyinVideoListV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        public static class Types\n                        {\n                            public class Statistics\n                            {\n                                /// <summary>\n                                /// 获取或设置点赞数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                                public int DiggCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置下载数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"download_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"download_count\")]\n                                public int DownloadCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置转发数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"forward_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"forward_count\")]\n                                public int ForwardCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置播放数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"play_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"play_count\")]\n                                public int PlayCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分享数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                                public int ShareCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置评论数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                                public int CommentCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string? VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string ItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频分享 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_top\")]\n                        public bool IsTop { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否审核结束。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_reviewed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_reviewed\")]\n                        public bool IsReviewed { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置媒体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                        public int? MediaType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文章 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statistics\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statistics\")]\n                        public Types.Statistics Statistics { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoUploadVideoV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_video/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoUploadVideoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] VideoFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置视频文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VideoFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VideoContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/DouyinVideoUploadVideoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_video/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoUploadVideoV1Response : DouyinOpenResponse<DouyinVideoUploadVideoV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.Video Video { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByItemV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/get_iframe_by_item 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoGetIframeByItemV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByItemV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/get_iframe_by_item 接口的响应。</para>\n    /// </summary>1\n    public class DouyinVideoGetIframeByItemV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinVideoGetIframeByVideoV1Response.Types.Data\n            {\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByVideoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/get_iframe_by_video 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoGetIframeByVideoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string VideoId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByVideoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/douyin/v1/video/get_iframe_by_video 接口的响应。</para>\n    /// </summary>1\n    public class DouyinVideoGetIframeByVideoV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 iFrame 代码片段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"iframe_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"iframe_code\")]\n                public string IframeCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_title\")]\n                public string VideoTitle { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_width\")]\n                public int VideoWidth { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_height\")]\n                public int VideoHeight { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Image/DouyinVideoCreateImageTextV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/create_image_text/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoCreateImageTextV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_list\")]\n        public IList<string> ImageIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n        public string? POIName { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_id\")]\n        public string? MicroAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_title\")]\n        public string? MicroAppTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_url\")]\n        public string? MicroAppPagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置 @用户 的 OpenId 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"at_users\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"at_users\")]\n        public IList<string>? AtUserOpenIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Image/DouyinVideoCreateImageTextV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/create_image_text/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoCreateImageTextV1Response : DouyinOpenResponse<DouyinVideoCreateImageTextV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string VideoId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string ItemId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Image/DouyinVideoUploadImageV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_image/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoUploadImageV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Image/DouyinVideoUploadImageV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_image/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoUploadImageV1Response : DouyinOpenResponse<DouyinVideoUploadImageV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                        public string ImageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public Types.Image Video { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoCompleteVideoPartUploadV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/complete_video_part_upload/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoCompleteVideoPartUploadV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上传 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoCompleteVideoPartUploadV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/complete_video_part_upload/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoCompleteVideoPartUploadV1Response : DouyinVideoUploadVideoV1Response\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoInitVideoPartUploadV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/init_video_part_upload/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoInitVideoPartUploadV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoInitVideoPartUploadV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/init_video_part_upload/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoInitVideoPartUploadV1Response : DouyinOpenResponse<DouyinVideoInitVideoPartUploadV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置上传 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"upload_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"upload_id\")]\n                public string UploadId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoUploadVideoPartV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_video_part/ 接口的请求。</para>\n    /// </summary>\n    public class DouyinVideoUploadVideoPartV1Request : DouyinVideoUploadVideoV1Request\n    {\n        /// <summary>\n        /// 获取或设置上传 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分片编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PartNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiDouyinVideo/Part/DouyinVideoUploadVideoPartV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/douyin/v1/video/upload_video_part/ 接口的响应。</para>\n    /// </summary>\n    public class DouyinVideoUploadVideoPartV1Response : DouyinOpenResponse<DouyinVideoUploadVideoPartV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.Video Video { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIM/IMMessageResourcesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/im/message/resources/ 接口的请求。</para>\n    /// </summary>\n    public class IMMessageResourcesRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ConversationId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string MessageId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIM/IMMessageResourcesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/im/message/resources/ 接口的响应。</para>\n    /// </summary>\n    public class IMMessageResourcesResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                public string MediaType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置资源访问链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionAddAppTestRelationV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/add_app_test_relation 接口的请求。</para>\n    /// </summary>\n    public class IndustrySolutionAddAppTestRelationV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置请求操作人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operator\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operator\")]\n        public string Operator { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置测试物料类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物料 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ref_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ref_id_list\")]\n        public IList<string> ReferenceIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionAddAppTestRelationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/add_app_test_relation 接口的响应。</para>\n    /// </summary>\n    public class IndustrySolutionAddAppTestRelationV1Response : DouyinOpenResponse<IndustrySolutionAddAppTestRelationV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse : IndustrySolutionQueryAppTestRelationV1Response.Types.BaseResponse\n            {\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionDeleteAppTestRelationV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/delete_app_test_relation 接口的请求。</para>\n    /// </summary>\n    public class IndustrySolutionDeleteAppTestRelationV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置请求操作人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operator\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operator\")]\n        public string Operator { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置测试物料类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物料 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ref_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ref_id_list\")]\n        public IList<string> ReferenceIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionDeleteAppTestRelationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/delete_app_test_relation 接口的响应。</para>\n    /// </summary>\n    public class IndustrySolutionDeleteAppTestRelationV1Response : DouyinOpenResponse<IndustrySolutionDeleteAppTestRelationV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse : IndustrySolutionQueryAppTestRelationV1Response.Types.BaseResponse\n            {\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionQueryAppTestRelationV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/query_app_test_relation 接口的请求。</para>\n    /// </summary>\n    public class IndustrySolutionQueryAppTestRelationV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置测试物料类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/AppTestRelation/IndustrySolutionQueryAppTestRelationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/query_app_test_relation 接口的响应。</para>\n    /// </summary>\n    public class IndustrySolutionQueryAppTestRelationV1Response : DouyinOpenResponse<IndustrySolutionQueryAppTestRelationV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse\n            {\n                /// <summary>\n                /// 获取或设置业务状态码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"StatusCode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"StatusCode\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int StatusCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务状态描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"StatusMessage\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"StatusMessage\")]\n                public string? StatusMessage { get; set; }\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置物料 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ref_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ref_id_list\")]\n        public string[] ReferenceIdList { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/Implementation/IndustrySolutionQueryImplementationV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/query_impl 接口的请求。</para>\n    /// </summary>\n    public class IndustrySolutionQueryImplementationV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置解决方案 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"solution_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"solution_id_list\")]\n        public IList<string> SolutionIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/Implementation/IndustrySolutionQueryImplementationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/query_impl 接口的响应。</para>\n    /// </summary>\n    public class IndustrySolutionQueryImplementationV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class IndustryImplementation\n            {\n                public static class Types\n                {\n                    public class AbilityImplementation\n                    {\n                        /// <summary>\n                        /// 获取或设置行业编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                        public string? IndustryCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开放能力 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ability_identity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ability_identity\")]\n                        public string AbilityId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置实现名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string ImplementationName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置测试地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"test_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"test_url\")]\n                        public string? TestUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置生产地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prod_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prod_url\")]\n                        public string? ProductionUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置解决方案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"solution_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"solution_id\")]\n                public string SolutionId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扩展点能力实现列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extension_ability_impl_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extension_ability_impl_list\")]\n                public Types.AbilityImplementation[]? ExtensionAbilityImplementationList { get; set; }\n                \n                /// <summary>\n                /// 获取或设置消息配置实现列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message_ability_impl_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message_ability_impl_list\")]\n                public Types.AbilityImplementation[]? MessageAbilityImplementationList { get; set; }\n            }\n\n            public class AppConfigItem\n            {\n                /// <summary>\n                /// 获取或设置键。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identity\")]\n                public string Key { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public string Value { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置各行业实现列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"solution_eff_ability_impl_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"solution_eff_ability_impl_list\")]\n        public Types.IndustryImplementation[] IndustryImplementationList { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置小程序配置项列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_config_item_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_config_item_list\")]\n        public Types.AppConfigItem[] AppConfigItemList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/Implementation/IndustrySolutionSetImplementationV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/set_impl 接口的请求。</para>\n    /// </summary>\n    public class IndustrySolutionSetImplementationV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class IndustryImplementation\n            {\n                public static class Types\n                {\n                    public class AbilityImplementation\n                    {\n                        /// <summary>\n                        /// 获取或设置开放能力 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ability_identity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ability_identity\")]\n                        public string AbilityId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置开放能力类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ability_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ability_type\")]\n                        public int AbilityType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否删除当前生效的实现地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_delete\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_delete\")]\n                        public bool IsDelete { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实现名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"impl_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"impl_name\")]\n                        public string ImplementationName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置测试地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"test_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"test_url\")]\n                        public string? TestUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置生产地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prod_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prod_url\")]\n                        public string? ProductionUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置解决方案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"solution_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"solution_id\")]\n                public string SolutionId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置开放能力实现列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_ability_impl_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_ability_impl_list\")]\n                public IList<Types.AbilityImplementation> OpenAbilityImplementationList { get; set; } = new List<Types.AbilityImplementation>();\n            }\n\n            public class AppConfigItem\n            {\n                /// <summary>\n                /// 获取或设置键。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identity\")]\n                public string Key { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public string Value { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置操作人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operator\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operator\")]\n        public string Operator { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发布原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"release_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"release_reason\")]\n        public string ReleaseReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置各行业实现列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_impl_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_impl_list\")]\n        public IList<Types.IndustryImplementation> IndustryImplementationList { get; set; } = new List<Types.IndustryImplementation>();\n\n        /// <summary>\n        /// 获取或设置小程序配置项列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_config_item_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_config_item_list\")]\n        public IList<Types.AppConfigItem> AppConfigItemList { get; set; } = new List<Types.AppConfigItem>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiIndustry/Implementation/IndustrySolutionSetImplementationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/industry/v1/solution/set_impl 接口的响应。</para>\n    /// </summary>\n    public class IndustrySolutionSetImplementationV1Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxAgencyQueryBillLinkV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/agency_query_bill_link/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxAgencyQueryBillLinkV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置计费日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_date\")]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxAgencyQueryBillLinkV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/agency_query_bill_link/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxAgencyQueryBillLinkV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置账单文件下载链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bill_link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bill_link\")]\n                public string BillLink { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxAgencyQueryVideoSummaryDataV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/agency_query_video_sum_data/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxAgencyQueryVideoSummaryDataV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<long> VideoIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxAgencyQueryVideoSummaryDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/agency_query_video_sum_data/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxAgencyQueryVideoSummaryDataV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long VideoId { get; set; }\n\n                /// <summary>\n                /// 获取或设置团长 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public long? AgentId { get; set; }\n\n                /// <summary>\n                /// 获取或设置发布时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_time\")]\n                public long PublishTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务关联的交易金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"billing_gmv_td\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"billing_gmv_td\")]\n                public long BillingGMV { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务关联的交易金额累计退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biling_refund_gmv_td\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biling_refund_gmv_td\")]\n                public long BillingRefundGMV { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxChangeUserBindAgentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/change_user_bind_agent/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxChangeUserBindAgentV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置原团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"old_agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"old_agent_id\")]\n        public long OldAgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置新团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_agent_id\")]\n        public long NewAgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n        public string DouyinId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxChangeUserBindAgentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/change_user_bind_agent/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxChangeUserBindAgentV1Response : DouyinOpenResponse\n    {\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxGenerateAgentLinkV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/gen_agent_link/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxGenerateAgentLinkV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构侧达人 UID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agency_talent_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agency_talent_uid\")]\n        public string? AgencyTalentUID { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long? TaskId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxGenerateAgentLinkV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/gen_agent_link/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxGenerateAgentLinkV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_link\")]\n                public string MicroAppPagePath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 Web 跳转链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"web_link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"web_link\")]\n                public string WebLink { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxGetAgencyUserBindRecordV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/get_agency_user_bind_record/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxGetAgencyUserBindRecordV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long? AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n        public string? DouyinId { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构侧达人 UID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agency_talent_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agency_talent_uid\")]\n        public string? AgencyTalentUID { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxGetAgencyUserBindRecordV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/get_agency_user_bind_record/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxGetAgencyUserBindRecordV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置团长 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n                        public long AgentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                        public string DouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置机构侧达人 UID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"agency_talent_uid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"agency_talent_uid\")]\n                        public string? AgencyTalentUID { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置绑定时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bind_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bind_time\")]\n                        public long BindTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置解绑时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unbind_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unbind_time\")]\n                        public long UnbindTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryAppTaskIdV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/query_app_task_id/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxQueryAppTaskIdV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务创建起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_start_time\")]\n        public long StartCreateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务创建终止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_end_time\")]\n        public long EndCreateTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryAppTaskIdV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/query_app_task_id/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxQueryAppTaskIdV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_ids\")]\n                public long[] TaskIdList { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryTaskInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/query_task_info/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxQueryTaskInfoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置查询参数类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_params_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_params_type\")]\n        public int QueryParameterType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询参数内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_params_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_params_content\")]\n        public string QueryParameterContent { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryTaskInfoV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/query_task_info/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxQueryTaskInfoV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Task\n                    {\n                        public static class Types\n                        {\n                            public class OrientedTalent\n                            {\n                                /// <summary>\n                                /// 获取或设置达人抖音号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                                public string DouyinId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置合作状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cooperation_state\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_state\")]\n                                public int CooperationState { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置取消方类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cancel_operator\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_operator\")]\n                                public int? CancelOperatorType { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务所属小程序。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n                        public string TaskName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n                        public int TaskSettleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置页面类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_type\")]\n                        public int? PageType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序页面地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n                        public string? PagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置锚点标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n                        public string? AnchorTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n                        public string TaskIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n                        public long TaskStartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n                        public long TaskEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n                        public string TaskDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_type\")]\n                        public int TaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int TaskStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置示例视频 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n                        public string[]? ReferVideoUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n                        public string[] TaskTagList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n                        public string[]? ReferMicroAppCaptureUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置示例视频截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_video_captures\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_video_captures\")]\n                        public string[]? ReferVideoCaptureUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频的 GID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n                        public long[]? ReferGIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置专属达人列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"oriented_talent_rel_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"oriented_talent_rel_list\")]\n                        public Types.OrientedTalent[]? OrientedTalentList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务最大退款周期（单位：天）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_refund_period\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_refund_period\")]\n                        public int? TaskRefundPeriod { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置混合分成比例字典（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mix_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mix_payment_allocate_ratio\")]\n                        public IDictionary<int, int>? MixPaymentAllocateRatioMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分成比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_allocate_ratio\")]\n                        public int? PaymentAllocateRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人混合分成比例字典（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_mix_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_mix_payment_allocate_ratio\")]\n                        public IDictionary<int, int>? TalentMixPaymentAllocateRatioMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人分成比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_payment_allocate_ratio\")]\n                        public int? TalentPaymentAllocateRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台小程序版地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_address_app\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_address_app\")]\n                        public string? PlatformMicroAppPagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台 Web 版地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_address_web\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_address_web\")]\n                        public string? PlatformWebUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_count\")]\n                public int PageCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置推广计划小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryTaskVideoStatusV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_task_video_status/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxQueryTaskVideoStatusV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置视频发布起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_publish_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_publish_start_time\")]\n        public long StartVideoPublishTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频发布终止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_publish_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_publish_end_time\")]\n        public long EndVideoPublishTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long? AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n        public string? DouyinId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryTaskVideoStatusV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_task_video_status/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxQueryTaskVideoStatusV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                        public int VideoStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置短视频锚点解绑原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unbind_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unbind_reason\")]\n                        public string? UnbindReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryViolateTalentListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_violate_talent_list/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxQueryViolateTalentListV2Request : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxQueryViolateTalentListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_violate_talent_list/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxQueryViolateTalentListV2Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置违规达人 Excel 下载链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"violate_talents_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"violate_talents_url\")]\n                public string ViolateTalentsUrl { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxSaveAgentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/save_agent/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskboxSaveAgentV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置团长 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long? AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置团长昵称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_nickname\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_nickname\")]\n        public string AgentNickname { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ApiMatch/MatchTaskboxSaveAgentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v1/taskbox/save_agent/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskboxSaveAgentV1Response : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置团长 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long AgentId { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Anchor/DataExternalAnchorMpItemClickDistributionRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/anchor/mp_item_click_distribution 接口的请求。</para>\n    /// </summary>\n    public class DataExternalAnchorMpItemClickDistributionRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string MiniAppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Anchor/DataExternalAnchorMpItemClickDistributionResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/anchor/mp_item_click_distribution 接口的响应。</para>\n    /// </summary>\n    public class DataExternalAnchorMpItemClickDistributionResponse : DouyinOpenResponse<DataExternalAnchorMpItemClickDistributionResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序点击量视频分布字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_item_click_json\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_item_click_json\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n                        public IDictionary<string, int> ItemClickDistributionMap { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Amusement/DataExternalBillboardAmusementNewRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/amusement/new 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardAmusementNewRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Amusement/DataExternalBillboardAmusementNewResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/amusement/new 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardAmusementNewResponse : DouyinOpenResponse<DataExternalBillboardAmusementNewResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Amusement/DataExternalBillboardAmusementOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/amusement/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardAmusementOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Amusement/DataExternalBillboardAmusementOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/amusement/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardAmusementOverallResponse : DouyinOpenResponse<DataExternalBillboardAmusementOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarCommentRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/comment 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCarCommentRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarCommentResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/comment 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCarCommentResponse : DouyinOpenResponse<DataExternalBillboardCarCommentResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarDriverRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/driver 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCarDriverRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarDriverResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/driver 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCarDriverResponse : DouyinOpenResponse<DataExternalBillboardCarDriverResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCarOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCarOverallResponse : DouyinOpenResponse<DataExternalBillboardCarOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarPlayRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/play 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCarPlayRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarPlayResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/play 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCarPlayResponse : DouyinOpenResponse<DataExternalBillboardCarPlayResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarUseRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/use 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCarUseRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Car/DataExternalBillboardCarUseResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/car/use 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCarUseResponse : DouyinOpenResponse<DataExternalBillboardCarUseResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaBrainCavityRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/brain_cavity 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaBrainCavityRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaBrainCavityResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/brain_cavity 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaBrainCavityResponse : DouyinOpenResponse<DataExternalBillboardCospaBrainCavityResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaNewRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/new 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaNewRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaNewResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/new 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaNewResponse : DouyinOpenResponse<DataExternalBillboardCospaNewResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaOutshotRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/out_shot 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaOutshotRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaOutshotResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/out_shot 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaOutshotResponse : DouyinOpenResponse<DataExternalBillboardCospaOutshotResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaOverallResponse : DouyinOpenResponse<DataExternalBillboardCospaOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaPaintingRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/painting 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaPaintingRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaPaintingResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/painting 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaPaintingResponse : DouyinOpenResponse<DataExternalBillboardCospaPaintingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaQingmanRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/qing_man 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaQingmanRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaQingmanResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/qing_man 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaQingmanResponse : DouyinOpenResponse<DataExternalBillboardCospaQingmanResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaVoiceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/voice_control 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaVoiceRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Cospa/DataExternalBillboardCospaVoiceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/cospa/voice_control 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardCospaVoiceResponse : DouyinOpenResponse<DataExternalBillboardCospaVoiceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Drama/DataExternalBillboardDramaOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/drama/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardDramaOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Drama/DataExternalBillboardDramaOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/drama/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardDramaOverallResponse : DouyinOpenResponse<DataExternalBillboardDramaOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodNewRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/new 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodNewRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodNewResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/new 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodNewResponse : DouyinOpenResponse<DataExternalBillboardFoodNewResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodOverallResponse : DouyinOpenResponse<DataExternalBillboardFoodOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodShopRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/shop 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodShopRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodShopResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/shop 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodShopResponse : DouyinOpenResponse<DataExternalBillboardFoodShopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodTutorialRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/tutorial 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodTutorialRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Food/DataExternalBillboardFoodTutorialResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/food/tutorial 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardFoodTutorialResponse : DouyinOpenResponse<DataExternalBillboardFoodTutorialResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Game/DataExternalBillboardGameConsoleRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/game/console 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardGameConsoleRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Game/DataExternalBillboardGameConsoleResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/game/console 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardGameConsoleResponse : DouyinOpenResponse<DataExternalBillboardGameConsoleResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Game/DataExternalBillboardGameInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/game/inf 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardGameInformationRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Game/DataExternalBillboardGameInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/game/inf 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardGameInformationResponse : DouyinOpenResponse<DataExternalBillboardGameInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/HotVideo/DataExternalBillboardHotVideoRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/hot_video 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardHotVideoRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/HotVideo/DataExternalBillboardHotVideoResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/hot_video 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardHotVideoResponse : DouyinOpenResponse<DataExternalBillboardHotVideoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频发布者。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author\")]\n                        public string Author { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频分享 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"play_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"play_count\")]\n                        public int PlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                        public int DiggCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                        public int CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热词。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_words\")]\n                        public string HotWords { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置热度指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_value\")]\n                        public decimal HotValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置热门视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Live/DataExternalBillboardLiveRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/live 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardLiveRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Live/DataExternalBillboardLiveResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/live 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardLiveResponse : DouyinOpenResponse<DataExternalBillboardLiveResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置直播标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热度指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_value\")]\n                        public decimal HotValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicHotRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/hot 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicHotRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicHotResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/hot 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicHotResponse : DouyinOpenResponse<DataExternalBillboardMusicHotResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置歌曲作者。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author\")]\n                        public string Author { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置歌曲标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                        public int Duration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置音乐分享链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置使用量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"use_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"use_count\")]\n                        public int UseCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicOriginalRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/original 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicOriginalRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicOriginalResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/original 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicOriginalResponse : DouyinOpenResponse<DataExternalBillboardMusicOriginalResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardMusicHotResponse.Types.Data\n            {\n\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicSoarRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/soar 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicSoarRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Music/DataExternalBillboardMusicSoarResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/music/soar 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardMusicSoarResponse : DouyinOpenResponse<DataExternalBillboardMusicSoarResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardMusicHotResponse.Types.Data\n            {\n\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Prop/DataExternalBillboardPropRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/prop 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardPropRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Prop/DataExternalBillboardPropResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/prop 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardPropResponse : DouyinOpenResponse<DataExternalBillboardPropResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置道具名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排名变化。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank_change\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank_change\")]\n                        public string? RankChange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置展现量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"show_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"show_cnt\")]\n                        public int ShowCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开拍量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shoot_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shoot_cnt\")]\n                        public int ShootCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置日投稿量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"daily_issue_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"daily_issue_cnt\")]\n                        public int DailyIssueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置日投稿占比字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"daily_issue_percent\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"daily_issue_percent\")]\n                        public string DailyIssuePercantString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置日收藏数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"daily_collection_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"daily_collection_cnt\")]\n                        public int DailyCollectCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置日播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"daily_play_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"daily_play_cnt\")]\n                        public int DailyPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置影响力指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_value\")]\n                        public decimal EffectValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportBasketballRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/basketball 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportBasketballRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportBasketballResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/basketball 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportBasketballResponse : DouyinOpenResponse<DataExternalBillboardSportBasketballResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportComprehensiveRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/comprehensive 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportComprehensiveRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportComprehensiveResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/comprehensive 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportComprehensiveResponse : DouyinOpenResponse<DataExternalBillboardSportComprehensiveResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportCultureRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/culture 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportCultureRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportCultureResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/culture 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportCultureResponse : DouyinOpenResponse<DataExternalBillboardSportCultureResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportFitnessRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/fitness 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportFitnessRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportFitnessResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/fitness 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportFitnessResponse : DouyinOpenResponse<DataExternalBillboardSportFitnessResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportOutdoorsRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/outdoors 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportOutdoorsRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportOutdoorsResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/outdoors 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportOutdoorsResponse : DouyinOpenResponse<DataExternalBillboardSportOutdoorsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportOverallResponse : DouyinOpenResponse<DataExternalBillboardSportOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        public static class Types\n                        {\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Title { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频封面 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_cover\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_cover\")]\n                                public string CoverUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频播放链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                                public string ShareUrl { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排名变化。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank_change\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank_change\")]\n                        public string? RankChange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"follower_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"follower_count\")]\n                        public int FollowerCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置近一月在榜次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"onbillbaord_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"onbillbaord_times\")]\n                        public int OnbillbaordTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置影响力指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_value\")]\n                        public decimal EffectValue { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热度指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_value\")]\n                        public decimal HotValue { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_list\")]\n                        public Types.Video[] VideoList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportSoccerRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/soccer 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportSoccerRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportSoccerResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/soccer 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportSoccerResponse : DouyinOpenResponse<DataExternalBillboardSportSoccerResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportTableTennisRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/table_tennis 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardSportTableTennisRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Sport/DataExternalBillboardSportTableTennisResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/sport/table_tennis 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardSportTableTennisResponse : DouyinOpenResponse<DataExternalBillboardSportTableTennisResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Stars/DataExternalBillboardStarsRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/stars 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardStarsRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Stars/DataExternalBillboardStarsResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/stars 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardStarsResponse : DouyinOpenResponse<DataExternalBillboardStarsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置影响力指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_value\")]\n                        public decimal EffectValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Topic/DataExternalBillboardTopicRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/topic 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardTopicRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Topic/DataExternalBillboardTopicResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/topic 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardTopicResponse : DouyinOpenResponse<DataExternalBillboardTopicResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置话题标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排名变化。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank_change\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank_change\")]\n                        public string? RankChange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置影响力指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_value\")]\n                        public decimal EffectValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Travel/DataExternalBillboardTravelNewRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/travel/new 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardTravelNewRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Travel/DataExternalBillboardTravelNewResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/travel/new 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardTravelNewResponse : DouyinOpenResponse<DataExternalBillboardTravelNewResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Travel/DataExternalBillboardTravelOverallRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/travel/overall 接口的请求。</para>\n    /// </summary>\n    public class DataExternalBillboardTravelOverallRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Billboard/Travel/DataExternalBillboardTravelOverallResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/billboard/travel/overall 接口的响应。</para>\n    /// </summary>\n    public class DataExternalBillboardTravelOverallResponse : DouyinOpenResponse<DataExternalBillboardTravelOverallResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalBillboardSportOverallResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansCommentRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/comment 接口的请求。</para>\n    /// </summary>\n    public class DataExternalFansCommentRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansCommentResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/comment 接口的响应。</para>\n    /// </summary>\n    public class DataExternalFansCommentResponse : DouyinOpenResponse<DataExternalFansCommentResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置评论热词。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n                        public string Keyword { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置热度指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_value\")]\n                        public decimal HotValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansFavouriteRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/favourite 接口的请求。</para>\n    /// </summary>\n    public class DataExternalFansFavouriteRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansFavouriteResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/favourite 接口的响应。</para>\n    /// </summary>\n    public class DataExternalFansFavouriteResponse : DouyinOpenResponse<DataExternalFansFavouriteResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关键词。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n                        public string Keyword { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置热度指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_value\")]\n                        public decimal HotValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansSourceRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/source 接口的请求。</para>\n    /// </summary>\n    public class DataExternalFansSourceRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Fans/DataExternalFansSourceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/extern/fans/source 接口的响应。</para>\n    /// </summary>\n    public class DataExternalFansSourceResponse : DouyinOpenResponse<DataExternalFansSourceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                        public string Source { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置占比字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"percent\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"percent\")]\n                        public string PercentString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemBaseRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/base 接口的请求。</para>\n    /// </summary>\n    public class DataExternalItemBaseRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemBaseResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/base 接口的响应。</para>\n    /// </summary>\n    public class DataExternalItemBaseResponse : DouyinOpenResponse<DataExternalItemBaseResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置最近 30 天评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_comment\")]\n                        public int TotalCommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近 30 天点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_like\")]\n                        public int TotalLikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近 30 天播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_play\")]\n                        public int TotalPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近 30 天分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_share\")]\n                        public int TotalShareCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近 30 天平均播放时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avg_play_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avg_play_duration\")]\n                        public decimal AveragePlayDuration { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemCommentRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/comment 接口的请求。</para>\n    /// </summary>\n    public class DataExternalItemCommentRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemCommentResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/comment 接口的响应。</para>\n    /// </summary>\n    public class DataExternalItemCommentResponse : DouyinOpenResponse<DataExternalItemCommentResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n                        public int NewCommentCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemLikeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/like 接口的请求。</para>\n    /// </summary>\n    public class DataExternalItemLikeRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemLikeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/like 接口的响应。</para>\n    /// </summary>\n    public class DataExternalItemLikeResponse : DouyinOpenResponse<DataExternalItemLikeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like\")]\n                        public int NewLikeCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemPlayRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/play 接口的请求。</para>\n    /// </summary>\n    public class DataExternalItemPlayRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemPlayResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/play 接口的响应。</para>\n    /// </summary>\n    public class DataExternalItemPlayResponse : DouyinOpenResponse<DataExternalItemPlayResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"play\")]\n                        public int NewPlayCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemShareRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/share 接口的请求。</para>\n    /// </summary>\n    public class DataExternalItemShareRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/Item/DataExternalItemShareResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/item/share 接口的响应。</para>\n    /// </summary>\n    public class DataExternalItemShareResponse : DouyinOpenResponse<DataExternalItemShareResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share\")]\n                        public int NewShareCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIBaseRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/base 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIBaseRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string POIId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开始日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string BeginDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结束日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string EndDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIBaseResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/base 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIBaseResponse : DouyinOpenResponse<DataExternalPOIBaseResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详情页 UV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail_vv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail_vv\")]\n                        public int DetailUV { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIBillboardRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/billboard 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIBillboardRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置热度榜类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int BillboardType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIBillboardResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/billboard 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIBillboardResponse : DouyinOpenResponse<DataExternalPOIBillboardResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                        public string POIName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置得分。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"score\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"score\")]\n                        public string? Score { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIClaimListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/claim/list 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIClaimListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIClaimListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/claim/list 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIClaimListResponse : DouyinOpenResponse<DataExternalPOIClaimListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string POIName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIServiceBaseRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/service_base 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIServiceBaseRequest : DataExternalPOIBaseRequest\n    {\n        /// <summary>\n        /// 获取或设置服务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? ServiceType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIServiceBaseResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/service_base 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIServiceBaseResponse : DouyinOpenResponse<DataExternalPOIServiceBaseResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置曝光 UV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exposure_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exposure_uv\")]\n                        public int ExposureUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点击 UV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"click_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"click_uv\")]\n                        public int ClickUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单成交量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success_order_cnt\")]\n                        public int SuccessOrderCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIServiceUserRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/service_user 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIServiceUserRequest : DataExternalPOIUserRequest\n    {\n        /// <summary>\n        /// 获取或设置服务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? ServiceType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIServiceUserResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/service_user 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIServiceUserResponse : DouyinOpenResponse<DataExternalPOIServiceUserResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DataExternalPOIUserResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIUserRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/user 接口的请求。</para>\n    /// </summary>\n    public class DataExternalPOIUserRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string POIId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/POI/DataExternalPOIUserResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/poi/user 接口的响应。</para>\n    /// </summary>\n    public class DataExternalPOIUserResponse : DouyinOpenResponse<DataExternalPOIUserResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class KeyValue\n                    {\n                        /// <summary>\n                        /// 获取或设置键。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                        public string Key { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public string Value { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置城市数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_list\")]\n                public Types.KeyValue[] CityList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置性别数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gender_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gender_list\")]\n                public Types.KeyValue[] GenderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置年龄数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"age_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"age_list\")]\n                public Types.KeyValue[] AgeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserCommentRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/comment 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserCommentRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserCommentResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/comment 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserCommentResponse : DouyinOpenResponse<DataExternalUserCommentResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_comment\")]\n                        public int NewCommentCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserFansRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/fans 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserFansRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserFansResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/fans 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserFansResponse : DouyinOpenResponse<DataExternalUserFansResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_fans\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_fans\")]\n                        public int NewFansCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当天粉丝总数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_fans\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_fans\")]\n                        public int TotalFansCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserItemRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/item 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserItemRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserItemResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/item 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserItemResponse : DouyinOpenResponse<DataExternalUserItemResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天发布内容数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_issue\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_issue\")]\n                        public int NewIssueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当天内容总数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_issue\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_issue\")]\n                        public int TotalIssueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当天新增视频播放。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_play\")]\n                        public int NewPlayCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserLikeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/like 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserLikeRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserLikeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/like 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserLikeResponse : DouyinOpenResponse<DataExternalUserLikeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_like\")]\n                        public int NewLikeCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserProfileRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/profile 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserProfileRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserProfileResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/profile 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserProfileResponse : DouyinOpenResponse<DataExternalUserProfileResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天个人主页 UV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"profile_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"profile_uv\")]\n                        public int ProfileUV { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserShareRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/share 接口的请求。</para>\n    /// </summary>\n    public class DataExternalUserShareRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DataExternal/User/DataExternalUserShareResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /data/external/user/share 接口的响应。</para>\n    /// </summary>\n    public class DataExternalUserShareResponse : DouyinOpenResponse<DataExternalUserShareResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置当天新分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_share\")]\n                        public int NewShareCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DevTool/DevToolMicroAppIsLegalRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /devtool/micapp/is_legal/ 接口的请求。</para>\n    /// </summary>\n    public class DevToolMicroAppIsLegalRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string MicroAppId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/DevTool/DevToolMicroAppIsLegalResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /devtool/micapp/is_legal/ 接口的响应。</para>\n    /// </summary>\n    public class DevToolMicroAppIsLegalResponse : DouyinOpenResponse<DevToolMicroAppIsLegalResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置是否是合法信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_legal\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_legal\")]\n                public bool IsLegal { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Discovery/DiscoveryEntertainmentRankItemRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /discovery/ent/rank/item/ 接口的请求。</para>\n    /// </summary>\n    public class DiscoveryEntertainmentRankItemRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置榜单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置榜单版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Version { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Discovery/DiscoveryEntertainmentRankItemResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /discovery/ent/rank/item/ 接口的响应。</para>\n    /// </summary>\n    public class DiscoveryEntertainmentRankItemResponse : DouyinOpenResponse<DiscoveryEntertainmentRankItemResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Album\n                    {\n                        /// <summary>\n                        /// 获取或设置猫眼 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"maoyan_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"maoyan_id\")]\n                        public string? MaoyanId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置片名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置英文片名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name_en\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name_en\")]\n                        public string? EnglishName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上映日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"release_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"release_date\")]\n                        public string? ReleaseDateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置导演列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"directors\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"directors\")]\n                        public string[]? DirectorList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置演员列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actors\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actors\")]\n                        public string[]? ActorList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tags\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                        public string[]? TagList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地区列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"areas\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"areas\")]\n                        public string[]? AreaList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置海报 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poster\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poster\")]\n                        public string? PosterUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置讨论度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discussion_hot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discussion_hot\")]\n                        public int DiscussionHot { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置搜索指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"search_hot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"search_hot\")]\n                        public int SearchHot { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置影响力指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"influence_hot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"influence_hot\")]\n                        public int InfluenceHot { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置话题指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"topic_hot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"topic_hot\")]\n                        public int TopicHot { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热度值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot\")]\n                        public decimal HotValue { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置刷新时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"active_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"active_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset ActiveTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置榜单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Album[] AlbumList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Discovery/DiscoveryEntertainmentRankVersionRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /discovery/ent/rank/version/ 接口的请求。</para>\n    /// </summary>\n    public class DiscoveryEntertainmentRankVersionRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置榜单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Discovery/DiscoveryEntertainmentRankVersionResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /discovery/ent/rank/version/ 接口的响应。</para>\n    /// </summary>\n    public class DiscoveryEntertainmentRankVersionResponse : DouyinOpenResponse<DiscoveryEntertainmentRankVersionResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class AlbumVersion\n                    {\n                        /// <summary>\n                        /// 获取或设置榜单类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置榜单版本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n                        public int Version { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置榜单生成时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"active_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"active_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset ActiveTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置榜单开始时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset StartTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置榜单结束时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset EndTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置榜单版本列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.AlbumVersion[] VersionList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaDeleteRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/delete 接口的请求。</para>\n    /// </summary>\n    public class EnterpriseMediaDeleteRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置素材 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n        public string MediaId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaDeleteResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/delete 接口的响应。</para>\n    /// </summary>\n    public class EnterpriseMediaDeleteResponse : DouyinOpenResponse<EnterpriseMediaDeleteResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /enterprise/media/list 接口的请求。</para>\n    /// </summary>\n    public class EnterpriseMediaListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /enterprise/media/list 接口的响应。</para>\n    /// </summary>\n    public class EnterpriseMediaListResponse : DouyinOpenResponse<EnterpriseMediaListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Media\n                    {\n                        /// <summary>\n                        /// 获取或设置素材 ID\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n                        public string MediaId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材的 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url_list\")]\n                        public string[] UrlList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"medias\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"medias\")]\n                public Types.Media[] MediaList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaTempUploadRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/temp/upload 接口的请求。</para>\n    /// </summary>\n    public class EnterpriseMediaTempUploadRequest : EnterpriseMediaUploadRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaTempUploadResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/temp/upload 接口的响应。</para>\n    /// </summary>\n    public class EnterpriseMediaTempUploadResponse : DouyinOpenResponse<EnterpriseMediaTempUploadResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : EnterpriseMediaUploadResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaUploadRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/upload 接口的请求。</para>\n    /// </summary>\n    public class EnterpriseMediaUploadRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置素材文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MediaFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置素材文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MediaFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MediaContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Enterprise/Media/EnterpriseMediaUploadResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enterprise/media/upload 接口的响应。</para>\n    /// </summary>\n    public class EnterpriseMediaUploadResponse : DouyinOpenResponse<EnterpriseMediaUploadResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Media\n                    {\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n                        public string MediaId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材的 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url_list\")]\n                        public string[] UrlList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"media\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"media\")]\n                public Types.Media Media { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Event/EventStatusListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /event/status/list 接口的请求。</para>\n    /// </summary>\n    public class EventStatusListRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Event/EventStatusListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /event/status/list 接口的响应。</para>\n    /// </summary>\n    public class EventStatusListResponse : DouyinOpenResponse<EventStatusListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置事件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                        public string Event { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置事件订阅状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置事件订阅状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Event/EventStatusUpdateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /event/status/update 接口的请求。</para>\n    /// </summary>\n    public class EventStatusUpdateRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Item\n            {\n                /// <summary>\n                /// 获取或设置事件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"event\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                public string Event { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置事件订阅状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件订阅状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n        public IList<Types.Item> List { get; set; } = new List<Types.Item>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Event/EventStatusUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /event/status/update 接口的响应。</para>\n    /// </summary>\n    public class EventStatusUpdateResponse : DouyinOpenResponse<EventStatusUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Fans/FansCheckRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fans/check 接口的请求。</para>\n    /// </summary>\n    public class FansCheckRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置粉丝用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string FollowerOpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Fans/FansCheckResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fans/check 接口的响应。</para>\n    /// </summary>\n    public class FansCheckResponse : DouyinOpenResponse<FansCheckResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置是否关注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_follower\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_follower\")]\n                public bool IsFollower { get; set; }\n\n                /// <summary>\n                /// 获取或设置关注时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"follow_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"follow_time\")]\n                public long? FollowTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Audit/GoodLifeAftersaleAuditNotifyV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/audit/notify 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeAftersaleAuditNotifyV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class RejectReason\n            {\n                /// <summary>\n                /// 获取或设置拒绝错误码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public IList<int> ReasonCodeList { get; set; } = new List<int>();\n\n                /// <summary>\n                /// 获取或设置拒绝描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string? Description { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_after_sale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_after_sale_id\")]\n        public string OutAftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否审核通过。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_approved\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_approved\")]\n        public bool IsApproved { get; set; }\n\n        /// <summary>\n        /// 获取或设置拒绝原因信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n        public Types.RejectReason? RejectReason { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Audit/GoodLifeAftersaleAuditNotifyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/audit/notify 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeAftersaleAuditNotifyV1Response : DouyinOpenResponse<GoodLifeAftersaleAuditNotifyV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderApplyRefundV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/order/apply_refund 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeAftersaleOrderApplyRefundV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class RefundReason\n            {\n                /// <summary>\n                /// 获取或设置退款错误码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public IList<int> ReasonCodeList { get; set; } = new List<int>();\n\n                /// <summary>\n                /// 获取或设置退款描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string? Description { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置外部售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_after_sale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_after_sale_id\")]\n        public string OutAftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款原因信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n        public Types.RefundReason RefundReason { get; set; } = new Types.RefundReason();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderApplyRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/order/apply_refund 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeAftersaleOrderApplyRefundV1Response : DouyinOpenResponse<GoodLifeAftersaleOrderApplyRefundV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderMerchantRejectV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/order/merchant_reject 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeAftersaleOrderMerchantRejectV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class RejectReason\n            {\n                /// <summary>\n                /// 获取或设置拒单错误码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public IList<int> ReasonCodeList { get; set; } = new List<int>();\n\n                /// <summary>\n                /// 获取或设置拒单描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string? Description { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拒单原因信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n        public Types.RejectReason RejectReason { get; set; } = new Types.RejectReason();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderMerchantRejectV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/after_sale/order/merchant_reject 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeAftersaleOrderMerchantRejectV1Response : DouyinOpenResponse<GoodLifeAftersaleOrderMerchantRejectV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateCancelV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/certificate/cancel 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateCancelV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置核销记录 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n        public string VerifyId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n        public string CertificateId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateCancelV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/certificate/cancel 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateCancelV1Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置加密券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? EncryptedCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Code { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateGetV1Response : DouyinOpenResponse<GoodLifeFulfilmentCertificateGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置券原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_ticket_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket_amount\")]\n                                public int MerchantTicketAmount { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Title { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"groupon_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"groupon_type\")]\n                                public int GrouponType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置团购市场价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                                public int MarketPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                public string? AccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"third_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"third_sku_id\")]\n                                public string? OutSKUId { get; set; }\n                            }\n\n                            public class VerifyResult\n                            {\n                                /// <summary>\n                                /// 获取或设置核销记录 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                                public string VerifyId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置券 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                                public string CertificateId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置核销类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"verify_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"verify_type\")]\n                                public int VerifyType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置核销时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                                public long VerifyTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否可撤销。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"can_cancel\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"can_cancel\")]\n                                public bool CanCancel { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置核销人抖音号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"verifier_unique_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"verifier_unique_id\")]\n                                public string? VerifierUniqueId { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU SKU { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置过期时间时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                        public long ExpireTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string? Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify\")]\n                        public Types.VerifyResult? VerifyResult { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置团购券信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate\")]\n                public Types.Certificate Certificate { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificatePrepareV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/prepare 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificatePrepareV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置加密券码解析数据。与字段 <see cref=\"Code\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? EncryptedData { get; set; }\n\n        /// <summary>\n        /// 获取或设置券码。与字段 <see cref=\"EncryptedData\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Code { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificatePrepareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/prepare 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificatePrepareV1Response : DouyinOpenResponse<GoodLifeFulfilmentCertificatePrepareV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置券原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券划线价金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"list_market_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"list_market_amount\")]\n                                public int ListMarketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券实付金额（单位：分）\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"coupon_pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_pay_amount\")]\n                                public int CouponPayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_ticket_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket_amount\")]\n                                public int MerchantTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"payment_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"payment_discount_amount\")]\n                                public int PaymentDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_amount\")]\n                                public int PlatformDiscountAmount { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Title { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购类型（type=1团餐券; type=2代金券; type=3次卡）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"groupon_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"groupon_type\")]\n                                public int GrouponType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置团购市场价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                                public int MarketPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"third_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"third_sku_id\")]\n                                public string? OutSKUId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券商家团购账号 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                public string? AccountId { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 券码有效期，开始时间，时间戳，单位秒。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                        public long ExpireTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 券码有效期，开始时间，时间戳，单位秒。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public long StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU SKU { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置一次验券的标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n                public string VerifyToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置可用团购券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置加密券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? EncryptedCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateQueryV1Response : DouyinOpenResponse<GoodLifeFulfilmentCertificateQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate : GoodLifeFulfilmentCertificateGetV1Response.Types.Data.Types.Certificate\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置团购券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyRecordQueryV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/verify_record/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateVerifyRecordQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? POIIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// <para>默认值：\"0\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PageCursor { get; set; } = \"0\";\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/fulfilment/certificate/verify_record/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response : DouyinOpenResponse<GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class VerifyRecord\n                    {\n                        public static class Types\n                        {\n                            public class Amount : GoodLifeFulfilmentCertificateGetV1Response.Types.Data.Types.Certificate.Types.Amount\n                            {\n                            }\n\n                            public class SKU : GoodLifeFulfilmentCertificateGetV1Response.Types.Data.Types.Certificate.Types.SKU\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置分页游标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                        public string NextCursor { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_type\")]\n                        public int VerifyType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否可撤销。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_cancel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_cancel\")]\n                        public bool CanCancel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_time\")]\n                        public long? CancelTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU SKU { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置核销记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"records\")]\n                public Types.VerifyRecord[] VerifyRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/certificate/verify 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateVerifyV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class CodeWithTime\n            {\n                /// <summary>\n                /// 获取或设置三方码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string Code { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置核销时间戳（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                public long VerifyTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置一次验券的标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n        public string VerifyToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置加密券码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"encrypted_codes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_codes\")]\n        public IList<string>? EncryptedCodeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置券码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"codes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"codes\")]\n        public IList<string>? CodeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置带有核销时间的三方码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code_with_time_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code_with_time_list\")]\n        public IList<Types.CodeWithTime>? CodeWithTimeList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/certificate/verify 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentCertificateVerifyV1Response : DouyinOpenResponse<GoodLifeFulfilmentCertificateVerifyV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class VerifyResult\n                    {\n                        /// <summary>\n                        /// 获取或设置验券结果码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                        public int ResultCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置验券结果说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string Code { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置原始券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_code\")]\n                        public string? OriginCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        public string? AccountId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置核销结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_results\")]\n                public Types.VerifyResult[] VerifyResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Distribution/GoodLifeFulfilmentDistributionOrderSyncStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/distribution/order/sync_status 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentDistributionOrderSyncStatusV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置骑手电话号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rider_phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rider_phone\")]\n        public string RiderPhoneNumer { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置三方配送商标示。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"three_source\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"three_source\")]\n        public int RiderSource { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"behavior\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"behavior\")]\n        public int BehaviorType { get; set; }\n\n        /// <summary>\n        /// 获取或设置接单时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"accept_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"accept_time\")]\n        public long AcceptTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/Distribution/GoodLifeFulfilmentDistributionOrderSyncStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/distribution/order/sync_status 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentDistributionOrderSyncStatusV1Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBatchImportV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/reserve_code/batch_import 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentReserveCodeBatchImportV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        public string? SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_sku_id\")]\n        public string? OutSKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置未发放预置码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"codes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"codes\")]\n        public IList<string> CodeList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置预置码过期时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expired_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expired_time\")]\n        public long? ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBatchImportV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/reserve_code/batch_import 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentReserveCodeBatchImportV1Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBindOrderInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/reserve_code/bind_order_info 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentReserveCodeBindOrderInfoV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        public string? SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置预置码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string Code { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/fulfilment/reserve_code/bind_order_info 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response : DouyinOpenResponse<GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置券原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_ticket_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket_amount\")]\n                                public int MerchantTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_ticket_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_ticket_amount\")]\n                                public int PlatformTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"payment_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"payment_discount_amount\")]\n                                public int PaymentDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付手续费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                                public int PaymentFeeAmount { get; set; }\n                            }\n\n                            public class Tourist\n                            {\n                                /// <summary>\n                                /// 获取或设置姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置加密手机号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phone\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                                public string? EncryptedMobileNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置加密身份证号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id_card\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id_card\")]\n                                public string? EncryptedIdCardNumber { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_sku_id\")]\n                        public string? OutSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预置码列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"codes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"codes\")]\n                        public string[] CodeList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount_info\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置出行人列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tourists\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tourists\")]\n                        public Types.Tourist[]? TouristList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order\")]\n                public Types.Order? Order { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarAmountGroupSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_amount_group/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarAmountGroupSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class CalendarAmountGroup\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_out_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_out_id\")]\n                public string? OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历价格列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calendar_amounts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calendar_amounts\")]\n                public IList<Types.CalendarAmount> AmountList { get; set; } = new List<Types.CalendarAmount>();\n            }\n\n            public class CalendarAmount\n            {\n                public static class Types\n                {\n                    public class Value : GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request.Types.CalendarStaticAttribute.Types.Value\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置日历类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public int Type { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public Types.Value Value { get; set; } = new Types.Value();\n\n                /// <summary>\n                /// 获取或设置原价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                public int OriginalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置实际价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                public int ActualAmount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日历价格信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"calendar_amount_group\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"calendar_amount_group\")]\n        public Types.CalendarAmountGroup CalendarAmountGroup { get; set; } = new Types.CalendarAmountGroup();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarAmountGroupSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_amount_group/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarAmountGroupSaveV1Response : DouyinOpenResponse<GoodLifeGoodsCalendarAmountGroupSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse : GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response.Types.BaseResponse\n            {\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_static_attr_group/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class CalendarStaticAttributeGroup\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_out_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_out_id\")]\n                public string? OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calendar_static_attrs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calendar_static_attrs\")]\n                public IList<Types.CalendarStaticAttribute> StaticAttributeList { get; set; } = new List<Types.CalendarStaticAttribute>();\n            }\n\n            public class CalendarStaticAttribute\n            {\n                public static class Types\n                {\n                    public class Value\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串列表（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"values\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"values\")]\n                        public IList<string>? DateStringList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置要排除的日期字符串列表（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exclude_dates\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_dates\")]\n                        public IList<string>? ExcludedDateStringList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置日历类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public int Type { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public Types.Value Value { get; set; } = new Types.Value();\n\n                /// <summary>\n                /// 获取或设置属性字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                public IDictionary<string, string>? KeyValueMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日历属性信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"calendar_static_attr_group\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"calendar_static_attr_group\")]\n        public Types.CalendarStaticAttributeGroup CalendarStaticAttributeGroup { get; set; } = new Types.CalendarStaticAttributeGroup();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_static_attr_group/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response : DouyinOpenResponse<GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse\n            {\n                /// <summary>\n                /// 获取或设置业务状态码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"StatusCode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"StatusCode\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int StatusCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务状态描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"StatusMessage\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"StatusMessage\")]\n                public string? StatusMessage { get; set; }\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStockGroupSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_stock_group/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarStockGroupSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class CalendarStockGroup\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_out_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_out_id\")]\n                public string? OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calendar_stocks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calendar_stocks\")]\n                public IList<Types.CalendarStock> StockList { get; set; } = new List<Types.CalendarStock>();\n            }\n\n            public class CalendarStock\n            {\n                public static class Types\n                {\n                    public class Value : GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request.Types.CalendarStaticAttribute.Types.Value\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置日历类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public int Type { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public Types.Value Value { get; set; } = new Types.Value();\n\n                /// <summary>\n                /// 获取或设置库存数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_qty\")]\n                public int StockQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存上限类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_qty_limit_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_qty_limit_type\")]\n                public int StockLimitType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置日历库存信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"calendar_stock_group\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"calendar_stock_group\")]\n        public Types.CalendarStockGroup CalendarStockGroup { get; set; } = new Types.CalendarStockGroup();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStockGroupSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/calendar_stock_group/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsCalendarStockGroupSaveV1Response : DouyinOpenResponse<GoodLifeGoodsCalendarStockGroupSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse : GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response.Types.BaseResponse\n            {\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Category/GoodLifeGoodsCategoryGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/category/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsCategoryGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? ParentCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? QueryType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Category/GoodLifeGoodsCategoryGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/category/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsCategoryGetV1Response : DouyinOpenResponse<GoodLifeGoodsCategoryGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ParentCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类目层级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Level { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是叶子节点。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                        public bool IsLeaf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否开放。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"enable\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                        public bool IsEnabled { get; set; }\n                    }\n\n                    public class CategoryTreeItem : Category\n                    {\n                        /// <summary>\n                        /// 获取或设置子类目列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_tree_infos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_tree_infos\")]\n                        public Types.Category[]? SubCategoryList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置类目列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_infos\")]\n                public Types.Category[]? CategoryList { get; set; }\n\n                /// <summary>\n                /// 获取或设置类目树形列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_tree_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_tree_infos\")]\n                public Types.CategoryTreeItem[]? CategoryTreeItems { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductDraftGetV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/draft/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductDraftGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? ProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? OutProductIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductDraftGetV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/draft/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductDraftGetV1Response : DouyinOpenResponse<GoodLifeGoodsProductDraftGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductDraft\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                public static class Types\n                                {\n                                    public class POI : GoodLifeGoodsProductDraftQueryV1Response.Types.Data.Types.ProductDraft.Types.Product.Types.POI\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                                public string OutProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                                public int ProductType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public int? CategoryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类全名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_full_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_full_name\")]\n                                public string? CategoryFullName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置业务线类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                                public int BusinessLineType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? CreatorAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置所有者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OwnerAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string? AccountName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long? StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n                                public long? EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置跳转链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_url\")]\n                                public string? OutUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                                public Types.POI[] POIList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Stock : GoodLifeGoodsProductDraftQueryV1Response.Types.Data.Types.ProductDraft.Types.SKU.Types.Stock\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                                public string OutSKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                                public Types.Stock Stock { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置原价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                                public int ActualAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置草稿状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"draft_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"draft_status\")]\n                        public int DraftStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_msg\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                        public Types.Product Product { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU? SKU { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置草稿列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_drafts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_drafts\")]\n                public Types.ProductDraft[] DraftList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductDraftQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/draft/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductDraftQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置草稿状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductDraftQueryV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/draft/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductDraftQueryV1Response : DouyinOpenResponse<GoodLifeGoodsProductDraftQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductDraft\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                public static class Types\n                                {\n                                    public class POI\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置门店 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                        public string POIId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置门店 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                        public string SupplierId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置门店外部 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                        public string SupplierExternalId { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                                public string OutProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                                public int ProductType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public int? CategoryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类全名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_full_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_full_name\")]\n                                public string? CategoryFullName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置业务线类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                                public int BusinessLineType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? CreatorAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置所有者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OwnerAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string? AccountName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long? StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n                                public long? EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置跳转链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_url\")]\n                                public string? OutUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                                public Types.POI[] POIList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Stock : GoodLifeGoodsStockSyncV1Request.Types.Stock\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                                public string OutSKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                                public Types.Stock Stock { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置原价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                                public int ActualAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置草稿状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"draft_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"draft_status\")]\n                        public int DraftStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_msg\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                        public Types.Product Product { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU? SKU { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置草稿列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.ProductDraft[] DraftList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_cursor\")]\n                public string? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductFreeAuditV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/free_audit 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductFreeAuditV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public string? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n        public string? OutProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置售卖结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n        public long? EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_qty\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_qty\")]\n        public int? StockQuantity { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductFreeAuditV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/free_audit 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductFreeAuditV1Response : DouyinOpenResponse<GoodLifeGoodsProductFreeAuditV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineGetV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/online/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOnlineGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? ProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? OutProductIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineGetV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/online/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOnlineGetV1Response : DouyinOpenResponse<GoodLifeGoodsProductOnlineGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductInfo\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                public static class Types\n                                {\n                                    public class POI : GoodLifeGoodsProductOnlineQueryV1Response.Types.Data.Types.ProductInfo.Types.Product.Types.POI\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                                public string OutProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                                public int ProductType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public int? CategoryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类全名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_full_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_full_name\")]\n                                public string? CategoryFullName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置业务线类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                                public int BusinessLineType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? CreatorAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置所有者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OwnerAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string? AccountName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long? StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n                                public long? EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置跳转链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_url\")]\n                                public string? OutUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                                public Types.POI[] POIList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                public long UpdateTimestamp { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Stock : GoodLifeGoodsProductOnlineQueryV1Response.Types.Data.Types.ProductInfo.Types.SKU.Types.Stock\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                                public string OutSKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                                public Types.Stock Stock { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置原价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                                public int ActualAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                public long UpdateTimestamp { get; set; }\n                            }\n\n                            public class Commission : GoodLifeGoodsProductOnlineQueryV1Response.Types.Data.Types.ProductInfo.Types.Commission\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置上线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"online_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"online_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                        public Types.Product Product { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU? SKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_info\")]\n                        public Types.Commission? Commission { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_onlines\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_onlines\")]\n                public Types.ProductInfo[] ProductList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/online/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOnlineQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置上线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineQueryV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/product/online/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOnlineQueryV1Response : DouyinOpenResponse<GoodLifeGoodsProductOnlineQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductInfo\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                public static class Types\n                                {\n                                    public class POI : GoodLifeGoodsProductDraftQueryV1Response.Types.Data.Types.ProductDraft.Types.Product.Types.POI\n                                    {\n                                    }\n                                }\n                                \n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                                public string OutProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                                public int ProductType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public int? CategoryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置品类全名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_full_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_full_name\")]\n                                public string? CategoryFullName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置业务线类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                                public int BusinessLineType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? CreatorAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置所有者商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"owner_account_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OwnerAccountId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string? AccountName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long? StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n                                public long? EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置跳转链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_url\")]\n                                public string? OutUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                                public Types.POI[] POIList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                public long UpdateTimestamp { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Stock : GoodLifeGoodsProductDraftQueryV1Response.Types.Data.Types.ProductDraft.Types.SKU.Types.Stock\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 外部 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                                public string OutSKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                                public Types.Stock Stock { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置原价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                                public int ActualAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性键值对字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                public long UpdateTimestamp { get; set; }\n                            }\n\n                            public class Commission\n                            {\n                                /// <summary>\n                                /// 获取或设置平台分佣率（单位：万分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_take_rate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_take_rate\")]\n                                public decimal PlatformTakeRate { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置上线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"online_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"online_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                        public Types.Product Product { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU? SKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_info\")]\n                        public Types.Commission? Commission { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.ProductInfo[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_cursor\")]\n                public string? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOperateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/operate 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOperateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public string? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n        public string? OutProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n        public int OperateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductOperateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/operate 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductOperateV1Response : DouyinOpenResponse<GoodLifeGoodsProductOperateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Product\n            {\n                public static class Types\n                {\n                    public class POI\n                    {\n                        /// <summary>\n                        /// 获取或设置门店 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string? SupplierExternalId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n                public string? OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                public string ProductName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                public int ProductType { get; set; }\n\n                /// <summary>\n                /// 获取或设置品类 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                public int? CategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置品类全名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_full_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_full_name\")]\n                public string? CategoryFullName { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务线类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                public int BusinessLineType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                public string? AccountName { get; set; }\n\n                /// <summary>\n                /// 获取或设置售卖开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                public long? StartTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置售卖结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sold_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sold_end_time\")]\n                public long? EndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置跳转链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_url\")]\n                public string? OutUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n\n                /// <summary>\n                /// 获取或设置属性键值对字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n            }\n\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class Stock : GoodLifeGoodsStockSyncV1Request.Types.Stock\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public string? SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                public string? OutSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                public string SKUName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                public Types.Stock Stock { get; set; } = new Types.Stock();\n\n                /// <summary>\n                /// 获取或设置原价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                public int? OriginalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置实际价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                public int ActualAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性键值对字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n        public Types.Product Product { get; set; } = new Types.Product();\n\n        /// <summary>\n        /// 获取或设置 SKU 信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n        public Types.SKU? SKU { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Product/GoodLifeGoodsProductSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/product/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsProductSaveV1Response : DouyinOpenResponse<GoodLifeGoodsProductSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string ProductId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/SKU/GoodLifeGoodsSKUBatchSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/sku/batch_save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsSKUBatchSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class Stock : GoodLifeGoodsProductSaveV1Request.Types.SKU.Types.Stock\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public string? SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                public string? OutSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                public string SKUName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                public Types.Stock Stock { get; set; } = new Types.Stock();\n\n                /// <summary>\n                /// 获取或设置原价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                public int? OriginalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置实际价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"actual_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"actual_amount\")]\n                public int ActualAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性键值对字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public string? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n        public string? OutProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_list\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/SKU/GoodLifeGoodsSKUBatchSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/sku/batch_save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsSKUBatchSaveV1Response : DouyinOpenResponse<GoodLifeGoodsSKUBatchSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/SPU/GoodLifeGoodsSPUSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/spu/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsSPUSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class SPU\n            {\n                public static class Types\n                {\n                    public class POI\n                    {\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string? SupplierExternalId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                public string? SPUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_spu_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_spu_id\")]\n                public string? OutSPUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_name\")]\n                public string SPUName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                public int ProductType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务线类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                public int BusinessLineType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string Description { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n\n                /// <summary>\n                /// 获取或设置属性键值对字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attr_key_value_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attr_key_value_map\")]\n                public IDictionary<string, string>? AttributeKeyValueMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu\")]\n        public Types.SPU SPU { get; set; } = new Types.SPU();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/SPU/GoodLifeGoodsSPUSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/spu/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsSPUSaveV1Response : DouyinOpenResponse<GoodLifeGoodsSPUSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse : GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Response.Types.BaseResponse\n            {\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                public string SPUId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.StatusCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Stock/GoodLifeGoodsStockSyncV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/stock/sync 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsStockSyncV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Stock\n            {\n                /// <summary>\n                /// 获取或设置总库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_qty\")]\n                public int? TotalStock { get; set; }\n\n                /// <summary>\n                /// 获取或设置可用库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avail_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avail_qty\")]\n                public int? AvailableStock { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存上限类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"limit_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"limit_type\")]\n                public int LimitType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品 ID。与字段 <see cref=\"OutProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public string? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID。与字段 <see cref=\"ProductId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_id\")]\n        public string? OutProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n        public Types.Stock Stock { get; set; } = new Types.Stock();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Stock/GoodLifeGoodsStockSyncV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/goods/stock/sync 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsStockSyncV1Response : DouyinOpenResponse<GoodLifeGoodsStockSyncV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Template/GoodLifeGoodsTemplateGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/template/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeGoodsTemplateGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int CategoryId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Goods/Template/GoodLifeGoodsTemplateGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/goods/template/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeGoodsTemplateGetV1Response : DouyinOpenResponse<GoodLifeGoodsTemplateGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Attribute\n                    {\n                        /// <summary>\n                        /// 获取或设置属性 Key。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                        public string Key { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_multi\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_multi\")]\n                        public bool IsMultiple { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否必填。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置值类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_type\")]\n                        public string ValueType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置值样例。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_demo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_demo\")]\n                        public string? ValueDemo { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_attrs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_attrs\")]\n                public Types.Attribute[]? ProductAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_attrs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_attrs\")]\n                public Types.Attribute[]? SPUAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_attrs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_attrs\")]\n                public Types.Attribute[]? SKUAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置日历属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calendar_attrs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calendar_attrs\")]\n                public Types.Attribute[]? CalenderAttributeList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Member/GoodLifeMemberUnionIdGetV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/member/unionid/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeMemberUnionIdGetV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Member\n            {\n                /// <summary>\n                /// 获取或设置会员 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置会员列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"members\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"members\")]\n        public IList<Types.Member> MemberList { get; set; } = new List<Types.Member>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Member/GoodLifeMemberUnionIdGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/member/unionid/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeMemberUnionIdGetV1Response : DouyinOpenResponse<GoodLifeMemberUnionIdGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Member\n                    {\n                        /// <summary>\n                        /// 获取或设置会员 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置会员 UnionId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"union_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"union_id\")]\n                        public string UnionId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置会员列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"members\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"members\")]\n                public Types.Member[] MemberList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Member/GoodLifeMemberUserUpdateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/member/user/update 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeMemberUserUpdateV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Member\n            {\n                /// <summary>\n                /// 获取或设置会员 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置会员最新积分。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"point_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"point_amount\")]\n                public int PointAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置会员最新等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_level\")]\n                public int UserLevel { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置会员列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"members\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"members\")]\n        public IList<Types.Member> MemberList { get; set; } = new List<Types.Member>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Member/GoodLifeMemberUserUpdateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/member/user/update 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeMemberUserUpdateV1Response : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/Crowd/GoodLifePOICrowdSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/crowd/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOICrowdSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Crowd\n            {\n                public static class Types\n                {\n                    public class Condition\n                    {\n                        /// <summary>\n                        /// 获取或设置下界。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lower_bound\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lower_bound\")]\n                        public int? LowerBound { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下界包含类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lower_bound_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lower_bound_type\")]\n                        public int? LowerBoundType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上界。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"upper_bound\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"upper_bound\")]\n                        public int? UpperBound { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上界包含类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"upper_bound_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"upper_bound_type\")]\n                        public int? UpperBoundType { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置人群类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"crowd_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"crowd_type\")]\n                public int CrowdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置年龄条件信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"age_condition\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"age_condition\")]\n                public Types.Condition? AgeCondition { get; set; }\n\n                /// <summary>\n                /// 获取或设置身高条件信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height_condition\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height_condition\")]\n                public Types.Condition? HeightCondition { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"op_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n                public int? OperateType { get; set; }\n\n                /// <summary>\n                /// 获取或设置特殊说明。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"note\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n                public string? Notes { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string POIId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置人群列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"crowds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"crowds\")]\n        public IList<Types.Crowd> CrowdList { get; set; } = new List<Types.Crowd>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/Crowd/GoodLifePOICrowdSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/crowd/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOICrowdSaveV1Response : DouyinOpenResponse<GoodLifePOICrowdSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIClaimV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/claim 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIClaimV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class POI\n            {\n                public static class Types\n                {\n                    public class BusinessLicense : GoodLifePOISyncV1Request.Types.POI.Types.BusinessLicense\n                    {\n                    }\n\n                    public class LegalPerson : GoodLifePOISyncV1Request.Types.POI.Types.LegalPerson\n                    {\n                    }\n\n                    public class Industry\n                    {\n                        public static class Types\n                        {\n                            public class Qualification : GoodLifePOISyncV1Request.Types.POI.Types.Industry.Types.Qualification\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置主营类目代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"major_industry_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"major_industry_code\")]\n                        public string MajorIndustryCode { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置辅营类目代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"minor_industry_codes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"minor_industry_codes\")]\n                        public IList<string>? MajorIndustryCodeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置许可证列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                        public IList<Types.Qualification>? QualificationList { get; set; }\n                    }\n\n                    public class Owner : GoodLifePOISyncV1Request.Types.POI.Types.Owner\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                public string ThirdId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商家 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                public string? AccountId { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置营业执照信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license\")]\n                public Types.BusinessLicense? BusinessLicense { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                public Types.LegalPerson? LegalPerson { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry\")]\n                public Types.Industry? Industry { get; set; }\n\n                /// <summary>\n                /// 获取或设置所有人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_info\")]\n                public Types.Owner? Owner { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置目标类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_type\")]\n        public int TargetType { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"datas\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n        public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIClaimV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/claim 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIClaimV1Response : DouyinOpenResponse<GoodLifePOIClaimV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Task : GoodLifePOISyncV1Response.Types.Data.Types.Task\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIDecorateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/decorate 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIDecorateV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class POI\n            {\n                public static class Types\n                {\n                    public class Decoration\n                    {\n                        public static class Types\n                        {\n                            public class Image\n                            {\n                                /// <summary>\n                                /// 获取或设置图片链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置图片排序。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sort_value\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sort_value\")]\n                                public int? SortValue { get; set; }\n                            }\n\n                            public class RecommendList\n                            {\n                                /// <summary>\n                                /// 获取或设置相册名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Title { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置相册图片列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"items\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                                public RecommendItem? Items { get; set; }\n                            }\n\n                            public class RecommendItem\n                            {\n                                /// <summary>\n                                /// 获取或设置图片链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                public string Url { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置图片名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_name\")]\n                                public string Name { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置图片排序。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sort_value\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sort_value\")]\n                                public int? SortValue { get; set; }\n                            }\n\n                            public class Announcement\n                            {\n                                /// <summary>\n                                /// 获取或设置图片链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                public string Url { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Name { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"description\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                                public string Description { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置是否展示。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                                public bool IsEnabled { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置服务设施标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tags\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                        public IList<string>? TagList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置头图列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"head_images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"head_images\")]\n                        public IList<Types.Image>? HeadImageList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置相册列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recommends\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recommends\")]\n                        public Types.RecommendList? RecommendList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外显小图列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover_images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover_images\")]\n                        public IList<Types.Image>? CoverImageList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置公告信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"announcement\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"announcement\")]\n                        public Types.Announcement? Announcement { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                public string ThirdId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置装修信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license\")]\n                public Types.Decoration Decoration { get; set; } = new Types.Decoration();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置门店列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"datas\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n        public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIDecorateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/decorate 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIDecorateV1Response : DouyinOpenResponse<GoodLifePOIDecorateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Task : GoodLifePOIUpdateV1Response.Types.Data.Types.Task\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchRelationQueryV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/match/relation/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIMatchRelationQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置门店外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> POIExternalIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchRelationQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/match/relation/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIMatchRelationQueryV1Response : DouyinOpenResponse<GoodLifePOIMatchRelationQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Relation\n                    {\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string POIExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_relation_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_relation_status\")]\n                        public int MatchStatus { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置关联关系列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"relations\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"relations\")]\n                public Types.Relation[] RelationList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchTaskQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/match/task/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIMatchTaskQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long TaskId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchTaskQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/match/task/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIMatchTaskQueryV1Response : DouyinOpenResponse<GoodLifePOIMatchTaskQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class MatchResult\n                    {\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string POIExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_status\")]\n                        public int MatchStatus { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"results\")]\n                public Types.MatchResult[] MatchResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchTaskSubmitV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/match/task/submit 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIMatchTaskSubmitV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class POI\n            {\n                /// <summary>\n                /// 获取或设置三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                public string ThirdId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                public string POIExternalId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string? POIId { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                public string POIName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? Province { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? City { get; set; }\n\n                /// <summary>\n                /// 获取或设置经营地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? Address { get; set; }\n\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                public decimal? Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                public decimal? Longitude { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置门店列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"datas\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n        public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIMatchTaskSubmitV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/match/task/submit 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIMatchTaskSubmitV1Response : DouyinOpenResponse<GoodLifePOIMatchTaskSubmitV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOISyncV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/sync 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOISyncV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class POI\n            {\n                public static class Types\n                {\n                    public class BusinessPartnership\n                    {\n                        public static class Types\n                        {\n                            public class Authorization\n                            {\n                                /// <summary>\n                                /// 获取或设置授权类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public int Type { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置授权函图片 URL 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"urls\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"urls\")]\n                                public IList<string> ImageUrlList { get; set; } = new List<string>();\n\n                                /// <summary>\n                                /// 获取或设置合作内容类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"agreement\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"agreement\")]\n                                public int AgreementType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置生效日期字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"effective_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"effective_time\")]\n                                public string EffectiveDateString { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置失效日期字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"expiration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"expiration\")]\n                                public string? ExpireDateString { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置小程序 AppId 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_ids\")]\n                                public IList<string> AppIdList { get; set; } = new List<string>();\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置授权信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"authorization\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"authorization\")]\n                        public Types.Authorization Authorization { get; set; } = new Types.Authorization();\n                    }\n\n                    public class POIClaimAuthorization\n                    {\n                        /// <summary>\n                        /// 获取或设置认领函图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"urls\")]\n                        public IList<string> ImageUrlList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置生效日期字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effective_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effective_time\")]\n                        public string EffectiveDateString { get; set; } = string.Empty;\n                    }\n\n                    public class BusinessLicense\n                    {\n                        /// <summary>\n                        /// 获取或设置是否使用 OCR。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"use_ocr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"use_ocr\")]\n                        public bool IsUseOCR { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业执照类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"license_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"license_type\")]\n                        public int? LicenseType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string? CompanyName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置统一信用代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"license_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"license_id\")]\n                        public string? LicenseNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业执照照片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"license_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"license_urls\")]\n                        public IList<string> LicenseImageUrlList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string? Province { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string? City { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置经营地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置失效日期字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expiration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expiration\")]\n                        public string? ExpireDateString { get; set; }\n                    }\n\n                    public class LegalPerson\n                    {\n                        /// <summary>\n                        /// 获取或设置是否使用 OCR。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"use_ocr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"use_ocr\")]\n                        public bool IsUseOCR { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置身份证号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id_card_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_no\")]\n                        public string? IdCardNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置身份证正面照片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id_card_front_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_front_url\")]\n                        public string IdCardFrontImageUrlList { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置身份证背面照片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id_card_back_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_back_url\")]\n                        public string IdCardBackImageUrlList { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置失效日期字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id_card_expiration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id_card_expiration\")]\n                        public string? ExpireDateString { get; set; }\n                    }\n\n                    public class Industry\n                    {\n                        public static class Types\n                        {\n                            public class Qualification\n                            {\n                                /// <summary>\n                                /// 获取或设置许可证 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                                public string QualificationId { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置许可证类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n                                public int QualificationType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置许可证照片 URL 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"qualification_urls\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_urls\")]\n                                public IList<string> QualificationImageUrlList { get; set; } = new List<string>();\n\n                                /// <summary>\n                                /// 获取或设置失效日期字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"qualification_expiration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_expiration\")]\n                                public string? ExpireDateString { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置主营类目代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"major_industry_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"major_industry_code\")]\n                        public string MajorIndustryCode { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置辅营类目代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"minor_industry_codes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"minor_industry_codes\")]\n                        public IList<string>? MajorIndustryCodeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置许可证列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                        public IList<Types.Qualification>? QualificationList { get; set; }\n                    }\n\n                    public class Owner\n                    {\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置职务。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                        public string? Role { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置手机号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                        public string? MobileNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置邮箱地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                        public string? Email { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                public string ThirdId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商家 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                public string? AccountId { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商服合作信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_partnership\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_partnership\")]\n                public Types.BusinessPartnership? BusinessPartnership { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店认领信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_claim_authorization\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_claim_authorization\")]\n                public Types.POIClaimAuthorization? POIClaimAuthorization { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license\")]\n                public Types.BusinessLicense? BusinessLicense { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                public Types.LegalPerson? LegalPerson { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry\")]\n                public Types.Industry? Industry { get; set; }\n\n                /// <summary>\n                /// 获取或设置所有人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner\")]\n                public Types.Owner? Owner { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置目标类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_type\")]\n        public int TargetType { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"datas\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n        public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOISyncV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/sync 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOISyncV1Response : DouyinOpenResponse<GoodLifePOISyncV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Task\n                    {\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三方 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                        public string ThirdId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        public string? AccountId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOITaskQueryV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/task/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOITaskQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<long> TaskIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOITaskQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/poi/task/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOITaskQueryV1Response : DouyinOpenResponse<GoodLifePOITaskQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class TaskResult\n                    {\n                        public static class Types\n                        {\n                            public class BusinessPartnershipResult\n                            {\n                                /// <summary>\n                                /// 获取或设置合作关系 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"partnership_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"partnership_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long PartnershipId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置任务状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置拒绝原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n                            }\n\n                            public class TrademarkResult\n                            {\n                                /// <summary>\n                                /// 获取或设置商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                public string AccountId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置任务状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置拒绝原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n                            }\n\n                            public class POIResult\n                            {\n                                public static class Types\n                                {\n                                    public class AuditResult\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置审核项标识\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"key\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                                        public string AuditKey { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置审核状态。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                        public int Status { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置拒绝原因。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                        public string? RejectReason { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置拒绝原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核结果列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"key_audit_result_list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"key_audit_result_list\")]\n                                public Types.AuditResult[]? AuditResultList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三方 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                        public string ThirdId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商服绑定关系结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"business_partnership_result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"business_partnership_result\")]\n                        public Types.BusinessPartnershipResult? BusinessPartnershipResult { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置品牌审核结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trademark_result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trademark_result\")]\n                        public Types.TrademarkResult? TrademarkResult { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店修改结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_result\")]\n                        public Types.POIResult? POIUpdateResult { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店装修结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_decoration_result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_decoration_result\")]\n                        public Types.POIResult? POIDecorationResult { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_results\")]\n                public Types.TaskResult[] TaskResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIUpdateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/update 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePOIUpdateV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class POI\n            {\n                public static class Types\n                {\n                    public class POIInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置门店名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                        public string? POIName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店面照片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"head_image_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"head_image_urls\")]\n                        public IList<string>? HeadImageUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置行业代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                        public string? IndustryCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_status\")]\n                        public int? OpenStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业时间字符串列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_time\")]\n                        public IList<string>? OpenTimeStringList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系座机号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contact_tel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contact_tel\")]\n                        public string? ContactTelephone { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系手机号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contact_phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contact_phone\")]\n                        public string? ContactMobilephone { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置纬度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                        public decimal? Latitude { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置经度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                        public decimal? Longitude { get; set; }\n                    }\n\n                    public class Service\n                    {\n                        public static class Types\n                        {\n                            public class Entry\n                            {\n                                public static class Types\n                                {\n                                    public class EntryMiniApp : POISupplierSyncRequest.Types.Service.Types.Entry.Types.EntryMiniApp\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置入口类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                                public int EntryType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置小程序入口信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry_mini_app\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry_mini_app\")]\n                                public Types.EntryMiniApp? EntryMiniApp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置上线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"enable\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                        public int ServiceType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置入口信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"entry\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"entry\")]\n                        public Types.Entry? Entry { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                public string ThirdId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置门店类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_type\")]\n                public int? POIType { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n                public Types.POIInfo? POIInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"services\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"services\")]\n                public IList<Types.Service>? ServiceList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置门店列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"datas\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n        public IList<Types.POI> POIList { get; set; } = new List<Types.POI>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/POI/GoodLifePOIUpdateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/poi/poi/update 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePOIUpdateV1Response : DouyinOpenResponse<GoodLifePOIUpdateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Task\n                    {\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三方 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_id\")]\n                        public string ThirdId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置门店 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/commission_record/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerCommissionRecordGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置佣金配置记录 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RecordId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/commission_record/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerCommissionRecordGetV1Response : DouyinOpenResponse<GoodLifePartnerCommissionRecordGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class CommissionRecordItem\n                    {\n                        /// <summary>\n                        /// 获取或设置记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string ItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核中的商品分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? AuditCommissionRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置生效中的商品分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effective_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effective_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? EffectiveCommissionRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_audit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_audit_status\")]\n                        public int CommissionAuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家确认或拒绝时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_ack_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ack_time\")]\n                        public long? MerchantAcknowledgeTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置佣金配置记录商品明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission_record_items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission_record_items\")]\n                public Types.CommissionRecordItem[] CommissionRecordItemList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/commission_record/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerCommissionRecordQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：50</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 50;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/commission_record/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerCommissionRecordQueryV1Response : DouyinOpenResponse<GoodLifePartnerCommissionRecordQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class CommissionRecord\n                    {\n                        /// <summary>\n                        /// 获取或设置佣金配置记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"record_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"record_id\")]\n                        public string RecordId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置佣金配置记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission_records\")]\n                public Types.CommissionRecord[] CommissionRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/product_commission/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerProductCommissionQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：50</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 50;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/product_commission/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerProductCommissionQueryV1Response : DouyinOpenResponse<GoodLifePartnerProductCommissionQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductCommission\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_status\")]\n                                public int ProductStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品售价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_price\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int ActualPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置生效中的商品分佣比例（单位：万分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"effective_commission_ratio\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"effective_commission_ratio\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int? EffectiveCommissionRatio { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品佣金状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_commission_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_commission_status\")]\n                                public int ProductCommissionStatus { get; set; }\n                            }\n\n                            public class CommissionRecordItem\n                            {\n                                /// <summary>\n                                /// 获取或设置记录 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                                public string ItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核中的商品分佣比例（单位：万分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audit_commission_ratio\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audit_commission_ratio\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int? AuditCommissionRatio { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置生效中的商品分佣比例（单位：万分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_ratio_before\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio_before\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int? EffectiveCommissionRatio { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置佣金审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_audit_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_audit_status\")]\n                                public int CommissionAuditStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家确认或拒绝时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_ack_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ack_time\")]\n                                public long? MerchantAcknowledgeTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                        public Types.Product Product { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置最近一次的佣金配置记录商品明细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latest_commission_record_item\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latest_commission_record_item\")]\n                        public Types.CommissionRecordItem? CommissionRecordItem { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_commissions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_commissions\")]\n                public Types.ProductCommission[] ProductCommissionList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionSaveV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/partner/product_commission/save 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerProductCommissionSaveV1Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class ProductItem\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public string ProductId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品分佣比例（单位：万分数）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n                public int CommissionRatio { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品佣金配置列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_items\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_items\")]\n        public IList<Types.ProductItem> ProductItemList { get; set; } = new List<Types.ProductItem>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionSaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/partner/product_commission/save 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerProductCommissionSaveV1Response : DouyinOpenResponse<GoodLifePartnerProductCommissionSaveV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class InvalidProductItem\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string ProductId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置商品分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CommissionRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"alliance_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"alliance_commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int AllianceCommissionRatio { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置记录 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"record_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"record_id\")]\n                public string RecordId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置无效的商品佣金配置列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"invalid_commission_product_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"invalid_commission_product_list\")]\n                public Types.InvalidProductItem[]? InvalidProductItemList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderCreateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/partner/order/create 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderCreateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置合作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cooperation_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_content\")]\n        public int CooperationContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置合作开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置合作结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置收费类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"charge_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"charge_type\")]\n        public int ChargeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分佣比例（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n        public int? CommissionRatio { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderCreateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/partner/order/create 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderCreateV1Response : DouyinOpenResponse<GoodLifePartnerOrderCreateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/order/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否不获取商品佣金。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsWithoutProductItems { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/order/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderGetV1Response : DouyinOpenResponse<GoodLifePartnerOrderGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class ProductItem\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_status\")]\n                        public int ProductStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品售价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_price\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ActualPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CommissionRatio { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商家 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                public string AccountId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置合作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_content\")]\n                public int CooperationContentType { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                public long StartTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                public long EndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置收费类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"charge_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"charge_type\")]\n                public int ChargeType { get; set; }\n\n                /// <summary>\n                /// 获取或设置分佣比例（单位：万分数）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? CommissionRatio { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置商户名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_name\")]\n                public string MerchantName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置服务名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                public string ProductName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下单时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品佣金配置列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_items\")]\n                public Types.ProductItem[]? ProductItemList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/order/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置合作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? CooperationContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置合作开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置合作结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：50</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 50;\n\n        /// <summary>\n        /// 获取或设置是否升序排序。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsSortByAsc { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Partner/Order/GoodLifePartnerOrderQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/partner/order/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifePartnerOrderQueryV1Response : DouyinOpenResponse<GoodLifePartnerOrderQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        public string AccountId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置合作类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_content\")]\n                        public int CooperationContentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合作开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public long StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合作结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long EndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收费类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"charge_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"charge_type\")]\n                        public int ChargeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? CommissionRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商户名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_name\")]\n                        public string MerchantName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下单时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryByOrderV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/detailed_query_by_order 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerDetailedQueryByOrderV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryByOrderV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/detailed_query_by_order 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerDetailedQueryByOrderV1Response : DouyinOpenResponse<GoodLifeSettleLedgerDetailedQueryByOrderV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class LedgerRecord\n                    {\n                        public static class Types\n                        {\n                            public class Amount : GoodLifeSettleLedgerDetailedQueryV1Response.Types.Data.Types.LedgerRecord.Types.Amount\n                            {\n                            }\n\n                            public class SKU : GoodLifeSettleLedgerQueryRecordByCertificateV1Response.Types.Data.Types.LedgerRecord.Types.SKU\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置分账记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ledger_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ledger_id\")]\n                        public string LedgerId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string CertificateCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分账状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                        public Types.SKU SKU { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分账记录字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_records\")]\n                public IDictionary<string, Types.LedgerRecord> LedgerRecordMap { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置二次分账记录字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_second_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_second_records\")]\n                public IDictionary<string, Types.LedgerRecord> SecondLedgerRecordMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/detailed_query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerDetailedQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// <para>默认值：\"0\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PageCursor { get; set; } = \"0\";\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置核销日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/detailed_query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerDetailedQueryV1Response : DouyinOpenResponse<GoodLifeSettleLedgerDetailedQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class LedgerRecord\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置券原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付手续费（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_handling\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_handling\")]\n                                public int PayHandlingAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付渠道优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_discount\")]\n                                public int PayDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际保费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_insured\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_insured\")]\n                                public int ActualInsuredAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置券实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"coupon_pay\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_pay\")]\n                                public int CouponPayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家货款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"goods\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                                public int GoodsAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际参与分账的平台优惠券金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ledger_platform_ticket\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_platform_ticket\")]\n                                public int LedgerPlatformTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置参与分账的总金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ledger_total\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_total\")]\n                                public int LedgerTotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_ticket\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket\")]\n                                public int MerchantTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家营销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_ticket\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_ticket\")]\n                                public int PlatformTicketAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置机构佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"institution_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"institution_commission\")]\n                                public int InstitutionCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"talent_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"talent_commission\")]\n                                public int TalentCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置服务商分佣总金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_agent_merchant\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_agent_merchant\")]\n                                public int AgentMerchantTotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家平台服务费总金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_merchant_platform_service\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_merchant_platform_service\")]\n                                public int MerchantPlatformServiceTotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置代运营服务商总金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_operation_agent\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_operation_agent\")]\n                                public int OperationAgentTotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家出配送费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_freight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_freight\")]\n                                public int MerchantFreightAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家出小费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_tip\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_tip\")]\n                                public int MerchantTipAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家出取消费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_cancel_freight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_cancel_freight\")]\n                                public int MerchantCancelFreightAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台责配送费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_duty_freight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_duty_freight\")]\n                                public int PlatformDutyFreightAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台责小费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_duty_tip\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_duty_tip\")]\n                                public int PlatformDutyTipAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家对用户补贴（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"user_deliv_merchant_subsidy\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"user_deliv_merchant_subsidy\")]\n                                public int UserDeliveryMerchantSubsidyAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户实付配送费（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"user_deliv_coupon_pay\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"user_deliv_coupon_pay\")]\n                                public int UserDeliveryCouponPayAmount { get; set; }\n                            }\n\n                            public class Certificate\n                            {\n                                /// <summary>\n                                /// 获取或设置券 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                                public string CertificateId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置券码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                public string Code { get; set; } = default!;\n                            }\n\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"group_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"group_name\")]\n                                public string Title { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购市场价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                                public int MarketPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long StartTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商家 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                        public string AccountId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置数据唯一标识。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置门店 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分账记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ledger_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ledger_id\")]\n                        public string LedgerId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 Item 维度订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string? ItemOrderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 维度订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_id\")]\n                        public string? SKUOrderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate\")]\n                        public Types.Certificate Certificate { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分账状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分账成功时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ledger_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ledger_time\")]\n                        public long LedgerTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                        public Types.SKU SKU { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单参数字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_attrribute\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_attrribute\")]\n                        public IDictionary<string, string>? OrderAttributeMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发票月账单的 Key。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receipt_bill_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receipt_bill_key\")]\n                        public string? ReceiptBillKey { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分账记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_records\")]\n                public Types.LedgerRecord[] LedgerRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public string? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryByOrderV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query_by_order 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryByOrderV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryByOrderV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query_by_order 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryByOrderV1Response : DouyinOpenResponse<GoodLifeSettleLedgerQueryByOrderV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class LedgerRecord : GoodLifeSettleLedgerDetailedQueryByOrderV1Response.Types.Data.Types.LedgerRecord\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分账记录字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_records\")]\n                public IDictionary<string, Types.LedgerRecord> LedgerRecordMap { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置二次分账记录字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_second_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_second_records\")]\n                public IDictionary<string, Types.LedgerRecord> SecondLedgerRecordMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryRecordByCertificateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query_record_by_cert 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryRecordByCertificateV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置券 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> CertificateIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryRecordByCertificateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query_record_by_cert 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryRecordByCertificateV1Response : DouyinOpenResponse<GoodLifeSettleLedgerQueryRecordByCertificateV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class LedgerRecord\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                public static class Types\n                                {\n                                    public class SettleAmount\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置券原始金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"original\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"original\")]\n                                        public int OriginalAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置用户实付金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"pay\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"pay\")]\n                                        public int PayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商家营销金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"merchant_ticket\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_ticket\")]\n                                        public int MerchantTicketAmount { get; set; }\n                                    }\n\n                                    public class FundAmount\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置商家货款金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"goods\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                                        public int GoodsAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置支付手续费（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"pay_handling\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_handling\")]\n                                        public int PayHandlingAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置达人佣金（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"talent_commission\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_commission\")]\n                                        public int TalentCommission { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置分账单金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                public Types.SettleAmount SettleAmount { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置分账款项金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fund_amount\")]\n                                public Types.FundAmount FundAmount { get; set; } = default!;\n                            }\n\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string Title { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置团购市场价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                                public int MarketPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售卖开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sold_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sold_start_time\")]\n                                public long StartTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置分账记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ledger_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ledger_id\")]\n                        public string LedgerId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销记录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_id\")]\n                        public string VerifyId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string Code { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU SKU { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分账记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"records\")]\n                public Types.LedgerRecord[] LedgerRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// <para>默认值：\"0\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PageCursor { get; set; } = \"0\";\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置核销日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Settle/GoodLifeSettleLedgerQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/settle/ledger/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeSettleLedgerQueryV1Response : DouyinOpenResponse<GoodLifeSettleLedgerQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class LedgerRecord : GoodLifeSettleLedgerDetailedQueryV1Response.Types.Data.Types.LedgerRecord\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分账记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ledger_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ledger_records\")]\n                public Types.LedgerRecord[] LedgerRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public string? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Shop/GoodLifeShopPOIQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/shop/poi/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeShopPOIQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Shop/GoodLifeShopPOIQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/shop/poi/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeShopPOIQueryV1Response : DouyinOpenResponse<GoodLifeShopPOIQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class POI\n                    {\n                        public static class Types\n                        {\n                            public class AccountInfo\n                            {\n                                public static class Types\n                                {\n                                    public class Account\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置账户 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                        public string AccountId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置账户昵称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                        public string AccountName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置账户类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n                                        public string AccountType { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置供应商账户信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"parent_account\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"parent_account\")]\n                                public Types.Account? ParentAccount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店账户信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_account\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_account\")]\n                                public Types.Account? POIAccount { get; set; }\n                            }\n\n                            public class POIInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置门店 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                                public string POIId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置门店名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                                public string POIName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置门店地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                                public string Address { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置纬度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                                public decimal Latitude { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置经度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                                public decimal Longitude { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置账户信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account\")]\n                        public Types.AccountInfo AccountInfo { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置门店信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi\")]\n                        public Types.POIInfo POIInfo { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置门店列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                public Types.POI[] POIList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeBookGetV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/trade/book/get 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeTradeBookGetV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预约单 ID。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? BookId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。与字段 <see cref=\"BookId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeBookGetV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/trade/book/get 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeTradeBookGetV1Response : DouyinOpenResponse<GoodLifeTradeBookGetV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class BaseResponse\n            {\n                /// <summary>\n                /// 获取或设置业务状态码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_code\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int BusinessCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务状态描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_msg\")]\n                public string? BusinessMessage { get; set; }\n            }\n\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Hotel\n                    {\n                        /// <summary>\n                        /// 获取或设置房间数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"number_of_rooms\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"number_of_rooms\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int RoomCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置酒店代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hotel_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hotel_code\")]\n                        public string? HotelCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置连锁代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"chain_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"chain_code\")]\n                        public string? ChainCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置房型代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_type_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_type_code\")]\n                        public string? RoomTypeCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合约代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rate_plan_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rate_plan_code\")]\n                        public string? RatePlanCode { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置预约单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_id\")]\n                public string BookId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置预约单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约开始日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_start_day\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_start_day\")]\n                public string BookStartDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置预约结束日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_end_day\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_end_day\")]\n                public string BookEndDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置申请时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_apply_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_apply_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long ApplyTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置取消时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"book_cancel_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"book_cancel_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? CancelTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置酒店信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hotel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hotel\")]\n                public Types.Hotel? Hotel { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置基础响应。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"BaseResp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"BaseResp\")]\n        public Types.BaseResponse BaseResponse { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置三方预定 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_book_sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_book_sku_id\")]\n        public string? ThirdBookSKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_order_id\")]\n        public string? OrderExternalId { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && BaseResponse?.BusinessCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeBuyMerchantConfirmOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/trade/buy/merchant_confirm_order 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeTradeBuyMerchantConfirmOrderV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeBuyMerchantConfirmOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /goodlife/v1/trade/buy/merchant_confirm_order 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeTradeBuyMerchantConfirmOrderV1Response : DouyinOpenResponse<GoodLifeTradeBuyMerchantConfirmOrderV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeOrderQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/trade/order/query 接口的请求。</para>\n    /// </summary>\n    public class GoodLifeTradeOrderQueryV1Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置抖音订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderExternalId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建订单起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? CreateOrderStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建订单截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? CreateOrderEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置修改订单起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? UpdateOrderStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置修改订单截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? UpdateOrderEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否查询用户隐私号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? RequireGetSecretNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/GoodLife/Trade/GoodLifeTradeOrderQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /goodlife/v1/trade/order/query 接口的响应。</para>\n    /// </summary>\n    public class GoodLifeTradeOrderQueryV1Response : DouyinOpenResponse<GoodLifeTradeOrderQueryV1Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置原始金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                                public int OriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品原价金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_origin_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_origin_amount\")]\n                                public int ProductOriginalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_discount_amount\")]\n                                public int PayDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商家优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_discount_amount\")]\n                                public int MerchantDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_amount\")]\n                                public int PlatformDiscountAmount { get; set; }\n                            }\n\n                            public class Certificate\n                            {\n                                /// <summary>\n                                /// 获取或设置券 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                                public string CertificateId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 Item 维度订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_item_id\")]\n                                public string? ItemOrderId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 Item 维度订单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_status\")]\n                                public int? ItemOrderStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 Item 维度订单更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_update_time\")]\n                                public long? ItemOrderUpdateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int RefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_time\")]\n                                public long? RefundTimestamp { get; set; }\n                            }\n\n                            public class Contact\n                            {\n                                /// <summary>\n                                /// 获取或设置姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置电话号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phone\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                                public string PhoneNumber { get; set; } = default!;\n                            }\n\n                            public class Delivery\n                            {\n                                /// <summary>\n                                /// 获取或设置流水号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_number\")]\n                                public string ShopNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置是否为预订单。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_book\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_book\")]\n                                public bool IsBook { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预计送达时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sys_expect_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sys_expect_time\")]\n                                public string? ExpectedTimeString { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置备注。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                                public string? Remark { get; set; }\n                            }\n\n                            public class Merchant\n                            {\n                                /// <summary>\n                                /// 获取或设置商家 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n                                public string AccountId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商家名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string AccountName { get; set; } = default!;\n                            }\n\n                            public class POI\n                            {\n                                /// <summary>\n                                /// 获取或设置门店 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                                public string POIId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置门店名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                                public string POIName { get; set; } = default!;\n                            }\n\n                            public class Receiver\n                            {\n                                /// <summary>\n                                /// 获取或设置省份。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                public string Province { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public string City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                                public string District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置街道。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                                public string Street { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"location_address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"location_address\")]\n                                public string Address { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置纬度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"lat\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"lat\")]\n                                public decimal? Latitude { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置经度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"lng\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"lng\")]\n                                public decimal? Longitude { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置脱敏后的收货人姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"receiver_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置脱敏后的收件人手机号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"receiver_phone\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_phone\")]\n                                public string PhoneNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置收件人隐私号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"secret_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"secret_number\")]\n                                public string? SecretNumber { get; set; }\n                            }\n\n                            public class Product\n                            {\n                                public static class Types\n                                {\n                                    public class Commodity\n                                    {\n                                        public static class Types\n                                        {\n                                            public class Item\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置菜品名。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                                public string Name { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置菜品价格（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                                public int Price { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置菜品数量。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"count\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                                                public int Count { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置菜品单位。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                                public string? Unit { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置菜品描述。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                                                public string? Description { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置商品组名。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"group_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"group_name\")]\n                                        public string? GroupName { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置总数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                                        public int TotalCount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置选择数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"option_count\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"option_count\")]\n                                        public int OptionCount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置菜品项列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"items\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                                        public Types.Item[]? ItemList { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n                                public int Count { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置菜品列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commodities\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commodities\")]\n                                public Types.Commodity[]? CommodityList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public int OrderStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                        public int OrderType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置原始金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"original_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"original_amount\")]\n                        public int OriginalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        public int PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_discount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_discount\")]\n                        public int PayDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount_info\")]\n                        public Types.Amount? Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                        public string SKUName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付成功时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public long? PayTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_order_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_order_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi\")]\n                        public Types.POI? POI { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate\")]\n                        public Types.Certificate[] CertificateList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                        public int CertificateCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系人列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contacts\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contacts\")]\n                        public Types.Contact[] ContactList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置配送信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_info\")]\n                        public Types.Delivery? Delivery { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_info\")]\n                        public Types.Merchant? Merchant { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件人信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_info\")]\n                        public Types.Receiver? Receiver { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"products\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                        public Types.Product[]? ProductList { get; set; }\n                    }\n\n                    public class Pagination\n                    {\n                        /// <summary>\n                        /// 获取或设置分页页码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n                        public int PageNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分页每页数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n                        public int PageSize { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                        public int TotalCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchSentencesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/sentences/ 接口的请求。</para>\n    /// </summary>\n    public class HotSearchSentencesRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchSentencesResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/sentences/ 接口的响应。</para>\n    /// </summary>\n    public class HotSearchSentencesResponse : DouyinOpenResponse<HotSearchSentencesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class HotSearchSentence\n                    {\n                        /// <summary>\n                        /// 获取或设置热点词。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sentence\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sentence\")]\n                        public string Sentence { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置热度等级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_level\")]\n                        public int HotLevel { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置刷新时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"active_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"active_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset ActiveTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置热点词列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.HotSearchSentence[] HotSearchSentenceList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchTrendingSentencesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/trending/sentences/ 接口的请求。</para>\n    /// </summary>\n    public class HotSearchTrendingSentencesRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchTrendingSentencesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/trending/sentences/ 接口的响应。</para>\n    /// </summary>\n    public class HotSearchTrendingSentencesResponse : DouyinOpenResponse<HotSearchTrendingSentencesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class TrendingSentence\n                    {\n                        /// <summary>\n                        /// 获取或设置上升词。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sentence\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sentence\")]\n                        public string Sentence { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置热度等级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hot_level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hot_level\")]\n                        public int HotLevel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"label\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"label\")]\n                        public int Label { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置上升词列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.TrendingSentence[] TrendingSentenceList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchVideosRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/videos/ 接口的请求。</para>\n    /// </summary>\n    public class HotSearchVideosRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置热点词。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string HotSentence { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/HotSearch/HotSearchVideosResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /hotsearch/videos/ 接口的响应。</para>\n    /// </summary>\n    public class HotSearchVideosResponse : DouyinOpenResponse<HotSearchVideosResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class HotSearchVideo : DouyinVideoListV1Response.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置热点视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.HotSearchVideo[] HotSearchVideoList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Authorize/IMAuthorizeStatusRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/authorize/status/ 接口的请求。</para>\n    /// </summary>\n    public class IMAuthorizeStatusRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 C 端应用 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? CClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 C 端用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"c_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"c_open_id\")]\n        public string COpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Authorize/IMAuthorizeStatusResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/authorize/status/ 接口的响应。</para>\n    /// </summary>\n    public class IMAuthorizeStatusResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Attribution : IMAuthorizeUserListResponse.Types.Data.Types.AuthUser.Types.Attribution\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置授权来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enter_from\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enter_from\")]\n                public string EnterFrom { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置归因信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attribution\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attribution\")]\n                public Types.Attribution? Attribution { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_im_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_im_extra\")]\n                public string? DataIMExtra { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string? PagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                public string? PageQuery { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Authorize/IMAuthorizeUserListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/authorize/user_list/ 接口的请求。</para>\n    /// </summary>\n    public class IMAuthorizeUserListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Authorize/IMAuthorizeUserListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/authorize/user_list/ 接口的响应。</para>\n    /// </summary>\n    public class IMAuthorizeUserListResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class AuthUser\n                    {\n                        public static class Types\n                        {\n                            public class Attribution\n                            {\n                                /// <summary>\n                                /// 获取或设置主播 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"anchor_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"anchor_id\")]\n                                public string? AnchorId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置作者 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"author_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"author_id\")]\n                                public string? AuthorId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置群聊 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"conversation_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_id\")]\n                                public string? ConversationId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置群 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                                public string? GroupId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置消息 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"message_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"message_id\")]\n                                public string? MessageId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置直播间 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                                public string? RoomId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置来源 UID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"from_att_uid\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"from_att_uid\")]\n                                public string? FromUID { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置授权来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"enter_from\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"enter_from\")]\n                        public string EnterFrom { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置来源小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auth_user_source_app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auth_user_source_app_id\")]\n                        public string? SourceAppId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置归因信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attribution\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attribution\")]\n                        public Types.Attribution? Attribution { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置自定义参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"data_im_extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"data_im_extra\")]\n                        public string? DataIMExtra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                        public string? PagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置页面参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"query\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                        public string? PageQuery { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置加密的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target_open_id\")]\n                        public string? TargetOpenId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置授权用户列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_user_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_user_list\")]\n                public Types.AuthUser[] AuthUserList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMDeleteRetainConsultCardRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/del/retain_consult_card/ 接口的请求。</para>\n    /// </summary>\n    public class IMDeleteRetainConsultCardRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置卡片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CardId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMDeleteRetainConsultCardResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/del/retain_consult_card/ 接口的响应。</para>\n    /// </summary>\n    public class IMDeleteRetainConsultCardResponse : DouyinOpenResponse<IMDeleteRetainConsultCardResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMGetRetainConsultCardRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/get/retain_consult_card/ 接口的请求。</para>\n    /// </summary>\n    public class IMGetRetainConsultCardRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMGetRetainConsultCardResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/get/retain_consult_card/ 接口的响应。</para>\n    /// </summary>\n    public class IMGetRetainConsultCardResponse : DouyinOpenResponse<IMGetRetainConsultCardResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n\n            public class Card\n            {\n                /// <summary>\n                /// 获取或设置卡片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n                public string CardId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置卡片标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置输入组件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"components\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"components\")]\n                public int[] ComponentIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"media_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n                public string MediaId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置卡片状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置卡片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cards\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cards\")]\n        public Types.Card[] CardList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMSaveRetainConsultCardRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/save/retain_consult_card/ 接口的请求。</para>\n    /// </summary>\n    public class IMSaveRetainConsultCardRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置卡片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n        public string? CardId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n        public string? MediaId { get; set; }\n\n        /// <summary>\n        /// 获取或设置输入组件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"components\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"components\")]\n        public IList<int> ComponentIdList { get; set; } = new List<int>();\n\n        /// <summary>\n        /// 获取或设置卡片标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Card/IMSaveRetainConsultCardResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/save/retain_consult_card/ 接口的响应。</para>\n    /// </summary>\n    public class IMSaveRetainConsultCardResponse : DouyinOpenResponse<IMSaveRetainConsultCardResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置卡片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n        public string CardId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupEnterAuditGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/enter/audit/get/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupEnterAuditGetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupEnterAuditGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/enter/audit/get/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupEnterAuditGetResponse : DouyinOpenResponse<IMGroupEnterAuditGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n\n            public class ApplyItem\n            {\n                /// <summary>\n                /// 获取或设置群 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置入群申请 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n                public string ApplyId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置申请状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_status\")]\n                public int ApplyStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                public string UserOpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n\n            public class ApplyList\n            {\n                /// <summary>\n                /// 获取或设置授权用户列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.ApplyItem[] Items { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置申请列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"apply_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"apply_list\")]\n        public Types.ApplyList ApplyList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupEnterAuditSetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/enter/audit/set/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupEnterAuditSetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置入群申请 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n        public string ApplyId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置申请状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupEnterAuditSetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/enter/audit/set/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupEnterAuditSetResponse : DouyinOpenResponse<IMGroupEnterAuditSetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置执行结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"success\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n        public bool Result { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansCountRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/fans/count/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupFansCountRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansCountResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/fans/count/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupFansCountResponse : DouyinOpenResponse<IMGroupFansCountResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置剩余数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"left_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"left_count\")]\n        public int LeftCount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansCreateRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/fans/create/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupFansCreateRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_name\")]\n        public string GroupName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置头像 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"avatar_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"avatar_uri\")]\n        public string AvatarUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_type\")]\n        public int? GroupType { get; set; }\n\n        /// <summary>\n        /// 获取或设置粉丝活跃度要求。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"active_fans\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"active_fans\")]\n        public int? ActiveFansType { get; set; }\n\n        /// <summary>\n        /// 获取或设置粉丝团等级要求。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fans_limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fans_limit\")]\n        public int? FansLimitType { get; set; }\n\n        /// <summary>\n        /// 获取或设置关注条件要求。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"relation_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"relation_type\")]\n        public int? RelationType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许群成员邀请朋友。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"allow_invite\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"allow_invite\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAllowInvite { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否作品自动同步。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_auto_sync\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_auto_sync\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsItemAutoSync { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否直播自动同步。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"live_auto_sync\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"live_auto_sync\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsLiveAutoSyncType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否开启进群审批。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_audit_switch\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_audit_switch\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsOpenAudit { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否展示到个人主页。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"show_at_profile\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"show_at_profile\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsShowAtProfile { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansCreateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/fans/create/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupFansCreateResponse : DouyinOpenResponse<IMGroupFansCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置群 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n        public string GroupId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/fans/list/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupFansListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupFansListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /im/group/fans/list/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupFansListResponse : DouyinOpenResponse<IMGroupFansListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n\n            public class Group\n            {\n                /// <summary>\n                /// 获取或设置群 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_name\")]\n                public string GroupName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群简介。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_uri\")]\n                public string AvatarUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_type\")]\n                public int? GroupType { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置群门槛列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_limit\")]\n                public string[]? EntryLimitList { get; set; }\n\n                /// <summary>\n                /// 获取或设置群现有人数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exist_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exist_num\")]\n                public int? ExistNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置群最大支持进入人数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"max_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"max_num\")]\n                public int? MaxNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置群标签槛列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tags\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                public string[]? TagList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置群列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_list\")]\n        public Types.Group[] GroupList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupSettingDisableRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/setting/disable/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupSettingDisableRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n        public string GroupId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置管理配置类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_setting_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_setting_type\")]\n        public int SettingType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupSettingDisableResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/setting/disable/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupSettingDisableResponse : DouyinOpenResponse\n    {\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupSettingSetRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/setting/set/ 接口的请求。</para>\n    /// </summary>\n    public class IMGroupSettingSetRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Message\n            {\n                public static class Types\n                {\n                    public class MessageContentAsText : IMSendMessageRequest.Types.Content.Types.MessageContentAsText\n                    {\n                    }\n\n                    public class MessageContentAsAppletCard : IMSendMessageRequest.Types.Content.Types.MessageContentAsAppletCard\n                    {\n                    }\n\n                    public class MessageContentAsAppletCoupon : IMSendMessageRequest.Types.Content.Types.MessageContentAsAppletCoupon\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n                public int MessageType { get; set; }\n\n                /// <summary>\n                /// 获取或设置文字内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public Types.MessageContentAsText? MessageContentAsText { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序引导卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"applet_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"applet_card\")]\n                public Types.MessageContentAsAppletCard? MessageContentAsAppletCard { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序券内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"applet_coupon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"applet_coupon\")]\n                public Types.MessageContentAsAppletCoupon? MessageContentAsAppletCoupon { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n        public string GroupId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置管理配置类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_setting_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_setting_type\")]\n        public int SettingType { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_list\")]\n        public IList<Types.Message>? MessageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Group/IMGroupSettingSetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/group/setting/set/ 接口的响应。</para>\n    /// </summary>\n    public class IMGroupSettingSetResponse : DouyinOpenResponse\n    {\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMRecallMessageRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/recall/msg/ 接口的请求。</para>\n    /// </summary>\n    public class IMRecallMessageRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string? ServerMessageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"conversation_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"conversation_id\")]\n        public string? ConversationShortId { get; set; }\n\n        /// <summary>\n        /// 获取或设置会话类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"conversation_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"conversation_type\")]\n        public int? ConversationType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMRecallMessageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/recall/msg/ 接口的响应。</para>\n    /// </summary>\n    public class IMRecallMessageResponse : DouyinOpenResponse\n    {\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMSendMessageGroupRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/send/msg/group/ 接口的请求。</para>\n    /// </summary>\n    public class IMSendMessageGroupRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class MessageContentAsText : IMSendMessageRequest.Types.Content.Types.MessageContentAsText\n                    {\n                    }\n\n                    public class MessageContentAsImage : IMSendMessageRequest.Types.Content.Types.MessageContentAsImage\n                    {\n                    }\n\n                    public class MessageContentAsVideo : IMSendMessageRequest.Types.Content.Types.MessageContentAsVideo\n                    {\n                    }\n\n                    public class MessageContentAsRetainConsultCard : IMSendMessageRequest.Types.Content.Types.MessageContentAsRetainConsultCard\n                    {\n                    }\n\n                    public class MessageContentAsAppletCard : IMSendMessageRequest.Types.Content.Types.MessageContentAsAppletCard\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n                public int MessageType { get; set; }\n\n                /// <summary>\n                /// 获取或设置文字内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public Types.MessageContentAsText? MessageContentAsText { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public Types.MessageContentAsImage? MessageContentAsImage { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.MessageContentAsVideo? MessageContentAsVideo { get; set; }\n\n                /// <summary>\n                /// 获取或设置留资卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"retain_consult_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"retain_consult_card\")]\n                public Types.MessageContentAsRetainConsultCard? MessageContentAsRetainConsultCard { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序引导卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"applet_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"applet_card\")]\n                public Types.MessageContentAsAppletCard? MessageContentAsAppletCard { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置群 ID。与字段 <see cref=\"GroupToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n        public string? GroupId { get; set; }\n\n        /// <summary>\n        /// 获取或设置群 Token。与字段 <see cref=\"GroupId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_token\")]\n        public string? GroupToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public Types.Content? Content { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMSendMessageGroupResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/send/msg/group/ 接口的响应。</para>\n    /// </summary>\n    public class IMSendMessageGroupResponse : DouyinOpenResponse<IMSendMessageGroupResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string ServerMessageId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMSendMessageRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/send/msg/ 接口的请求。</para>\n    /// </summary>\n    public class IMSendMessageRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Content\n            {\n                public static class Types\n                {\n                    public class MessageContentAsText\n                    {\n                        /// <summary>\n                        /// 获取或设置文字内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                        public string Text { get; set; } = string.Empty;\n                    }\n\n                    public class MessageContentAsImage\n                    {\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_id\")]\n                        public string MediaId { get; set; } = string.Empty;\n                    }\n\n                    public class MessageContentAsVideo\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string ItemId { get; set; } = string.Empty;\n                    }\n\n                    public class MessageContentAsRetainConsultCard\n                    {\n                        /// <summary>\n                        /// 获取或设置卡片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"card_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"card_id\")]\n                        public string CardId { get; set; } = string.Empty;\n                    }\n\n                    public class MessageContentAsGroupInvitation\n                    {\n                        /// <summary>\n                        /// 获取或设置群 ID。与字段 <see cref=\"GroupToken\"/> 二选一。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                        public string? GroupId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置群 Token。与字段 <see cref=\"GroupId\"/> 二选一。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"group_token\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"group_token\")]\n                        public string? GroupToken { get; set; }\n                    }\n\n                    public class MessageContentAsAppletCard\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"card_template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"card_template_id\")]\n                        public string CardTemplateId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string MicroAppId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置小程序页面路径。与字段 <see cref=\"MicroAppSchemaUrl\"/> 二选一。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                        public string? MicroAppPagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序页面参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"query\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                        public string? MicroAppPageQuery { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序 Schema URL。与字段 <see cref=\"MicroAppPagePath\"/> 二选一。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"schema\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                        public string? MicroAppSchemaUrl { get; set; }\n                    }\n\n                    public class MessageContentAsAppletCoupon\n                    {\n                        /// <summary>\n                        /// 获取或设置活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                        public long ActivityId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                        public long CouponMetaId { get; set; }\n                    }\n\n                    public class MessageContentAsAuthPrivateMessageCard\n                    {\n                        public static class Types\n                        {\n                            public class MicroAppInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置小程序 AppId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                public string AppId { get; set; } = string.Empty;\n                            }\n\n                            public class UserInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置 B 端 ClientKey。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                public string ClientKey { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置 B 端用户的 OpenId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                                public string OpenId { get; set; } = string.Empty;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置小程序信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_info\")]\n                        public Types.MicroAppInfo MicroAppInfo { get; set; } = new Types.MicroAppInfo();\n\n                        /// <summary>\n                        /// 获取或设置用户信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"to_user_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"to_user_info\")]\n                        public Types.UserInfo UserInfo { get; set; } = new Types.UserInfo();\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n                public int MessageType { get; set; }\n\n                /// <summary>\n                /// 获取或设置文字内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public Types.MessageContentAsText? MessageContentAsText { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public Types.MessageContentAsImage? MessageContentAsImage { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.MessageContentAsVideo? MessageContentAsVideo { get; set; }\n\n                /// <summary>\n                /// 获取或设置留资卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"retain_consult_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"retain_consult_card\")]\n                public Types.MessageContentAsRetainConsultCard? MessageContentAsRetainConsultCard { get; set; }\n\n                /// <summary>\n                /// 获取或设置群聊邀请内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_invitation\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_invitation\")]\n                public Types.MessageContentAsGroupInvitation? MessageContentAsGroupInvitation { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序引导卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"applet_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"applet_card\")]\n                public Types.MessageContentAsAppletCard? MessageContentAsAppletCard { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序券内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"applet_coupon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"applet_coupon\")]\n                public Types.MessageContentAsAppletCoupon? MessageContentAsAppletCoupon { get; set; }\n\n                /// <summary>\n                /// 获取或设置主动私信授权卡片内容消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_private_message_card\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_private_message_card\")]\n                public Types.MessageContentAsAuthPrivateMessageCard? MessageContentAsAuthPrivateMessageCard { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string? ClientMessageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"conversation_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"conversation_id\")]\n        public string? ConversationId { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息的接收方 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_user_id\")]\n        public string ToUserOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public Types.Content? Content { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息内容列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content_list\")]\n        public IList<Types.Content>? ContentList { get; set; }\n\n        /// <summary>\n        /// 获取或设置私信场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene\")]\n        public string Scene { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/IM/Message/IMSendMessageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /im/send/msg/ 接口的响应。</para>\n    /// </summary>\n    public class IMSendMessageResponse : DouyinOpenResponse<IMSendMessageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string ServerMessageId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Image/ImageCreateRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /image/create 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n    public class ImageCreateRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n        public string ImageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置地理位置 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string? POIId { get; set; }\n\n        /// <summary>\n        /// 获取或设置地理位置名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n        public string? POIName { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_id\")]\n        public string? MicroAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_title\")]\n        public string? MicroAppTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"micro_app_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_url\")]\n        public string? MicroAppPagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置 @用户 的 OpenId 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"at_users\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"at_users\")]\n        public IList<string>? AtUserOpenIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Image/ImageCreateResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /image/create 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n    public class ImageCreateResponse : DouyinOpenResponse<ImageCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string ItemId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Image/ImageUploadRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /image/upload 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n    public class ImageUploadRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Image/ImageUploadResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /image/upload 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-07-06 下线。\")]\n    public class ImageUploadResponse : DouyinOpenResponse<ImageUploadResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                        public string ImageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public Types.Image Image { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /item/comment/list/ 接口的请求。</para>\n    /// </summary>\n    public class ItemCommentListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置排序类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /item/comment/list/ 接口的响应。</para>\n    /// </summary>\n    public class ItemCommentListResponse : DouyinOpenResponse<ItemCommentListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Comment\n                    {\n                        /// <summary>\n                        /// 获取或设置评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                        public string CommentId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置回复的评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_id\")]\n                        public string? ReplyCommentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置该条评论发布者 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_user_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_user_id\")]\n                        public string CommentUserId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置该条评论发布者的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string? CommentUserNickname { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置该条评论发布者的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string? CommentUserAvatarUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置点赞数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                        public int DiggCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_comment_total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_total\")]\n                        public int ReplyCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否被置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n                        public bool IsTop { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentReplyListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /item/comment/reply/list/ 接口的请求。</para>\n    /// </summary>\n    public class ItemCommentReplyListRequest : ItemCommentListRequest\n    {\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CommentId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentReplyListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /item/comment/reply/list/ 接口的响应。</para>\n    /// </summary>\n    public class ItemCommentReplyListResponse : DouyinOpenResponse<ItemCommentReplyListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ItemCommentListResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentReplyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /item/comment/reply/ 接口的请求。</para>\n    /// </summary>\n    public class ItemCommentReplyRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string? CommentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string Content { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentReplyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /item/comment/reply/ 接口的响应。</para>\n    /// </summary>\n    public class ItemCommentReplyResponse : DouyinOpenResponse<ItemCommentReplyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置评论 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                public string CommentId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentTopRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /item/comment/top/ 接口的请求。</para>\n    /// </summary>\n    public class ItemCommentTopRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否置顶。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"top\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n        public bool IsTop { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Item/Comment/ItemCommentTopResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /item/comment/top/ 接口的响应。</para>\n    /// </summary>\n    public class ItemCommentTopResponse : DouyinOpenResponse<ItemCommentTopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/JS/JSGetTicketRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /js/getticket/ 接口的请求。</para>\n    /// </summary>\n    public class JSGetTicketRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/JS/JSGetTicketResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /js/getticket/ 接口的响应。</para>\n    /// </summary>\n    public class JSGetTicketResponse : DouyinOpenResponse<JSGetTicketResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 JS 接口调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ticket\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ticket\")]\n                public string Ticket { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public long ExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserDeletePurchaseInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/delete/purchase/info/ 接口的请求。</para>\n    /// </summary>\n    public class MarketServiceUserDeletePurchaseInfoRequest : DouyinOpenRequest\n    {\n\n        /// <summary>\n        /// 获取或设置服务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string ServiceId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务规格 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_mode_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_mode_id\")]\n        public string ServiceModeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_trade_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_trade_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否为测试环境。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_test_env\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_test_env\")]\n        public bool IsTestEnvironment { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserDeletePurchaseInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/delete/purchase/info/ 接口的响应。</para>\n    /// </summary>\n    public class MarketServiceUserDeletePurchaseInfoResponse : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserInsertPurchaseInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/insert/purchase/info/ 接口的请求。</para>\n    /// </summary>\n    public class MarketServiceUserInsertPurchaseInfoRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置服务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string ServiceId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务规格 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_mode_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_mode_id\")]\n        public string ServiceModeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_trade_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_trade_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务订购时间毫秒级时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"purchase_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"purchase_time\")]\n        public long PurchaseTimeMilliseconds { get; set; }\n\n        /// <summary>\n        /// 获取或设置周期类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"period_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"period_type\")]\n        public int PeriodType { get; set; }\n\n        /// <summary>\n        /// 获取或设置订购时长值（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"duration\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n        public int? Duration { get; set; }\n\n        /// <summary>\n        /// 获取或设置订购使用次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"usage_times\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"usage_times\")]\n        public int? UsageTimes { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为测试环境。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_test_env\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_test_env\")]\n        public bool IsTestEnvironment { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserInsertPurchaseInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/insert/purchase/info/ 接口的响应。</para>\n    /// </summary>\n    public class MarketServiceUserInsertPurchaseInfoResponse : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserPurchaseListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /market/service/user/purchase/list/ 接口的请求。</para>\n    /// </summary>\n    public class MarketServiceUserPurchaseListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置服务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ServiceId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否为测试环境。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool IsTestEnvironment { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserPurchaseListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /market/service/user/purchase/list/ 接口的响应。</para>\n    /// </summary>\n    public class MarketServiceUserPurchaseListResponse : DouyinOpenResponse<MarketServiceUserPurchaseListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class PurchaseInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置服务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n                        public string ServiceId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_name\")]\n                        public string ServiceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_status\")]\n                        public int ServiceStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"specification_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"specification_type\")]\n                        public int SpecificationType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"specification_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"specification_title\")]\n                        public string SpecificationTitle { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_mode_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_mode_id\")]\n                        public string ServiceModeId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置剩余服务次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remain_service_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remain_service_times\")]\n                        public int? RemainServiceTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务生效时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effective_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effective_time\")]\n                        public long? EffectiveTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务失效时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                        public long? ExpireTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置购买信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"purchase_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"purchase_info_list\")]\n                public Types.PurchaseInfo[] PurchaseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserRemainTimesDecreaseRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/remaintimes/decr/ 接口的请求。</para>\n    /// </summary>\n    public class MarketServiceUserRemainTimesDecreaseRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置服务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string ServiceId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务规格 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_mode_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_mode_id\")]\n        public string ServiceModeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_trade_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_trade_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置扣减次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n        public int Count { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为测试环境。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_test_env\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_test_env\")]\n        public bool IsTestEnvironment { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/MarketService/MarketServiceUserRemainTimesDecreaseResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /market/service/user/remaintimes/decr/ 接口的响应。</para>\n    /// </summary>\n    public class MarketServiceUserRemainTimesDecreaseResponse : DouyinOpenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Message/MessageOnceSendRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /message/once/send/ 接口的请求。</para>\n    /// </summary>\n    public class MessageOnceSendRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置客户端消息标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_msg_id\")]\n        public string? ClientMessageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息的接收方 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_open_id\")]\n        public string ToUserOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public string TemplateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息内容自定义字段字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_arg_map\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_arg_map\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IDictionary<string, string>? TemplateArgumentMap { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息跳转链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schema_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schema_url\")]\n        public string? SchemaUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Message/MessageOnceSendResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /message/once/send/ 接口的响应。</para>\n    /// </summary>\n    public class MessageOnceSendResponse : DouyinOpenResponse<MessageOnceSendResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Namek/NamekFulfilmentPrepareRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /namek/fulfilment/prepare 接口的请求。</para>\n    /// </summary>\n    public class NamekFulfilmentPrepareRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置二维码解析数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? EncryptedData { get; set; }\n\n        /// <summary>\n        /// 获取或设置团购券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Code { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Namek/NamekFulfilmentPrepareResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /namek/fulfilment/prepare 接口的响应。</para>\n    /// </summary>\n    public class NamekFulfilmentPrepareResponse : DouyinOpenResponse<NamekFulfilmentPrepareResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        public static class Types\n                        {\n                            public class Amount : GoodLifeFulfilmentCertificateGetV1Response.Types.Data.Types.Certificate.Types.Amount\n                            {\n                            }\n\n                            public class SKU : GoodLifeFulfilmentCertificateGetV1Response.Types.Data.Types.Certificate.Types.SKU\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团购 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                        public Types.SKU SKU { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置过期时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                        public long ExpireTimeUnixMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置一次验券的标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n                public string VerifyToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置团购券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthAccessTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/access_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthAccessTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientSecret。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"authorization_code\";\n\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string Code { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthAccessTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/access_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthAccessTokenResponse : DouyinOpenResponse<OAuthAccessTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置接口调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置授权用户唯一标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户授权的作用域。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scope\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n                public string Scope { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public long ExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置刷新令牌有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_expires_in\")]\n                public long RefreshTokenExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthBusinessScopesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/business_scopes/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthBusinessScopesRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthBusinessScopesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/business_scopes/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthBusinessScopesResponse : DouyinOpenResponse\n    {\n        /// <summary>\n        /// 获取或设置接口返回消息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public string? Message { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public string[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthBusinessTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/business_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthBusinessTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 WebhookSecret。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.WebhookSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? WebhookSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置能力范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n        public string? Scope { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthBusinessTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/business_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthBusinessTokenResponse : DouyinOpenResponse<OAuthBusinessTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置经营关系调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_token\")]\n                public string BusinessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置经营关系调用凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_expires_in\")]\n                public long BusinessExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置经营关系刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_refresh_token\")]\n                public string BusinessRefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置经营关系刷新令牌有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_refresh_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_refresh_expires_in\")]\n                public long BusinessRefreshTokenExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthClientTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/client_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthClientTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientSecret。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"client_credential\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthClientTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/client_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthClientTokenResponse : DouyinOpenResponse<OAuthClientTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置接口调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public long ExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRefreshBusinessTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_biz_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthRefreshBusinessTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音开放平台 WebhookSecret。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.WebhookSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? WebhookSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置经营关系 RefreshToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string BusinessRefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRefreshBusinessTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_biz_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthRefreshBusinessTokenResponse : DouyinOpenResponse<OAuthRefreshBusinessTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : OAuthBusinessTokenResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRefreshTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthRefreshTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRefreshTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthRefreshTokenResponse : DouyinOpenResponse<OAuthRefreshTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : OAuthAccessTokenResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRenewRefreshTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/renew_refresh_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthRenewRefreshTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音开放平台 ClientKey。如果不指定将使用构造 <see cref=\"DouyinOpenClient\"/> 时的 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/OAuthRenewRefreshTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/renew_refresh_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthRenewRefreshTokenResponse : DouyinOpenResponse<OAuthRenewRefreshTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置刷新令牌有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public long RefreshTokenExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/User/OAuthUserInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/userinfo/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthUserInfoRequest : DouyinOpenRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/OAuth/User/OAuthUserInfoResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/userinfo/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthUserInfoResponse : DouyinOpenResponse<OAuthUserInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户的 UnionId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"union_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"union_id\")]\n                public string? UnionId { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                public string Nickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                public string? AvatarUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户性别。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-03-04 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"gender\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n                public int Gender { get; set; }\n\n                /// <summary>\n                /// 获取或设置账号类型。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-03-04 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"e_account_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"e_account_role\")]\n                public string? EAccountRole { get; set; }\n\n                /// <summary>\n                /// 获取或设置国家。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-03-04 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"country\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country\")]\n                public string? Country { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-03-04 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? Province { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-03-04 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? City { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Open/OpenGetTicketRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /open/getticket 接口的请求。</para>\n    /// </summary>\n    public class OpenGetTicketRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Open/OpenGetTicketResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /open/getticket 接口的响应。</para>\n    /// </summary>\n    public class OpenGetTicketResponse : DouyinOpenResponse<OpenGetTicketResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 JS 接口调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ticket\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ticket\")]\n                public string Ticket { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public long ExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Coupon/POICouponSyncCouponAvailableV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/coupon/sync/coupon_available 接口的请求。</para>\n    /// </summary>\n    public class POICouponSyncCouponAvailableV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Availability\n            {\n                public static class Types\n                {\n                    public class SPUExternalInfo : POICouponSyncV2Request.Types.Availability.Types.SPUExternalInfo\n                    {\n                    }\n\n                    public class SupplierExternalInfo : POICouponSyncV2Request.Types.Availability.Types.SupplierExternalInfo\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_info\")]\n                public Entry? Entry { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品维度可用信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_ext_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_info\")]\n                public Types.SPUExternalInfo? SPUExternalInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺维度可用信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_ext_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_info\")]\n                public Types.SupplierExternalInfo? SupplierExternalInfo { get; set; }\n            }\n\n            public class Entry\n            {\n                public static class Types\n                {\n                    public class EntryMiniApp : POISupplierSyncRequest.Types.Service.Types.Entry.Types.EntryMiniApp\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入口类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                public int EntryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置入口链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_url\")]\n                public string? EntryUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_miniApp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_miniApp\")]\n                public Types.EntryMiniApp? EntryMiniApp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置优惠券外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_coupon_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_coupon_id\")]\n        public string ExternalCouponId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置可用列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"available_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"available_info\")]\n        public IList<Types.Availability>? AvailabilityList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Coupon/POICouponSyncCouponAvailableV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/coupon/sync/coupon_available 接口的响应。</para>\n    /// </summary>\n    public class POICouponSyncCouponAvailableV2Response : DouyinOpenResponse<POICouponSyncCouponAvailableV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置是否同步成功。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_suc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_suc\")]\n                public bool IsSucceeded { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Coupon/POICouponSyncV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/coupon/sync 接口的请求。</para>\n    /// </summary>\n    public class POICouponSyncV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Availability\n            {\n                public static class Types\n                {\n                    public class SPUExternalInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置商品外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n                        public string? SPUExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_ids\")]\n                        public IList<string>? SupplierExternalIdList { get; set; }\n                    }\n\n                    public class SupplierExternalInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置商品外部 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_ext_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_ids\")]\n                        public IList<string>? SPUExternalIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string? SupplierExternalId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_info\")]\n                public Entry? Entry { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品维度可用信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_ext_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_info\")]\n                public Types.SPUExternalInfo? SPUExternalInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺维度可用信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_ext_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_info\")]\n                public Types.SupplierExternalInfo? SupplierExternalInfo { get; set; }\n            }\n\n            public class Entry\n            {\n                public static class Types\n                {\n                    public class EntryMiniApp : POISupplierSyncRequest.Types.Service.Types.Entry.Types.EntryMiniApp\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入口类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                public int EntryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置入口链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_url\")]\n                public string? EntryUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_miniApp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_miniApp\")]\n                public Types.EntryMiniApp? EntryMiniApp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置优惠券外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_coupon_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_coupon_id\")]\n        public string ExternalCouponId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置领取开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"claim_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"claim_start_time\")]\n        public long? ClaimStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置领取结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"claim_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"claim_end_time\")]\n        public long? ClaimEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置优惠券属性字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"attribute\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"attribute\")]\n        public IDictionary<int, object> AttributeMap { get; set; } = new Dictionary<int, object>();\n\n        /// <summary>\n        /// 获取或设置可用列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"available_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"available_info\")]\n        public IList<Types.Availability>? AvailabilityList { get; set; }\n\n        /// <summary>\n        /// 获取或设置入口信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entry_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entry_info\")]\n        public Types.Entry? Entry { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Coupon/POICouponSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/coupon/sync 接口的响应。</para>\n    /// </summary>\n    public class POICouponSyncV2Response : DouyinOpenResponse<POICouponSyncV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置是否同步成功。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_suc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_suc\")]\n                public bool IsSucceeded { get; set; }\n\n                /// <summary>\n                /// 获取或设置优惠券 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n                public string? CouponId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderCancelRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/cancel 接口的请求。</para>\n    /// </summary>\n    public class POIExternalHotelOrderCancelRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单支付状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderCancelResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/cancel 接口的响应。</para>\n    /// </summary>\n    public class POIExternalHotelOrderCancelResponse : DouyinOpenResponse<POIExternalHotelOrderCancelResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单确认状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderCommitRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/commit 接口的请求。</para>\n    /// </summary>\n    public class POIExternalHotelOrderCommitRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Customer\n            {\n                /// <summary>\n                /// 获取或设置英文姓。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"surname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"surname\")]\n                public string? FamilyName { get; set; }\n\n                /// <summary>\n                /// 获取或设置英文名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"given_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"given_name\")]\n                public string? GivenName { get; set; }\n\n                /// <summary>\n                /// 获取或设置中文全称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cn_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cn_name\")]\n                public string? ChineseName { get; set; }\n            }\n\n            public class DatePrice\n            {\n                /// <summary>\n                /// 获取或设置当日日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string? DateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置当日价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date_price\")]\n                public int Price { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置入住日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"check_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"check_in\")]\n        public string? CheckinDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置离店日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"check_out\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"check_out\")]\n        public string? CheckoutDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置入住人列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"customer_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"customer_list\")]\n        public IList<Types.Customer>? CustomerList { get; set; }\n\n        /// <summary>\n        /// 获取或设置预订人姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"customer_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"customer_name\")]\n        public string CustomerName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预订人电话。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"customer_phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"customer_phone\")]\n        public string CustomerPhoneNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置房间外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单支付状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置每日价格列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"date_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"date_price\")]\n        public IList<Types.DatePrice>? DatePriceList { get; set; }\n\n        /// <summary>\n        /// 获取或设置总价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_price\")]\n        public int TotalPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置预定数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reserve_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reserve_amount\")]\n        public int? ReserveCount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderCommitResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/commit 接口的响应。</para>\n    /// </summary>\n    public class POIExternalHotelOrderCommitResponse : DouyinOpenResponse<POIExternalHotelOrderCommitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderStatusRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/status 接口的请求。</para>\n    /// </summary>\n    public class POIExternalHotelOrderStatusRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单支付状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelOrderStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/hotel/order/status 接口的响应。</para>\n    /// </summary>\n    public class POIExternalHotelOrderStatusResponse : DouyinOpenResponse<POIExternalHotelOrderStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单确认状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelSKURequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/ext/hotel/sku 接口的请求。</para>\n    /// </summary>\n    public class POIExternalHotelSKURequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拉取价格时间区间开始时间字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string StartDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拉取价格时间区间结束时间字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string EndDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/Hotel/POIExternalHotelSKUResponse.cs",
    "content": "﻿using System.Collections;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/ext/hotel/sku 接口的响应。</para>\n    /// </summary>\n    public class POIExternalHotelSKUResponse : DouyinOpenResponse<POIExternalHotelSKUResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                /// <summary>\n                /// 获取或设置 SPU 外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n                public string SPUExternalId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置拉取价格时间区间开始时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_date\")]\n                public string StartDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置拉取价格时间区间结束时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n                public string EndDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置房型价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                public int Stock { get; set; }\n            }\n\n            public class Data : DouyinOpenResponseData, IList<SKU>\n            {\n                private readonly IList<SKU> _list = new List<SKU>();\n\n                public SKU this[int index]\n                {\n                    get => _list[index];\n                    set => _list[index] = value;\n                }\n\n                public int Count\n                {\n                    get { return _list.Count; }\n                }\n\n                public bool IsReadOnly\n                {\n                    get { return _list.IsReadOnly; }\n                }\n\n                public void Add(SKU item)\n                {\n                    _list.Add(item);\n                }\n\n                public void Clear()\n                {\n                    _list.Clear();\n                }\n\n                public bool Contains(SKU item)\n                {\n                    return _list.Contains(item);\n                }\n\n                public void CopyTo(SKU[] array, int arrayIndex)\n                {\n                    _list.CopyTo(array, arrayIndex);\n                }\n\n                public IEnumerator<SKU> GetEnumerator()\n                {\n                    return _list.GetEnumerator();\n                }\n\n                public int IndexOf(SKU item)\n                {\n                    return _list.IndexOf(item);\n                }\n\n                public void Insert(int index, SKU item)\n                {\n                    _list.Insert(index, item);\n                }\n\n                public bool Remove(SKU item)\n                {\n                    return _list.Remove(item);\n                }\n\n                public void RemoveAt(int index)\n                {\n                    _list.RemoveAt(index);\n                }\n\n                IEnumerator IEnumerable.GetEnumerator()\n                {\n                    return ((IEnumerable)_list).GetEnumerator();\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCancelRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/cancel 接口的请求。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCancelRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置预约券券码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n        public IList<string>? CodeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCancelResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/cancel 接口的响应。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCancelResponse : DouyinOpenResponse<POIExternalPresaleGrouponOrderCancelResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n                public string OrderExternalId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置预约券券码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n                public string[] CodeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCommitRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/commit 接口的请求。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCommitRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCommitResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/commit 接口的响应。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCommitResponse : DouyinOpenResponse<POIExternalPresaleGrouponOrderCommitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n                public string OrderExternalId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置预约券券码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n                public string[] CodeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCreateRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/create 接口的请求。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCreateRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cps_user_short_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cps_user_short_id\")]\n        public string? CPSUserShortId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人分佣率（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cps_take_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cps_take_rate\")]\n        public decimal? COSTakeRate { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户预留手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_phone\")]\n        public string? UserPhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置购买数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n        public int Count { get; set; }\n\n        /// <summary>\n        /// 获取或设置总价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_price\")]\n        public int TotalPrice { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/ext/presale_groupon/order/create 接口的响应。</para>\n    /// </summary>\n    public class POIExternalPresaleGrouponOrderCreateResponse : DouyinOpenResponse<POIExternalPresaleGrouponOrderCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n                public string OrderExternalId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderBillTokenRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/order/bill/token 接口的请求。</para>\n    /// </summary>\n    public class POIOrderBillTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderBillTokenResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/order/bill/token 接口的响应。</para>\n    /// </summary>\n    public class POIOrderBillTokenResponse : DouyinOpenResponse<POIOrderBillTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置账单下载凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bill_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bill_token\")]\n                public string DownloadToken { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmCancelPrepareRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm/cancel_prepare 接口的请求。</para>\n    /// </summary>\n    public class POIOrderConfirmCancelPrepareRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置核销单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"confirm_apply_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"confirm_apply_id\")]\n        public string ConfirmApplyId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置取消原因。\n        /// <para>默认值：USER_CANCEL</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public string CancelReason { get; set; } = \"USER_CANCEL\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmCancelPrepareResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm/cancel_prepare 接口的响应。</para>\n    /// </summary>\n    public class POIOrderConfirmCancelPrepareResponse : DouyinOpenResponse<POIOrderConfirmCancelPrepareResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置核销单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"confirm_apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"confirm_apply_id\")]\n                public string ConfirmApplyId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券码 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n                public string[] CodeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmPrepareRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm/prepare 接口的请求。</para>\n    /// </summary>\n    public class POIOrderConfirmPrepareRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券码 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n        public IList<string> CodeList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmPrepareResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm/prepare 接口的响应。</para>\n    /// </summary>\n    public class POIOrderConfirmPrepareResponse : DouyinOpenResponse<POIOrderConfirmPrepareResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置核销单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"confirm_apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"confirm_apply_id\")]\n                public string ConfirmApplyId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm 接口的请求。</para>\n    /// </summary>\n    public class POIOrderConfirmRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券码 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n        public IList<string> CodeList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderConfirmResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/confirm 接口的响应。</para>\n    /// </summary>\n    public class POIOrderConfirmResponse : DouyinOpenResponse<POIOrderConfirmResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n                public string OrderExternalId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券码 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_list\")]\n                public string[] CodeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderListTokenRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/order/list/token 接口的请求。</para>\n    /// </summary>\n    public class POIOrderListTokenRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderListTokenResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/order/list/token 接口的响应。</para>\n    /// </summary>\n    public class POIOrderListTokenResponse : DouyinOpenResponse<POIOrderListTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单下载凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_file_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_file_token\")]\n                public string DownloadToken { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderStatusRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/status 接口的请求。</para>\n    /// </summary>\n    public class POIOrderStatusRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ext_id\")]\n        public string OrderExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单确认状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/status 接口的响应。</para>\n    /// </summary>\n    public class POIOrderStatusResponse : DouyinOpenResponse<POIOrderStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderSyncRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/sync 接口的请求。</para>\n    /// </summary>\n    public class POIOrderSyncRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class ExternalShop\n            {\n                /// <summary>\n                /// 获取或设置商户外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ext_shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ext_shop_id\")]\n                public string? ExternalShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public string? ShopId { get; set; }\n            }\n\n            public class MicroApp\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string? AppId { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的小程序 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_open_id\")]\n                public string? UserOpenId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置发送请求时的毫秒级时间戳。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"date_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"date_time\")]\n        public long? DateTimeUnixMilliseconds { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单结构 JSON。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_detail\")]\n        public string? OrderDetailJson { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家外部信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_shop_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_shop_info\")]\n        public Types.ExternalShop? ExternalShop { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序对接信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mini_app\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mini_app\")]\n        public Types.MicroApp? MicroApp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Order/POIOrderSyncResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/order/sync 接口的响应。</para>\n    /// </summary>\n    public class POIOrderSyncResponse : DouyinOpenResponse<POIOrderSyncResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POIBaseQueryAMapRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/base/query/amap 接口的请求。</para>\n    /// </summary>\n    public class POIBaseQueryAMapRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置高德地图 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AMapId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POIBaseQueryAMapResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/base/query/amap 接口的响应。</para>\n    /// </summary>\n    public class POIBaseQueryAMapResponse : DouyinOpenResponse<POIBaseQueryAMapResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : POIQueryResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POIQueryRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/query 接口的请求。</para>\n    /// </summary>\n    public class POIQueryRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置高德地图 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AMapId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POIQueryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/query 接口的响应。</para>\n    /// </summary>\n    public class POIQueryResponse : DouyinOpenResponse<POIQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置高德地图 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amap_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amap_id\")]\n                public string AMapId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 POI 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                public string POIName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                public decimal? Longitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                public decimal? Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置所在省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? Province { get; set; }\n\n                /// <summary>\n                /// 获取或设置所在城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? City { get; set; }\n\n                /// <summary>\n                /// 获取或设置地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? Address { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POISearchKeywordRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/search/keyword 接口的请求。</para>\n    /// </summary>\n    public class POISearchKeywordRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置查询关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string Keyword { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置查询城市。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? City { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/POISearchKeywordResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/search/keyword 接口的响应。</para>\n    /// </summary>\n    public class POISearchKeywordResponse : DouyinOpenResponse<POISearchKeywordResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class POI\n                    {\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 POI 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                        public string POIName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置国家编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                        public string CountryCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置国家。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"country\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"country\")]\n                        public string Country { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string Province { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n                        public string CityCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string City { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区县。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"district\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                        public string District { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string Address { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置经纬度坐标（格式：X,Y）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"location\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"location\")]\n                        public string Location { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置地理位置列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pois\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pois\")]\n                public Types.POI[] POIList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanDetailRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/detail 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanDetailRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置通用佣金计划 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id_list\")]\n        public IList<long> PlanIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanDetailResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/detail 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanDetailResponse : DouyinOpenResponse<POICommonPlanDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Data\n                    {\n                        /// <summary>\n                        /// 获取或设置计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n                        public long PlanId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置带货 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gmv\")]\n                        public int GMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已核销 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"used_gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"used_gmv\")]\n                        public int UsedGMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_commission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_commission\")]\n                        public int TalentCommission { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据产出日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string DateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置计划带货数据字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public IDictionary<string, Types.Data> DataMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanSaveRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/save 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanSaveRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n        public long SPUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n        public long? PlanId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人带货场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content_type\")]\n        public int ContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人佣金率。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n        public int CommissionRate { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanSaveResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/save 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanSaveResponse : DouyinOpenResponse<POICommonPlanSaveResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n                public long PlanId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentDetailRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/detail 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanTalentDetailRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置通用佣金计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n        public long PlanId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id_list\")]\n        public IList<string> DouyinIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentDetailResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/detail 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanTalentDetailResponse : DouyinOpenResponse<POICommonPlanTalentDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Data\n                    {\n                        /// <summary>\n                        /// 获取或设置带货 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gmv\")]\n                        public int GMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已核销 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"used_gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"used_gmv\")]\n                        public int UsedGMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_cnt\")]\n                        public int LiveCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置短视频数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_video_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_video_cnt\")]\n                        public int ShortVideoCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_commission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_commission\")]\n                        public int TalentCommission { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据产出日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string DateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置达人带货数据字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public IDictionary<string, Types.Data> DataMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/list 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanTalentListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置通用佣金计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n        public long PlanId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/list 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanTalentListResponse : DouyinOpenResponse<POICommonPlanTalentListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Data\n                    {\n                        /// <summary>\n                        /// 获取或设置达人带货场景。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content_type\")]\n                        public int ContentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                        public string DouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置达人抖音昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置带货 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gmv\")]\n                        public int GMV { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据产出日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string DateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置达人带货数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Data[] DataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_count\")]\n                public int PageCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentMediaListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/media/list 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanTalentMediaListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置通用佣金计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n        public long PlanId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置达人带货场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content_type\")]\n        public int ContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n        public string DouyinId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanTalentMediaListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/talent/media/list 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanTalentMediaListResponse : DouyinOpenResponse<POICommonPlanTalentMediaListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Data\n                    {\n                        /// <summary>\n                        /// 获取或设置达人带货场景。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content_type\")]\n                        public int ContentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人带货场景 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content_open_id\")]\n                        public string ContentOpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置带货 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gmv\")]\n                        public int GMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已核销 GMV。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"used_gmv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"used_gmv\")]\n                        public int UsedGMV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"play_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"play_cnt\")]\n                        public int PlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_commission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_commission\")]\n                        public int TalentCommission { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据产出日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string DateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置达人带货数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Data[] DataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_count\")]\n                public int PageCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanUpdateStatusRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/update/status 接口的请求。</para>\n    /// </summary>\n    public class POICommonPlanUpdateStatusRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Plan\n            {\n                /// <summary>\n                /// 获取或设置计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n                public long PlanId { get; set; }\n\n                /// <summary>\n                /// 获取或设置计划状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待更新的计划列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_update_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_update_list\")]\n        public IList<Types.Plan> PlanList { get; set; } = new List<Types.Plan>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POICommonPlanUpdateStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/common/plan/update/status 接口的响应。</para>\n    /// </summary>\n    public class POICommonPlanUpdateStatusResponse : DouyinOpenResponse<POICommonPlanUpdateStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置更新失败的计划 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_plan_id_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_plan_id_list\")]\n                public long[]? FailedPlanIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POIPlanListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/plan/list 接口的请求。</para>\n    /// </summary>\n    public class POIPlanListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n        public long SPUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Plan/POIPlanListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/plan/list 接口的响应。</para>\n    /// </summary>\n    public class POIPlanListResponse : DouyinOpenResponse<POIPlanListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Data\n                    {\n                        /// <summary>\n                        /// 获取或设置计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n                        public long PlanId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置计划状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人带货场景。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content_type\")]\n                        public int ContentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金率。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                        public int CommissionRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据产出日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                public string DateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置通用佣金计划列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Data[] DataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_count\")]\n                public int PageCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SKU/POISKUSyncRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/sku/sync 接口的请求。</para>\n    /// </summary>\n    public class POISKUSyncRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                /// <summary>\n                /// 获取或设置 SKU 属性字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attributes\")]\n                public IDictionary<int, object> AttributeMap { get; set; } = new Dictionary<int, object>();\n\n                /// <summary>\n                /// 获取或设置价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置在线状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                public int Stock { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SKU/POISKUSyncResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/sku/sync 接口的响应。</para>\n    /// </summary>\n    public class POISKUSyncResponse : DouyinOpenResponse<POISKUSyncResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUGetV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/spu/get 接口的请求。</para>\n    /// </summary>\n    public class POISPUGetV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否需要商品草稿数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool RequireSPUDraft { get; set; }\n\n        /// <summary>\n        /// 获取或设置需要商品草稿数据的数目。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? SPUDraftCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置供应商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? SupplierIdForFilterReasonList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUGetV2Response.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/spu/get 接口的响应。</para>\n    /// </summary>\n    public class POISPUGetV2Response : DouyinOpenResponse<POISPUGetV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class SPU\n                    {\n                        public static class Types\n                        {\n                            public class Entry\n                            {\n                                public static class Types\n                                {\n                                    public class EntryMiniApp : POISupplierQueryResponse.Types.Data.Types.Detail.Types.Service.Types.Entry.Types.EntryMiniApp\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置入口类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                                public int EntryType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置入口链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry_url\")]\n                                public string? EntryUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置小程序入口信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry_miniApp\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry_miniApp\")]\n                                public Types.EntryMiniApp? EntryMiniApp { get; set; }\n                            }\n\n                            public class Highlight\n                            {\n                                /// <summary>\n                                /// 获取或设置介绍。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"content\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                                public string Content { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置优先级。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"priority\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"priority\")]\n                                public int Priority { get; set; }\n                            }\n\n                            public class SPUFilterStatus\n                            {\n                                public static class Types\n                                {\n                                    public class SPUPOIFilterStatus\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置过滤码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                        public int Code { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置是否被过滤。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"filter\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"filter\")]\n                                        public bool IsFilter { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置 POI ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                                        public string? POIId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置过滤原因。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                        public string? Reason { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SPU POI 过滤结果列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"spu_poi_filter_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"spu_poi_filter_status\")]\n                                public Types.SPUPOIFilterStatus[]? SPUPOIFilterStatusList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置门店 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                                public string? SupplierId { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 SPU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                        public string SPUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SPU 外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n                        public string SPUExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id_list\")]\n                        public string[] SupplierExternalIdList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SPU 类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_type\")]\n                        public int SPUType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置入口信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"entry_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_info\")]\n                        public Types.Entry? Entry { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置前台品类标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"front_category_tag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"front_category_tag\")]\n                        public string[]? FrontCategoryTagList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置推荐语。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recommend_word\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recommend_word\")]\n                        public string? RecommendWord { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排序权重。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sort_weight\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sort_weight\")]\n                        public long? SortWeight { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置原价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_price\")]\n                        public int OriginPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public int Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_list\")]\n                        public string[]? ImageUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_settle_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_settle_type\")]\n                        public int? SettleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣率（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"take_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"take_rate\")]\n                        public decimal? TakeRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SPU 属性字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attribute\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attribute\")]\n                        public IDictionary<int, object> AttributeMap { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品亮点列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"highlights\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"highlights\")]\n                        public Types.Highlight[]? HighlightList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置在线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置在线状态说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_desc\")]\n                        public string StatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stock\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n                        public int Stock { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SPU 过滤结果列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_filter_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_filter_status\")]\n                        public Types.SPUFilterStatus[]? SPUFilterStatusList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SPU 详细信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_detail\")]\n                public Types.SPU SPUDetail { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SPU 草稿列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_draft\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_draft\")]\n                public Types.SPU[]? SPUDraftList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUStatusSyncV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/status_sync 接口的请求。</para>\n    /// </summary>\n    public class POISPUStatusSyncV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id_list\")]\n        public IList<string> SPUExternalIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置在线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUStatusSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/status_sync 接口的响应。</para>\n    /// </summary>\n    public class POISPUStatusSyncV2Response : DouyinOpenResponse<POISPUStatusSyncV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 SPU 外部 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_ext_id_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id_list\")]\n                public string[] SPUExternalIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUStockUpdateV2Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/stock_update 接口的请求。</para>\n    /// </summary>\n    public class POISPUStockUpdateV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置库存数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n        public int Stock { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUStockUpdateV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/stock_update 接口的响应。</para>\n    /// </summary>\n    public class POISPUStockUpdateV2Response : DouyinOpenResponse<POISPUStockUpdateV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 SPU 外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n                public string SPUExternalId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUSyncV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/sync 接口的请求。</para>\n    /// </summary>\n    public class POISPUSyncV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Entry\n            {\n                public static class Types\n                {\n                    public class EntryMiniApp : POISupplierSyncRequest.Types.Service.Types.Entry.Types.EntryMiniApp\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入口类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                public int EntryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置入口链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_url\")]\n                public string? EntryUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry_miniApp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry_miniApp\")]\n                public Types.EntryMiniApp? EntryMiniApp { get; set; }\n            }\n\n            public class Highlight\n            {\n                /// <summary>\n                /// 获取或设置介绍。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                public string Content { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置优先级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"priority\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"priority\")]\n                public int Priority { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置门店外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id_list\")]\n        public IList<string> SupplierExternalIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置商品名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SPU 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_type\")]\n        public int SPUType { get; set; }\n\n        /// <summary>\n        /// 获取或设置入口信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entry_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entry_info\")]\n        public Types.Entry? Entry { get; set; }\n\n        /// <summary>\n        /// 获取或设置前台品类标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"front_category_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"front_category_tag\")]\n        public IList<string>? FrontCategoryTagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置推荐语。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recommend_word\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recommend_word\")]\n        public string? RecommendWord { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序权重。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sort_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sort_weight\")]\n        public long? SortWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置原价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin_price\")]\n        public int OriginPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置价格（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n        public int Price { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_list\")]\n        public IList<string>? ImageUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mp_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mp_settle_type\")]\n        public int? SettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分佣率（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"take_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"take_rate\")]\n        public decimal? TakeRate { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SPU 属性字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"attribute\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"attribute\")]\n        public IDictionary<int, object> AttributeMap { get; set; } = new Dictionary<int, object>();\n\n        /// <summary>\n        /// 获取或设置商品亮点列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"highlights\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"highlights\")]\n        public IList<Types.Highlight>? HighlightList { get; set; }\n\n        /// <summary>\n        /// 获取或设置下单是否依赖日期。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_depends_on_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_depends_on_date\")]\n        public bool? IsOrderDependsOnDate { get; set; }\n\n        /// <summary>\n        /// 获取或设置在线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock\")]\n        public int Stock { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/sync 接口的响应。</para>\n    /// </summary>\n    public class POISPUSyncV2Response : DouyinOpenResponse<POISPUSyncV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 SPU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                public string SPUId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUTakeRateSyncV2Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/take_rate/sync 接口的请求。</para>\n    /// </summary>\n    public class POISPUTakeRateSyncV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU 外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_ext_id\")]\n        public string SPUExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分佣率（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"take_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"take_rate\")]\n        public decimal TakeRate { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n        public string DouyinId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置在线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/SPU/POISPUTakeRateSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/spu/take_rate/sync 接口的响应。</para>\n    /// </summary>\n    public class POISPUTakeRateSyncV2Response : DouyinOpenResponse<POISPUTakeRateSyncV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置 SPU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                public string SPUId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/ServiceProvider/POIServiceProviderSyncV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/service_provider/sync 接口的请求。</para>\n    /// </summary>\n    public class POIServiceProviderSyncV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class BusinessLicense\n            {\n                /// <summary>\n                /// 获取或设置营业执照外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_ext_id\")]\n                public string? ExternalId { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                public string? Company { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string? Url { get; set; }\n            }\n\n            public class IndustryLicense\n            {\n                /// <summary>\n                /// 获取或设置行业许可证外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_license_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_license_ext_id\")]\n                public string? ExternalId { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业许可证链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string? Url { get; set; }\n            }\n\n            public class Contact\n            {\n                /// <summary>\n                /// 获取或设置姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string? Name { get; set; }\n\n                /// <summary>\n                /// 获取或设置邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                public string? Email { get; set; }\n\n                /// <summary>\n                /// 获取或设置电话号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                public string? PhoneNumber { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家营业执照信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_license\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_license\")]\n        public Types.BusinessLicense? BusinessLicense { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家行业许可证信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_license\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_license\")]\n        public IList<Types.IndustryLicense>? IndustryLicenseList { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification_contact\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_contact\")]\n        public Types.Contact? Contact { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/ServiceProvider/POIServiceProviderSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/service_provider/sync 接口的响应。</para>\n    /// </summary>\n    public class POIServiceProviderSyncV2Response : DouyinOpenResponse<POIServiceProviderSyncV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierMatchV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/supplier/match 接口的请求。</para>\n    /// </summary>\n    public class POISupplierMatchV2Request : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class MatchData\n            {\n                /// <summary>\n                /// 获取或设置高德地图 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amap_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amap_id\")]\n                public string? AMapId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string? POIId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 POI 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                public string? POIName { get; set; }\n\n                /// <summary>\n                /// 获取或设置门店外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                public string? SupplierExternalId { get; set; }\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                public decimal? Longitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                public decimal? Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置所在省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? Province { get; set; }\n\n                /// <summary>\n                /// 获取或设置所在城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? City { get; set; }\n\n                /// <summary>\n                /// 获取或设置地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? Address { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                public string? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置匹配数据列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"match_data_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"match_data_list\")]\n        public IList<Types.MatchData> MatchDataList { get; set; } = new List<Types.MatchData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierMatchV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/v2/supplier/match 接口的响应。</para>\n    /// </summary>\n    public class POISupplierMatchV2Response : DouyinOpenResponse<POISupplierMatchV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置上传状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_success\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_success\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string? TaskId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryAllRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query_all 接口的请求。</para>\n    /// </summary>\n    public class POISupplierQueryAllRequest : DouyinOpenRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryAllResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query_all 接口的响应。</para>\n    /// </summary>\n    public class POISupplierQueryAllResponse : DouyinOpenResponse<POISupplierQueryAllResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryCallbackRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query_callback 接口的请求。</para>\n    /// </summary>\n    public class POISupplierQueryCallbackRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string TaskId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryCallbackResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query_callback 接口的响应。</para>\n    /// </summary>\n    public class POISupplierQueryCallbackResponse : DouyinOpenResponse<POISupplierQueryCallbackResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n                public int TaskStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置结果链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_uri\")]\n                public string? ResultUrl { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query 接口的请求。</para>\n    /// </summary>\n    public class POISupplierQueryRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置门店外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ExternalSupplierId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/supplier/query 接口的响应。</para>\n    /// </summary>\n    public class POISupplierQueryResponse : DouyinOpenResponse<POISupplierQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class SyncStatus\n                    {\n                        /// <summary>\n                        /// 获取或设置最近一次同步状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"last_sync_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"last_sync_status\")]\n                        public int? LastSyncStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置同步失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                        public string? FailReason { get; set; }\n                    }\n\n                    public class Detail\n                    {\n                        public static class Types\n                        {\n                            public class Category\n                            {\n                                /// <summary>\n                                /// 获取或设置一级分类。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"first_category\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"first_category\")]\n                                public string? FirstCategory { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置二级分类。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"second_category\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"second_category\")]\n                                public string? SecondCategory { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置三级分类。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"third_category\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"third_category\")]\n                                public string? ThirdCategory { get; set; }\n                            }\n\n                            public class Service\n                            {\n                                public static class Types\n                                {\n                                    public class Entry\n                                    {\n                                        public static class Types\n                                        {\n                                            public class EntryMiniApp\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置小程序 AppId。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                                public string AppId { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置小程序页面路径。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                                public string? PagePath { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置服务参数（JSON 格式）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"params\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                                                public string? ParameterJson { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置是否是测试版。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"is_test\")]\n                                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"is_test\")]\n                                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                                                public bool? IsTest { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置入口类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                                        public int EntryType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置小程序入口信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"entry_mini_app\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_mini_app\")]\n                                        public Types.EntryMiniApp? EntryMiniApp { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置上线状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置服务类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                                public int ServiceType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置入口信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry\")]\n                                public Types.Entry? Entry { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string? Description { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分类信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n                        public Types.Category? Category { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string SupplierExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置在线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系座机号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contact_tel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contact_tel\")]\n                        public string? ContactTelephone { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系手机号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contact_phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contact_phone\")]\n                        public string? ContactMobilephone { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺属性字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attributes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attributes\")]\n                        public IDictionary<int, object> AttributeMap { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"services\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"services\")]\n                        public Types.Service[]? ServiceList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                        public string[]? ImageList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置同步状态信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sync_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sync_status\")]\n                public Types.SyncStatus SyncStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置详细信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_detail\")]\n                public Types.Detail Detail { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQuerySupplierV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/supplier/query/supplier 接口的请求。</para>\n    /// </summary>\n    public class POISupplierQuerySupplierV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置门店外部 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> SupplierExternalIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQuerySupplierV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/supplier/query/supplier 接口的响应。</para>\n    /// </summary>\n    public class POISupplierQuerySupplierV2Response : DouyinOpenResponse<POISupplierQuerySupplierV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class MatchResult\n                    {\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        public string? TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string? SupplierExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int MatchStatus { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"match_result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"match_result_list\")]\n                public Types.MatchResult[] MatchResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryTaskV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/supplier/query/task 接口的请求。</para>\n    /// </summary>\n    public class POISupplierQueryTaskV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置第三方上传任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> SupplierTaskIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierQueryTaskV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /poi/v2/supplier/query/task 接口的响应。</para>\n    /// </summary>\n    public class POISupplierQueryTaskV2Response : DouyinOpenResponse<POISupplierQueryTaskV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class MatchResult\n                    {\n                        /// <summary>\n                        /// 获取或设置 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 POI 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                        public string? POIName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string? SupplierExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置所在省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string? Province { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置所在城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string? City { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置扩展信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_status\")]\n                        public int MatchStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mismatch_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mismatch_status_desc\")]\n                        public string MatchStatusDescription { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"match_result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"match_result_list\")]\n                public Types.MatchResult[] MatchResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierSyncRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/supplier/sync 接口的请求。</para>\n    /// </summary>\n    public class POISupplierSyncRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class Merchant\n            {\n                public static class Types\n                {\n                    public class BusinessLicense\n                    {\n                        /// <summary>\n                        /// 获取或设置营业执照外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string? ExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业执照公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                        public string? Company { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营业执照链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string? Url { get; set; }\n                    }\n\n                    public class IndustryLicense\n                    {\n                        /// <summary>\n                        /// 获取或设置行业许可证外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string? ExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置行业许可证链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string? Url { get; set; }\n                    }\n\n                    public class OtherInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置补充材料外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string? ExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置补充材料链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string? Url { get; set; }\n                    }\n\n                    public class PowerOfAttorney\n                    {\n                        /// <summary>\n                        /// 获取或设置合作协议外部 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ext_id\")]\n                        public string? ExternalId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合作协议链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string? Url { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商家营业执照信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license\")]\n                public Types.BusinessLicense? BusinessLicense { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家行业许可证信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_license\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_license\")]\n                public IList<Types.IndustryLicense>? IndustryLicenseList { get; set; }\n\n                /// <summary>\n                /// 获取或设置补充信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"other_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"other_info\")]\n                public IList<Types.OtherInfo>? OtherInfoList { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作协议信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"power_of_attorney\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"power_of_attorney\")]\n                public Types.PowerOfAttorney? PowerOfAttorney { get; set; }\n            }\n\n            public class ServiceProvider\n            {\n                /// <summary>\n                /// 获取或设置服务商营业执照外部 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_ext_id\")]\n                public string? BusinessLicenseExternalId { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务商行业许可证外部 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_license_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_license_ext_id\")]\n                public IList<string>? IndustryLicenseExternalIdList { get; set; }\n            }\n\n            public class Recommend\n            {\n                /// <summary>\n                /// 获取或设置推荐描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置推荐内容图片或视频 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                public string? ImageOrVideoUrl { get; set; }\n            }\n\n            public class Service\n            {\n                public static class Types\n                {\n                    public class Entry\n                    {\n                        public static class Types\n                        {\n                            public class EntryMiniApp\n                            {\n                                /// <summary>\n                                /// 获取或设置小程序 AppId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                public string AppId { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置小程序页面路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string? PagePath { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置服务参数（JSON 格式）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"params\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                                public string? ParameterJson { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否是测试版。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_test\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_test\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                                public bool? IsTest { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置入口类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"entry_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_type\")]\n                        public int EntryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序入口信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"entry_mini_app\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_mini_app\")]\n                        public Types.EntryMiniApp? EntryMiniApp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置上线状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                public int ServiceType { get; set; }\n\n                /// <summary>\n                /// 获取或设置入口信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry\")]\n                public Types.Entry? Entry { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string POIId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置店铺名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置店铺介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置品类编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type_code\")]\n        public string? TypeCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置品类描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type_name\")]\n        public string? TypeName { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店外部 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置在线状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置经度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"longitude\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n        public decimal? Longitude { get; set; }\n\n        /// <summary>\n        /// 获取或设置纬度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"latitude\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n        public decimal? Latitude { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public string? Address { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系座机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact_tel\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact_tel\")]\n        public string? ContactTelephone { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact_phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact_phone\")]\n        public string? ContactMobilephone { get; set; }\n\n        /// <summary>\n        /// 获取或设置人均消费（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"avg_cost\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"avg_cost\")]\n        public int? AverageCost { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"customer_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"customer_info\")]\n        public Types.Merchant? Merchant { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务商资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_provider\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_provider\")]\n        public Types.ServiceProvider? ServiceProvider { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺属性字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"attributes\")]\n        public IDictionary<int, object> Attribute { get; set; } = new Dictionary<int, object>();\n\n        /// <summary>\n        /// 获取或设置推荐列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recommends\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recommends\")]\n        public IList<Types.Recommend>? RecommendList { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"services\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"services\")]\n        public IList<Types.Service>? ServiceList { get; set; }\n\n        /// <summary>\n        /// 获取或设置营业时间范围字符串列表（格式：HH:mm-HH:mm）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_time\")]\n        public IList<string>? OpenTimeRangeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n        public IList<string>? TagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<string>? ImageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/POI/Supplier/POISupplierSyncResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /poi/supplier/sync 接口的响应。</para>\n    /// </summary>\n    public class POISupplierSyncResponse : DouyinOpenResponse<POISupplierSyncResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置门店 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                public string SupplierId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataAudienceGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/audience/get/ 接口的请求。</para>\n    /// </summary>\n    public class RoomDataAudienceGetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置业务线。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? LiveId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RoomId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataAudienceGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/audience/get/ 接口的响应。</para>\n    /// </summary>\n    public class RoomDataAudienceGetResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DataReadyStatusInfo : RoomDataInteractiveGetResponse.Types.Data.Types.DataReadyStatusInfo\n                    {\n                    }\n\n                    public class Statistics : RoomDataInteractiveGetResponse.Types.Data.Types.Statistics\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据就绪状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_ready_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_ready_status\")]\n                public Types.DataReadyStatusInfo[] DataReadyStatusList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置统计数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stats\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stats\")]\n                public Types.Statistics[] StatisticsList { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataBaseGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/base/get/ 接口的请求。</para>\n    /// </summary>\n    public class RoomDataBaseGetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置业务线。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? LiveId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RoomId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataBaseGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/base/get/ 接口的响应。</para>\n    /// </summary>\n    public class RoomDataBaseGetResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DataReadyStatusInfo : RoomDataInteractiveGetResponse.Types.Data.Types.DataReadyStatusInfo\n                    {\n                    }\n\n                    public class Statistics : RoomDataInteractiveGetResponse.Types.Data.Types.Statistics\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据就绪状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_ready_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_ready_status\")]\n                public Types.DataReadyStatusInfo[] DataReadyStatusList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置统计数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stats\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stats\")]\n                public Types.Statistics[] StatisticsList { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataInteractiveGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/interactive/get/ 接口的请求。</para>\n    /// </summary>\n    public class RoomDataInteractiveGetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置业务线。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? LiveId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RoomId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataInteractiveGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/interactive/get/ 接口的响应。</para>\n    /// </summary>\n    public class RoomDataInteractiveGetResponse : DouyinOpenResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DataReadyStatusInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置业务线 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_id\")]\n                        public int LiveId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_type\")]\n                        public int ItemType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置指标名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time_slot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time_slot\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否已就绪。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_ready\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_ready\")]\n                        public bool IsReady { get; set; }\n                    }\n\n                    public class Statistics\n                    {\n                        /// <summary>\n                        /// 获取或设置业务线 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_id\")]\n                        public int LiveId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_type\")]\n                        public int ItemType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item\")]\n                        public string ItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置指标名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"timeslot\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"timeslot\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置指标值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public int? Value { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置指标值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_float\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_float\")]\n                        public decimal? ValueAsFloat { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据就绪状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_ready_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_ready_status\")]\n                public Types.DataReadyStatusInfo[] DataReadyStatusList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置统计数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stats\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stats\")]\n                public Types.Statistics[] StatisticsList { get; set; } = default!;\n            }\n        }\n\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataRoomIdGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/room_id/get/ 接口的请求。</para>\n    /// </summary>\n    public class RoomDataRoomIdGetRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Room/RoomDataRoomIdGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /room/data/room_id/get/ 接口的响应。</para>\n    /// </summary>\n    public class RoomDataRoomIdGetResponse : DouyinOpenResponse\n    {\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int ErrorNumber { get; set; }\n\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_ids\")]\n        public string[] RoomIdList { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Sandbox/SandboxWebhookEventSendRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sandbox/webhook/event/send/ 接口的请求。</para>\n    /// </summary>\n    public class SandboxWebhookEventSendRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置需要模拟的事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n        public string EventType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Sandbox/SandboxWebhookEventSendResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sandbox/webhook/event/send/ 接口的响应。</para>\n    /// </summary>\n    public class SandboxWebhookEventSendResponse : DouyinOpenResponse<SandboxWebhookEventSendResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ShareId/ShareIdRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /share-id/ 接口的请求。</para>\n    /// </summary>\n    public class ShareIdRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置是否需要指定分享结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? RequireCallback { get; set; }\n\n        /// <summary>\n        /// 获取或设置多来源样式 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SourceStyleId { get; set; }\n\n        /// <summary>\n        /// 获取或设置追踪分享默认 HashTag。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? DefaultHashTag { get; set; }\n\n        /// <summary>\n        /// 获取或设置分享来源附加参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? LinkParameter { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/ShareId/ShareIdResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /share-id/ 接口的响应。</para>\n    /// </summary>\n    public class ShareIdResponse : DouyinOpenResponse<ShareIdResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置分享 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"share_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"share_id\")]\n                public string ShareId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarAuthorScoreRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/author_score/ 接口的请求。</para>\n    /// </summary>\n    public class StarAuthorScoreRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarAuthorScoreResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/author_score/ 接口的响应。</para>\n    /// </summary>\n    public class StarAuthorScoreResponse : DouyinOpenResponse<StarAuthorScoreResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                public string Nickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置性价比指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_score\")]\n                public decimal CPScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置种草指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_score\")]\n                public decimal ShopScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置传播指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spread_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spread_score\")]\n                public decimal SpreadScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置星图指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"star_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"star_score\")]\n                public decimal StarScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_score\")]\n                public decimal CooperationScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置涨粉指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"growth_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"growth_score\")]\n                public decimal GrowthScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置粉丝数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"follower\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"follower\")]\n                public int FansCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_timestamp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_timestamp\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarAuthorScoreV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/author_score_v2/ 接口的请求。</para>\n    /// </summary>\n    public class StarAuthorScoreV2Request : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string DouyinId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarAuthorScoreV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/author_score_v2/ 接口的响应。</para>\n    /// </summary>\n    public class StarAuthorScoreV2Response : DouyinOpenResponse<StarAuthorScoreV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置抖音号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unique_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unique_id\")]\n                public string DouyinId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                public string Nickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置性价比指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_score\")]\n                public decimal CPScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置种草指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_score\")]\n                public decimal ShopScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置传播指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spread_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spread_score\")]\n                public decimal SpreadScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置星图指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"star_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"star_score\")]\n                public decimal StarScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_score\")]\n                public decimal CooperationScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置涨粉指数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"growth_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"growth_score\")]\n                public decimal GrowthScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_timestamp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_timestamp\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarHotListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/hot_list/ 接口的请求。</para>\n    /// </summary>\n    public class StarHotListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置达人热榜类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int HotListType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Star/StarHotListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /star/hot_list/ 接口的响应。</para>\n    /// </summary>\n    public class StarHotListResponse : DouyinOpenResponse<StarHotListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Star\n                    {\n                        /// <summary>\n                        /// 获取或设置抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unique_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unique_id\")]\n                        public string DouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"follower\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"follower\")]\n                        public int FansCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热榜排名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rank\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                        public int Rank { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置热榜指数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"score\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"score\")]\n                        public decimal Score { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tags\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                        public string[] TagList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置达人列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Star[] StarList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置达人热榜类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hot_list_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hot_list_type\")]\n                public int HotListType { get; set; }\n\n                /// <summary>\n                /// 获取或设置达人热榜类型说明。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hot_list_description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hot_list_description\")]\n                public string HotListDescription { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置达人热榜更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hot_list_update_timestamp\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hot_list_update_timestamp\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingBindVideoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/bind_video/ 接口的请求。</para>\n    /// </summary>\n    public class TaskPostingBindVideoRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string TaskId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        public string VideoId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingBindVideoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/bind_video/ 接口的响应。</para>\n    /// </summary>\n    public class TaskPostingBindVideoResponse : DouyinOpenResponse<TaskPostingBindVideoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingCreateRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/create/ 接口的请求。</para>\n    /// </summary>\n    public class TaskPostingCreateRequest : DouyinOpenRequest\n    {\n        public static class Types\n        {\n            public class TaskCondition\n            {\n                /// <summary>\n                /// 获取或设置条件。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"condition\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"condition\")]\n                public string Condition { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置最大值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"max_value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"max_value\")]\n                public long MaxValue { get; set; }\n\n                /// <summary>\n                /// 获取或设置最小值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"min_value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"min_value\")]\n                public long MinValue { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开始时间时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_condition\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_condition\")]\n        public Types.TaskCondition TaskCondition { get; set; } = new Types.TaskCondition();\n\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingCreateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/create/ 接口的响应。</para>\n    /// </summary>\n    public class TaskPostingCreateResponse : DouyinOpenResponse<TaskPostingCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n                public int TaskStatus { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingUserRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/user/ 接口的请求。</para>\n    /// </summary>\n    public class TaskPostingUserRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string TaskId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        public string VideoId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Task/TaskPostingUserResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /task/posting/user/ 接口的响应。</para>\n    /// </summary>\n    public class TaskPostingUserResponse : DouyinOpenResponse<TaskPostingUserResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置核销结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public bool Result { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Tool/ToolImagexClientUploadRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tool/imagex/client_upload/ 接口的请求。</para>\n    /// </summary>\n    public class ToolImagexClientUploadRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Tool/ToolImagexClientUploadResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tool/imagex/client_upload/ 接口的响应。</para>\n    /// </summary>\n    public class ToolImagexClientUploadResponse : DouyinOpenResponse<ToolImagexClientUploadResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n        public string ImageId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置图片高度（单位：像素）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"height\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n        public int Height { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片宽度（单位：像素）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"width\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n        public int Width { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 MD5 值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"md5\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"md5\")]\n        public string Md5 { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/comment/list/ 接口的请求。</para>\n    /// </summary>\n    public class VideoCommentListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/comment/list/ 接口的响应。</para>\n    /// </summary>\n    public class VideoCommentListResponse : DouyinOpenResponse<VideoCommentListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ItemCommentListResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentReplyListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/comment/reply/list/ 接口的请求。</para>\n    /// </summary>\n    public class VideoCommentReplyListRequest : VideoCommentListRequest\n    {\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CommentId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentReplyListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/comment/reply/list/ 接口的响应。</para>\n    /// </summary>\n    public class VideoCommentReplyListResponse : DouyinOpenResponse<VideoCommentReplyListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ItemCommentReplyListResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentReplyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/comment/reply/ 接口的请求。</para>\n    /// </summary>\n    public class VideoCommentReplyRequest : ItemCommentReplyRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentReplyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/comment/reply/ 接口的响应。</para>\n    /// </summary>\n    public class VideoCommentReplyResponse : DouyinOpenResponse<VideoCommentReplyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ItemCommentReplyResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentTopRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/comment/top/ 接口的请求。</para>\n    /// </summary>\n    public class VideoCommentTopRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否置顶。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"top\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n        public bool IsTop { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Comment/VideoCommentTopResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/comment/top/ 接口的响应。</para>\n    /// </summary>\n    public class VideoCommentTopResponse : DouyinOpenResponse<VideoCommentTopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search/comment/list 接口的请求。</para>\n    /// </summary>\n    public class VideoSearchCommentListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置特殊加密的视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SecurityItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search/comment/list 接口的响应。</para>\n    /// </summary>\n    public class VideoSearchCommentListResponse : DouyinOpenResponse<VideoSearchCommentListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Comment : VideoCommentListResponse.Types.Data.Types.Comment\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentReplyListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search/comment/reply/list 接口的请求。</para>\n    /// </summary>\n    public class VideoSearchCommentReplyListRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置特殊加密的视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SecurityItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentReplyListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search/comment/reply/list 接口的响应。</para>\n    /// </summary>\n    public class VideoSearchCommentReplyListResponse : DouyinOpenResponse<VideoSearchCommentReplyListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Comment : VideoCommentReplyListResponse.Types.Data.Types.Comment\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentReplyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/search/comment/reply 接口的请求。</para>\n    /// </summary>\n    public class VideoSearchCommentReplyRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置设备品牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? DeviceBrand { get; set; }\n\n        /// <summary>\n        /// 获取或设置设备平台。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? DevicePlatform { get; set; }\n\n        /// <summary>\n        /// 获取或设置设备类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? DeviceType { get; set; }\n\n        /// <summary>\n        /// 获取或设置客户端 IP。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ClientIp { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作系统版本号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OSVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置接入渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SharkChannel { get; set; }\n\n        /// <summary>\n        /// 获取或设置特殊加密的视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sec_item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sec_item_id\")]\n        public string SecurityItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string? CommentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置评论内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string Content { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchCommentReplyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/search/comment/reply 接口的响应。</para>\n    /// </summary>\n    public class VideoSearchCommentReplyResponse : DouyinOpenResponse<VideoSearchCommentReplyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : VideoCommentReplyResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search 接口的请求。</para>\n    /// </summary>\n    public class VideoSearchRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置关键词。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string Keyword { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/Search/VideoSearchResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /video/search 接口的响应。</para>\n    /// </summary>\n    public class VideoSearchResponse : DouyinOpenResponse<VideoSearchResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                public static class Types\n                {\n                    public class Video : DouyinVideoListV1Response.Types.Data.Types.Video\n                    {\n                        /// <summary>\n                        /// 获取或设置特殊加密的视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sec_item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sec_item_id\")]\n                        public string? SecurityItemId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置作者 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string AuthorOpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置作者昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string AuthorNickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置作者头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AuthorAvatarUrl { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/VideoSourceRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/source 接口的请求。</para>\n    /// </summary>\n    public class VideoSourceRequest : DouyinOpenRequest\n    {\n        /// <summary>\n        /// 获取或设置用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_ids\")]\n        public IList<string> ItemIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Models/Video/VideoSourceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/source 接口的响应。</para>\n    /// </summary>\n    public class VideoSourceResponse : DouyinOpenResponse<VideoSourceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : DouyinOpenResponseData\n            {\n                /// <summary>\n                /// 获取或设置视频来源列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string[] SourceList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.DouyinOpen\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.DouyinOpen) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n基于 `Flurl.Http` 的抖音开放平台 HTTP API SDK。\n\n---\n\n### 【功能特性】\n\n-   基于抖音开放平台 API 封装。\n-   提供了抖音开放平台 API 所需的 AES、MD5、SHA-1、SHA-256、HMAC-SHA-256 等算法工具类。\n-   提供了生成授权链接、生成 JSBridge 签名、解析回调通知事件、解密手机号码等扩展方法。\n-   配合 [SKIT.FlurlHttpClient.ByteDance.MicroApp](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.MicroApp) 模块，可无缝对接抖音小程序开放平台。\n\n---\n\n### 【开发文档】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)。\n\n---\n\n### 【更新日志】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md)。\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n\t\t<TargetFrameworks>net462; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>10.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.DouyinOpen</PackageId>\n\t\t<PackageIcon>LOGO.png</PackageIcon>\n\t\t<PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance Douyin 字节 字节跳动 头条 今日头条 头条开放平台 抖音 抖音开放平台</PackageTags>\n        <Version>3.4.0</Version>\n        <Description>基于 Flurl.Http 的抖音开放平台 API 客户端，支持用户授权、用户管理、视频管理、互动管理、搜索管理、数据开放服务、企业号开放能力、生活服务开放能力、工具能力、服务市场开放能力等功能。</Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n    </PropertyGroup>\n\n\t<PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n\t\t<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n\t\t<Deterministic>true</Deterministic>\n\t\t<EmbedUntrackedSources>true</EmbedUntrackedSources>\n\t\t<GenerateDocumentationFile>true</GenerateDocumentationFile>\n\t\t<IncludeSymbols>true</IncludeSymbols>\n\t\t<SymbolPackageFormat>snupkg</SymbolPackageFormat>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n\t\t<None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n\t</ItemGroup>\n\n\t<ItemGroup>\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"3.1.1\" />\n\t</ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinOpenClientOptions.ClientKey\"/> 的副本。\n        /// </summary>\n        public string ClientKey { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinOpenClientOptions.ClientSecret\"/> 的副本。\n        /// </summary>\n        public string ClientSecret { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinOpenClientOptions.WebhookSecret\"/> 的副本。\n        /// </summary>\n        public string WebhookSecret { get; }\n\n        internal Credentials(DouyinOpenClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            ClientKey = options.ClientKey;\n            ClientSecret = options.ClientSecret;\n            WebhookSecret = options.WebhookSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/AESUtility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// AES 算法工具类。\n    /// </summary>\n    public static class AESUtility\n    {\n        /// <summary>\n        /// 基于 CBC 模式解密数据。\n        /// </summary>\n        /// <param name=\"keyBytes\">AES 密钥字节数组。</param>\n        /// <param name=\"ivBytes\">初始化向量字节数组。</param>\n        /// <param name=\"cipherBytes\">待解密数据字节数组。</param>\n        /// <returns>解密后的数据字节数组。</returns>\n        public static byte[] DecryptWithCBC(byte[] keyBytes, byte[] ivBytes, byte[] cipherBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (ivBytes is null) throw new ArgumentNullException(nameof(ivBytes));\n            if (cipherBytes is null) throw new ArgumentNullException(nameof(cipherBytes));\n\n            using (SymmetricAlgorithm aes = Aes.Create())\n            {\n                aes.Mode = CipherMode.CBC;\n                aes.Padding = PaddingMode.PKCS7;\n                aes.Key = keyBytes;\n                aes.IV = ivBytes;\n\n                using ICryptoTransform transform = aes.CreateDecryptor();\n                return transform.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length);\n            }\n        }\n\n        /// <summary>\n        /// 基于 CBC 模式解密数据。\n        /// </summary>\n        /// <param name=\"encodingKey\">经过编码后的（通常为 Base64）AES 密钥。</param>\n        /// <param name=\"encodingIV\">经过编码后的（通常为 Base64）初始化向量。</param>\n        /// <param name=\"encodingCipher\">经过编码后的（通常为 Base64）待解密数据。</param>\n        /// <returns>解密后的数据。</returns>\n        public static EncodedString DecryptWithCBC(EncodedString encodingKey, EncodedString encodingIV, EncodedString encodingCipher)\n        {\n            if (encodingKey.Value is null) throw new ArgumentNullException(nameof(encodingKey));\n            if (encodingIV.Value is null) throw new ArgumentNullException(nameof(encodingIV));\n            if (encodingCipher.Value is null) throw new ArgumentNullException(nameof(encodingCipher));\n\n            byte[] plainBytes = DecryptWithCBC(\n                keyBytes: EncodedString.FromString(encodingKey, fallbackEncodingKind: EncodingKinds.Base64),\n                ivBytes: EncodedString.FromString(encodingIV, fallbackEncodingKind: EncodingKinds.Base64),\n                cipherBytes: EncodedString.FromString(encodingCipher, fallbackEncodingKind: EncodingKinds.Base64)\n            );\n            return EncodedString.ToLiteralString(plainBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/HMACUtility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// HMAC 算法工具类。\n    /// </summary>\n    public static class HMACUtility\n    {\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"keyBytes\">密钥字节数组。</param>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] HashWithSHA256(byte[] keyBytes, byte[] messageBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return HMACSHA256.HashData(keyBytes, messageBytes);\n#else\n            using HMAC hmac = new HMACSHA256(keyBytes);\n            return hmac.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"key\">密钥。</param>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString HashWithSHA256(string key, string messageData)\n        {\n            if (key is null) throw new ArgumentNullException(nameof(key));\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] keyBytes = EncodedString.FromLiteralString(key);\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = HashWithSHA256(keyBytes, messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/MD5Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// MD5 算法工具类。\n    /// </summary>\n    public static class MD5Utility\n    {\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return MD5.HashData(messageBytes);\n#else\n            using MD5 md5 = MD5.Create();\n            return md5.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/SHA1Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// SHA-1 算法工具类。\n    /// </summary>\n    public static class SHA1Utility\n    {\n        /// <summary>\n        /// 计算 SHA-1 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return SHA1.HashData(messageBytes);\n#else\n            using SHA1 sha1 = SHA1.Create();\n            return sha1.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 SHA-1 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/SHA256Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// SHA-256 算法工具类。\n    /// </summary>\n    public static class SHA256Utility\n    {\n        /// <summary>\n        /// 计算 SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return SHA256.HashData(messageBytes);\n#else\n            using SHA256 sha1 = SHA256.Create();\n            return sha1.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/Utilities/[Internal]/HttpContentBuilder.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Web;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Utilities\n{\n    using SKIT.FlurlHttpClient;\n\n    internal static class HttpContentBuilder\n    {\n        public static MultipartFormDataContent BuildWithFile(string fileName, byte[] fileBytes, string fileContentType, string formDataName, Action<HttpContent>? configureFileHttpContent = null)\n        {\n            if (fileName is null) throw new ArgumentNullException(nameof(fileName));\n            if (formDataName is null) throw new ArgumentNullException(nameof(formDataName));\n\n            fileName = fileName.Replace(\"\\\"\", \"\");\n            fileBytes = fileBytes ?? Array.Empty<byte>();\n            fileContentType = string.IsNullOrEmpty(fileContentType) ? MimeTypes.Binary : fileContentType;\n            formDataName = formDataName.Replace(\"\\\"\", \"\");\n\n            ByteArrayContent fileContent = new ByteArrayContent(fileBytes);\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(fileContentType);\n            configureFileHttpContent?.Invoke(fileContent);\n\n            string boundary = \"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\");\n            MultipartFormDataContent httpContent = new MultipartFormDataContent(boundary);\n            httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse($\"{MimeTypes.FormData}; boundary={boundary}\");\n            httpContent.Add(fileContent, $\"\\\"{formDataName}\\\"\", $\"\\\"{HttpUtility.UrlEncode(fileName)}\\\"\");\n            return httpContent;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Constants/Internal/FormDataFields.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Constants\n{\n    internal static class FormDataFields\n    {\n        public const string FORMDATA_PARAM_JSON = \"param_json\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Constants/SignAlgorithms.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Constants\n{\n    public static class SignAlgorithms\n    {\n        /// <summary>\n        /// MD5。\n        /// </summary>\n        public const string MD5 = \"md5\";\n\n        /// <summary>\n        /// HMAC-SHA256。\n        /// </summary>\n        public const string HMAC_SHA256 = \"hmac-sha256\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Converters/Internal/Newtonsoft.Json/List[String]/TextualStringListWithPipeSplitConverter.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace Newtonsoft.Json.Converters\n{\n    internal class TextualStringListWithPipeSplitConverter : JsonConverter\n    {\n        private const char SEPARATOR = '|';\n\n        public override bool CanConvert(Type objectType)\n        {\n            return objectType.IsGenericType &&\n                   typeof(IList<>).IsAssignableFrom(objectType.GetGenericTypeDefinition()) &&\n                   typeof(string) == objectType.GetGenericArguments()[0];\n        }\n\n        public override bool CanRead\n        {\n            get { return true; }\n        }\n\n        public override bool CanWrite\n        {\n            get { return true; }\n        }\n\n        public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)\n        {\n            if (reader.TokenType == JsonToken.Null)\n            {\n                return existingValue;\n            }\n            else if (reader.TokenType == JsonToken.String)\n            {\n                string? value = serializer.Deserialize<string>(reader);\n                if (value == null)\n                    return existingValue;\n\n                return value.Split(new char[] { SEPARATOR }, StringSplitOptions.RemoveEmptyEntries).ToList();\n            }\n\n            throw new JsonReaderException();\n        }\n\n        public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)\n        {\n            if (value != null)\n                writer.WriteValue(string.Join(SEPARATOR.ToString(), value));\n            else\n                writer.WriteNull();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Converters/Internal/System.Text.Json/Array[String]/NumericalStringArrayConverter.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Text.Json.Serialization;\n\nnamespace System.Text.Json.Converters\n{\n    internal class NumericalStringArrayConverter : JsonConverter<string[]?>\n    {\n        public override string[]? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)\n        {\n            if (reader.TokenType == JsonTokenType.Null)\n            {\n                return null;\n            }\n            else if (reader.TokenType == JsonTokenType.StartArray)\n            {\n                reader.Read();\n\n                var tmpList = new List<string>();\n                var tmpOptions = new JsonSerializerOptions(options);\n                tmpOptions.Converters.Add(new NumericalStringConverter());\n\n                while (reader.TokenType != JsonTokenType.EndArray)\n                {\n                    string? value = JsonSerializer.Deserialize<string>(ref reader, tmpOptions);\n                    if (value != null)\n                        tmpList.Add(value);\n\n                    reader.Read();\n                }\n\n                return tmpList.ToArray();\n            }\n\n            throw new JsonException();\n        }\n\n        public override void Write(Utf8JsonWriter writer, string[]? value, JsonSerializerOptions options)\n        {\n            if (value != null)\n            {\n                writer.WriteStartArray();\n\n                foreach (string item in value)\n                {\n                    JsonSerializer.Serialize(writer, item, options);\n                }\n\n                writer.WriteEndArray();\n            }\n            else\n            {\n                writer.WriteNullValue();\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Converters/Internal/System.Text.Json/List[String]/TextualStringListWithPipeSplitConverter.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json.Serialization;\n\nnamespace System.Text.Json.Converters\n{\n    internal class TextualStringListWithPipeSplitConverter : JsonConverterFactory\n    {\n        private sealed class InnerTextualStringListWithPipeSplitConverter : JsonConverter<IList<string>?>\n        {\n            private const char SEPARATOR = '|';\n\n            public override IList<string>? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)\n            {\n                if (reader.TokenType == JsonTokenType.Null)\n                {\n                    return null;\n                }\n                else if (reader.TokenType == JsonTokenType.String)\n                {\n                    string? value = reader.GetString();\n                    if (value == null)\n                        return null;\n\n                    return value.Split(new char[] { SEPARATOR }, StringSplitOptions.RemoveEmptyEntries).ToList();\n                }\n\n                throw new JsonException();\n            }\n\n            public override void Write(Utf8JsonWriter writer, IList<string>? value, JsonSerializerOptions options)\n            {\n                if (value != null)\n                    writer.WriteStringValue(string.Join(SEPARATOR.ToString(), value));\n                else\n                    writer.WriteNullValue();\n            }\n        }\n\n        public override bool CanConvert(Type typeToConvert)\n        {\n            return typeToConvert.IsGenericType &&\n                   typeof(IList<>).IsAssignableFrom(typeToConvert.GetGenericTypeDefinition()) &&\n                   typeof(string) == typeToConvert.GetGenericArguments()[0];\n        }\n\n        public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options)\n        {\n            return new InnerTextualStringListWithPipeSplitConverter();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 一个抖店开放平台 API HTTP 客户端。\n    /// </summary>\n    public class DouyinShopClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的抖店开放平台凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinShopClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinShopClient(DouyinShopClientOptions options)\n            : base()\n        {\n            if (options == null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? DouyinShopEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(TimeSpan.FromMilliseconds(options.Timeout));\n\n            Interceptors.Add(new Interceptors.DouyinShopRequestFormatInterceptor());\n            Interceptors.Add(new Interceptors.DouyinShopRequestSignInterceptor(\n                baseUrl: FlurlClient.BaseUrl,\n                appKey: options.AppKey,\n                appSecret: options.AppSecret,\n                signMethod: options.SignAlgorithm\n            ));\n        }\n\n        /// <summary>\n        /// 用指定的抖店开放平台应用 Key、抖店开放平台应用密钥初始化 <see cref=\"DouyinShopClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"appKey\">抖店开放平台应用 Key。</param>\n        /// <param name=\"appSecret\">抖店开放平台应用密钥。</param>\n        public DouyinShopClient(string appKey, string appSecret)\n            : this(new DouyinShopClientOptions() { AppKey = appKey, AppSecret = appSecret })\n        {\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"method\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateRequest(DouyinShopRequest request, HttpMethod method, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = FlurlClient.Request(urlSegments).WithVerb(method);\n\n            if (request.Timeout != null)\n            {\n                flurlRequest.WithTimeout(TimeSpan.FromMilliseconds(request.Timeout.Value));\n            }\n\n            if (request.ApiMethod == null)\n            {\n                flurlRequest.SetQueryParam(\"method\", request.ApiMethod);\n            }\n\n            if (request.ApiVersion == null)\n            {\n                flurlRequest.SetQueryParam(\"v\", request.ApiVersion);\n            }\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinShopResponse, new()\n        {\n            if (flurlRequest == null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            try\n            {\n                using IFlurlResponse flurlResponse = await base.SendRequestAsync(flurlRequest, httpContent, cancellationToken);\n                return await WrapResponseWithJsonAsync<T>(flurlResponse, cancellationToken);\n            }\n            catch (FlurlHttpTimeoutException ex)\n            {\n                throw new Exceptions.DouyinShopRequestTimeoutException(ex.Message, ex);\n            }\n            catch (FlurlHttpException ex)\n            {\n                throw new DouyinShopException(ex.Message, ex);\n            }\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendRequestWithJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinShopResponse, new()\n        {\n            if (flurlRequest == null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            try\n            {\n                bool isSimpleRequest = data == null ||\n                    flurlRequest.Verb == HttpMethod.Get ||\n                    flurlRequest.Verb == HttpMethod.Head ||\n                    flurlRequest.Verb == HttpMethod.Options;\n                using IFlurlResponse flurlResponse = isSimpleRequest ?\n                    await base.SendRequestAsync(flurlRequest, null, cancellationToken) :\n                    await base.SendRequestWithJsonAsync(flurlRequest, data, cancellationToken);\n                return await WrapResponseWithJsonAsync<T>(flurlResponse, cancellationToken);\n            }\n            catch (FlurlHttpTimeoutException ex)\n            {\n                throw new Exceptions.DouyinShopRequestTimeoutException(ex.Message, ex);\n            }\n            catch (FlurlHttpException ex)\n            {\n                throw new DouyinShopException(ex.Message, ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinShopClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinShopClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖店开放平台 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinShopEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = DouyinShopEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖店开放平台应用 Key。\n        /// </summary>\n        public string AppKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖店开放平台应用密钥。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖店开放平台 API 签名算法。\n        /// <para>默认值：<see cref=\"Constants.SignAlgorithms.HMAC_SHA256\"/></para>\n        /// </summary>\n        public string SignAlgorithm { get; set; } = Constants.SignAlgorithms.HMAC_SHA256;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopEndpoints.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 抖店开放平台 API 接口域名。\n    /// </summary>\n    public static class DouyinShopEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://openapi-fxg.jinritemai.com\";\n\n        /// <summary>\n        /// 沙箱域名。\n        /// </summary>\n        public const string SANDBOX = \"https://openapi-sandbox.jinritemai.com\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopEvent.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 表示抖店开放平台 API 消息推送事件的基类。\n    /// </summary>\n    public class DouyinShopEvent\n    {\n        /// <summary>\n        /// 获取或设置消息 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msgId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msgId\")]\n        public string Id { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tag\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public int Tag { get; set; }\n    }\n\n    /// <summary>\n    /// 表示抖店开放平台 API 消息推送事件的泛型基类。\n    /// </summary>\n    public abstract class DouyinShopEvent<TData> : DouyinShopEvent\n    {\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopException.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 抖店开放平台 API 出错时引发的异常。\n    /// </summary>\n    public class DouyinShopException : CommonExceptionBase\n    {\n        /// <inheritdoc/>\n        public DouyinShopException()\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinShopException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinShopException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 抖店开放平台 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinShopRequest : ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。如果不指定将使用构造 <see cref=\"DouyinShopClient\"/> 时的 <see cref=\"DouyinShopClientOptions.Timeout\"/> 参数，这在需要指定特定耗时请求（比如上传或下载文件）的超时时间时很有用。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual int? Timeout { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖店开放平台的 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖店开放平台的 API 协议版本。\n        /// <para>默认值：2</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? ApiVersion { get; set; } = \"2\";\n\n        /// <summary>\n        /// 获取或设置抖店开放平台的 API 方法名称。一般情况下不需要指定值，由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? ApiMethod { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/DouyinShopResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 抖店开放平台 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinShopResponse : ICommonResponse\n    {\n        /// <summary>\n        ///\n        /// </summary>\n        int ICommonResponse.RawStatus { get; set; }\n\n        /// <summary>\n        ///\n        /// </summary>\n        IDictionary<string, string> ICommonResponse.RawHeaders { get; set; } = default!;\n\n        /// <summary>\n        ///\n        /// </summary>\n        byte[] ICommonResponse.RawBytes { get; set; } = default!;\n\n        /// <summary>\n        /// 获取原始的 HTTP 响应状态码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int RawStatus\n        {\n            get { return ((ICommonResponse)this).RawStatus; }\n            internal set { ((ICommonResponse)this).RawStatus = value; }\n        }\n\n        /// <summary>\n        /// 获取原始的 HTTP 响应表头集合。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IDictionary<string, string> RawHeaders\n        {\n            get { return ((ICommonResponse)this).RawHeaders; }\n            internal set { ((ICommonResponse)this).RawHeaders = value; }\n        }\n\n        /// <summary>\n        /// 获取原始的 HTTP 响应正文。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] RawBytes\n        {\n            get { return ((ICommonResponse)this).RawBytes; }\n            internal set { ((ICommonResponse)this).RawBytes = value; }\n        }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的请求标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public virtual string LogId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public virtual int ErrorNumber { get; set; }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的主返回码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public virtual string? ReturnCode { get; set; }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的主返回码描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n        public virtual string? ReturnMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的子返回码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_code\")]\n        public virtual string? SubReturnCode { get; set; }\n\n        /// <summary>\n        /// 获取抖店开放平台 API 返回的子返回码描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_msg\")]\n        public virtual string? SubReturnMessage { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖店开放平台 API 是否成功（即 HTTP 状态码为 200、且 \"err_no\" 值为 0）。\n        /// </summary>\n        /// <returns></returns>\n        public virtual bool IsSuccessful()\n        {\n            return RawStatus == 200 && ErrorNumber == 0;\n        }\n    }\n\n    /// <summary>\n    /// 抖店开放平台 API 响应的泛型基类。\n    /// </summary>\n    public abstract class DouyinShopResponse<TData> : DouyinShopResponse\n    {\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/IOPTrade/IOPTradeDistributionCancelEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_iopTrade_DistributionCancel 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/65/682 ]]>\n    /// </para>\n    /// </summary>\n    public class IOPTradeDistributionCancelEvent : DouyinShopEvent<IOPTradeDistributionCancelEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPTradeDistributionEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/IOPTrade/IOPTradeDistributionEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_iopTrade_Distribution 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/65/680 ]]>\n    /// </para>\n    /// </summary>\n    public class IOPTradeDistributionEvent : DouyinShopEvent<IOPTradeDistributionEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置厂商店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public long SupplierShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置代打店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                public long DistributeShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置代打订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                public string DistributeOrderId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/IOPTrade/IOPTradeStatusReturnEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_iopTrade_StatusReturn 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/65/683 ]]>\n    /// </para>\n    /// </summary>\n    public class IOPTradeStatusReturnEvent : DouyinShopEvent<IOPTradeStatusReturnEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPTradeDistributionEvent.Types.Data\n            {\n                /// <summary>\n                /// 获取或设置回传状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n                public int ReturnStatus { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/IOPTrade/IOPTradeUpdateReceiverEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_iopTrade_UpdateReceiver 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/65/682 ]]>\n    /// </para>\n    /// </summary>\n    public class IOPTradeUpdateReceiverEvent : DouyinShopEvent<IOPTradeUpdateReceiverEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPTradeDistributionEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/IOPTrade/IOPTradeUpdateRemarkEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_iopTrade_UpdateRemark 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/65/679 ]]>\n    /// </para>\n    /// </summary>\n    public class IOPTradeUpdateRemarkEvent : DouyinShopEvent<IOPTradeUpdateRemarkEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPTradeDistributionEvent.Types.Data\n            {\n                /// <summary>\n                /// 获取或设置卖家备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_remark\")]\n                public string SellerRemark { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Product/ProductChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_product_change 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/60/686 ]]>\n    /// </para>\n    /// </summary>\n    public class ProductChangeEvent : DouyinShopEvent<ProductChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品变更事件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"event\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                public int Event { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部商品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n                public long OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置包含触审字段以及驳回原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"check_reject_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"check_reject_reason\")]\n                public string? RejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置事件时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateAppliedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateApplied 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/256 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateAppliedEvent : DouyinShopEvent<RefundArbitrateAppliedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置仲裁单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"arbitrate_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_id\")]\n                public string ArbitrateId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置仲裁状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n                public int ArbitrateStatus { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateAuditedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateAudited 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/259 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateAuditedEvent : DouyinShopEvent<RefundArbitrateAuditedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n                /// <summary>\n                /// 获取或设置仲裁结果编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"arbitrate_conclusion\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_conclusion\")]\n                public int ArbitrateConclusionCode { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateCancelledEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateCancelled 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/260 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateCancelledEvent : DouyinShopEvent<RefundArbitrateCancelledEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateDiscussUploadEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateDiscussUpload 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/628 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateDiscussUploadEvent : DouyinShopEvent<RefundArbitrateDiscussUploadEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateServiceInterveneEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateServiceIntervene 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/627 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateServiceInterveneEvent : DouyinShopEvent<RefundArbitrateServiceInterveneEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateSubmitedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateSubmited 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/258 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateSubmitedEvent : DouyinShopEvent<RefundArbitrateSubmitedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Arbitrate/RefundArbitrateSubmitingEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ArbitrateSubmiting 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/257 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundArbitrateSubmitingEvent : DouyinShopEvent<RefundArbitrateSubmitingEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundArbitrateAppliedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundAgreedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundAgreed 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/120 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundAgreedEvent : DouyinShopEvent<RefundAgreedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置关闭时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"close_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"close_time\")]\n                public long CloseTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundClosedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundClosed 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/122 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundClosedEvent : DouyinShopEvent<RefundClosedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置关闭时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"close_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"close_time\")]\n                public long CloseTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundCreatedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundCreated 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/115 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundCreatedEvent : DouyinShopEvent<RefundCreatedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                public long ApplyTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundExchangeComfirmedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ExchangeComfirmed 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/240 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundExchangeComfirmedEvent : DouyinShopEvent<RefundExchangeComfirmedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundCreatedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundExpirationChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ExpirationChange 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/226 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundExpirationChangeEvent : DouyinShopEvent<RefundExpirationChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置仲裁截止时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_deadline\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_deadline\")]\n                public long StatusDeadlineTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundModifiedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundModified 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/230 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundModifiedEvent : DouyinShopEvent<RefundModifiedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置修改时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n                public long ModifyTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundRefusedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundRefused 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/119 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundRefusedEvent : DouyinShopEvent<RefundRefusedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置拒绝时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refuse_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refuse_time\")]\n                public long RefuseTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/RefundSuccessEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundSuccess 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/121 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundSuccessEvent : DouyinShopEvent<RefundSuccessEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款成功时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_time\")]\n                public long SuccessTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Return/RefundBuyerReturnGoodsEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_BuyerReturnGoods 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/118 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundBuyerReturnGoodsEvent : DouyinShopEvent<RefundBuyerReturnGoodsEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置退货物流提交时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_time\")]\n                public long ReturnTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Return/RefundReturnAgreedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_RefundAgreed 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/116 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundReturnAgreedEvent : DouyinShopEvent<RefundReturnAgreedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string SKUOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string AftersaleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置售后单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                public int AftersaleStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                public int AftersaleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款运费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                public int RefundPostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请退款的卡券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_voucher_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_voucher_num\")]\n                public int RefundVoucherCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置同意退货申请时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agree_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agree_time\")]\n                public long AgreeTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Return/RefundReturnApplyAgreedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ReturnApplyAgreed 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/117 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundReturnApplyAgreedEvent : DouyinShopEvent<RefundReturnApplyAgreedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundReturnAgreedEvent.Types.Data\n            {\n                public static class Types\n                {\n                    public class Address\n                    {\n                        /// <summary>\n                        /// 获取或设置省份 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                        public int ProvinceId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置省份名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string ProvinceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                        public int CityId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置城市名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string CityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区县 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"town_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"town_id\")]\n                        public int DistrictId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置区县名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"town\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                        public string DistrictName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置街道 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                        public int? StreetId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置街道名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                        public string? StreetName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置详细地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public string Detail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收件人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收件人电话号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                        public string PhoneNumber { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退货地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n                public Types.Address Address { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Refund/Return/RefundReturnApplyRefusedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_refund_ReturnApplyRefused 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/31/120 ]]>\n    /// </para>\n    /// </summary>\n    public class RefundReturnApplyRefusedEvent : DouyinShopEvent<RefundReturnApplyRefusedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : RefundRefusedEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeAddressChangeAppliedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeAddressChangeApplied 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/285 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeAddressChangeAppliedEvent : DouyinShopEvent<TradeAddressChangeAppliedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Receiver : TradePartlySellerShipEvent.Types.Data.Types.Receiver\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                public long ApplyTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置变更前的收货人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"post_receiver_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"post_receiver_msg\")]\n                public Types.Receiver PreviousReceiver { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置申请变更的收货人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receiver_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_msg\")]\n                public Types.Receiver CurrentReceiver { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeAddressChangedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeAddressChanged 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/114 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeAddressChangedEvent : DouyinShopEvent<TradeAddressChangedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Receiver : TradePartlySellerShipEvent.Types.Data.Types.Receiver\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n\n                /// <summary>\n                /// 获取或设置收货信息变更时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置收货人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receiver_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_msg\")]\n                public Types.Receiver Receiver { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeAmountChangedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeAmountChanged 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/265 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeAmountChangedEvent : DouyinShopEvent<TradeAmountChangedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n\n                /// <summary>\n                /// 获取或设置修改变更时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n                public long ModifyTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置运费金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                public int PostAmount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeAppointmentEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeAppointment 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/512 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeAppointmentEvent : DouyinShopEvent<TradeAppointmentEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置预计发货日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exp_delivery_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exp_delivery_time\")]\n                public string ExpectedDeliveryDateString { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeCanceledEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeCanceled 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/123 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeCanceledEvent : DouyinShopEvent<TradeCanceledEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单取消时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_time\")]\n                public long CancelTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单取消原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n                public string CancelReason { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeCreateEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeCreate 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/109 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeCreateEvent : DouyinShopEvent<TradeCreateEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeLogisticsChangedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeLogisticsChanged 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/113 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeLogisticsChangedEvent : DouyinShopEvent<TradeLogisticsChangedEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : TradePartlySellerShipEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeMemoModifyEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeMemoModify 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/571 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeMemoModifyEvent : DouyinShopEvent<TradeMemoModifyEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置修改时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string Remark { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置星标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"star\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"star\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int Star { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradePaidEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradePaid 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/110 ]]>\n    /// </para>\n    /// </summary>\n    public class TradePaidEvent : DouyinShopEvent<TradePaidEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                public int PayType { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public long PayTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单实付金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                public int PayAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradePartlySellerShipEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradePartlySellerShip 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/277 ]]>\n    /// </para>\n    /// </summary>\n    public class TradePartlySellerShipEvent : DouyinShopEvent<TradePartlySellerShipEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Receiver\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                public static class Types\n                                {\n                                    public class Area\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置地区 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                        public int Id { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置地区名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置省份信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                public Types.Area Province { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public Types.Area City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                                public Types.Area District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置街道信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                                public Types.Area? Street { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                                public string Detail { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置收货人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收货人电话号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tel\")]\n                        public string PhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收货地址列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n                        public Types.Address[] AddressList { get; set; } = default!;\n                    }\n\n                    public class Logistics\n                    {\n                        public static class Types\n                        {\n                            public class ShippedOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置子订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipped_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_id\")]\n                                public string ShippedOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long SKUId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置购买数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_num\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int SKUCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置发货数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipped_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_num\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int ShippedCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置快递公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"express_company_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"express_company_id\")]\n                        public string CompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置快递单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string LogisticsNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                        public string? PackageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已发货子订单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipped_order_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_info\")]\n                        public Types.ShippedOrder[]? ShippedOrderList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流变更时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置收货人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receiver_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_msg\")]\n                public Types.Receiver Receiver { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置发货物流信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_msg\")]\n                public Types.Logistics Logistics { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradePendingEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradePending 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/277 ]]>\n    /// </para>\n    /// </summary>\n    public class TradePendingEvent : DouyinShopEvent<TradePendingEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeSellerShipEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeSellerShip 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/111 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeSellerShipEvent : DouyinShopEvent<TradeSellerShipEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : TradePartlySellerShipEvent.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Events/Trade/TradeSuccessEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Events\n{\n    /// <summary>\n    /// <para>表示 doudian_trade_TradeSuccess 消息的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://op.jinritemai.com/docs/message-docs/30/112 ]]>\n    /// </para>\n    /// </summary>\n    public class TradeSuccessEvent : DouyinShopEvent<TradeSuccessEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"p_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"p_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"s_ids\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringArrayConverter))]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                public int OrderType { get; set; }\n\n                /// <summary>\n                /// 获取或设置交易完成时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"complete_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"complete_time\")]\n                public long CompleteTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置业务来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                public int BusinessType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Exceptions/DouyinShopEventSerializationException.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Exceptions\n{\n    public class DouyinShopEventSerializationException : DouyinShopException\n    {\n        /// <inheritdoc/>\n        internal DouyinShopEventSerializationException()\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopEventSerializationException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopEventSerializationException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Exceptions/DouyinShopRequestMarshalException.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Exceptions\n{\n    public class DouyinShopRequestMarshalException : DouyinShopException\n    {\n        /// <inheritdoc/>\n        internal DouyinShopRequestMarshalException()\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestMarshalException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestMarshalException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Exceptions/DouyinShopRequestSignatureException.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Exceptions\n{\n    public class DouyinShopRequestSignatureException : DouyinShopException\n    {\n        /// <inheritdoc/>\n        internal DouyinShopRequestSignatureException()\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestSignatureException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestSignatureException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Exceptions/DouyinShopRequestTimeoutException.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Exceptions\n{\n    public class DouyinShopRequestTimeoutException : DouyinShopException\n    {\n        /// <inheritdoc/>\n        internal DouyinShopRequestTimeoutException()\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestTimeoutException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        internal DouyinShopRequestTimeoutException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientEventExtensions.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    /// <summary>\n    /// 为 <see cref=\"DouyinShopClient\"/> 提供消息推送事件的扩展方法。\n    /// </summary>\n    public static class DouyinShopClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinShopEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"callbackJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEvent<TEvent>(this DouyinShopClient client, string callbackJson)\n            where TEvent : DouyinShopEvent, new()\n        {\n            if (client == null) throw new ArgumentNullException(nameof(client));\n            if (string.IsNullOrEmpty(callbackJson)) throw new ArgumentNullException(callbackJson);\n\n            try\n            {\n                return client.JsonSerializer.Deserialize<TEvent>(callbackJson);\n            }\n            catch (Exception ex)\n            {\n                throw new Exceptions.DouyinShopEventSerializationException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinShopEvent\"/> 对象数组。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"callbackJson\"></param>\n        /// <returns></returns>\n        public static TEvent[] DeserializeEvents<TEvent>(this DouyinShopClient client, string callbackJson)\n            where TEvent : DouyinShopEvent, new()\n        {\n            if (client == null) throw new ArgumentNullException(nameof(client));\n            if (string.IsNullOrEmpty(callbackJson)) throw new ArgumentNullException(callbackJson);\n\n            try\n            {\n                return client.JsonSerializer.Deserialize<TEvent[]>(callbackJson);\n            }\n            catch (Exception ex)\n            {\n                throw new Exceptions.DouyinShopEventSerializationException(\"Failed to deserialize event. Please see the inner exception for more details.\", ex);\n            }\n        }\n\n        /// <summary>\n        /// <para>验证消息推送事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/153/99 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"callbackJson\">抖店回调通知中请求正文（JSON 格式）。</param>\n        /// <param name=\"callbackSignature\">抖店回调通知中的 \"event-sign\" 请求标头。</param>\n        /// <returns></returns>\n        public static bool VerifyEventSignature(this DouyinShopClient client, string callbackJson, string callbackSignature)\n        {\n            if (client == null) throw new ArgumentNullException(nameof(client));\n            if (callbackJson == null) throw new ArgumentNullException(nameof(callbackJson));\n\n            try\n            {\n                Utilities.JsonUtility.Format(callbackJson); // 验证是否是有效的 JSON\n\n                string plainText = $\"{client.Credentials.AppKey}{callbackJson}{client.Credentials.AppSecret}\";\n                string signText = Utilities.MD5Utility.Hash(plainText);\n                return string.Equals(signText, callbackSignature, StringComparison.OrdinalIgnoreCase);\n            }\n            catch\n            {\n                return false;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteAddressExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteAddressExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /address/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/558 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AddressListResponse> ExecuteAddressListAsync(this DouyinShopClient client, Models.AddressListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"address\", \"list\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AddressListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /address/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/741 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AddressCreateResponse> ExecuteAddressCreateAsync(this DouyinShopClient client, Models.AddressCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"address\", \"create\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AddressCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /address/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/742 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AddressUpdateResponse> ExecuteAddressUpdateAsync(this DouyinShopClient client, Models.AddressUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"address\", \"update\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AddressUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /address/getAreasByProvince 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/334 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AddressGetAreasByProvinceResponse> ExecuteAddressGetAreasByProvinceAsync(this DouyinShopClient client, Models.AddressGetAreasByProvinceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"address\", \"getAreasByProvince\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AddressGetAreasByProvinceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /address/getProvince 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/336 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AddressGetProvinceResponse> ExecuteAddressGetProvinceAsync(this DouyinShopClient client, Models.AddressGetProvinceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"address\", \"getProvince\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AddressGetProvinceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteAftersaleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteAftersaleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/timeExtend 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/242 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleTimeExtendResponse> ExecuteAftersaleTimeExtendAsync(this DouyinShopClient client, Models.AftersaleTimeExtendRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"timeExtend\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleTimeExtendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/buyerExchange 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/241 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleBuyerExchangeResponse> ExecuteAftersaleBuyerExchangeAsync(this DouyinShopClient client, Models.AftersaleBuyerExchangeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"buyerExchange\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleBuyerExchangeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/addOrderRemark 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/585 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleAddOrderRemarkResponse> ExecuteAftersaleAddOrderRemarkAsync(this DouyinShopClient client, Models.AftersaleAddOrderRemarkRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"addOrderRemark\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleAddOrderRemarkResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/submitEvidence 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/255 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleSubmitEvidenceResponse> ExecuteAftersaleSubmitEvidenceAsync(this DouyinShopClient client, Models.AftersaleSubmitEvidenceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"submitEvidence\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleSubmitEvidenceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/OpenAfterSaleChannel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/764 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleOpenAfterSaleChannelResponse> ExecuteAftersaleOpenAfterSaleChannelAsync(this DouyinShopClient client, Models.AftersaleOpenAfterSaleChannelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"OpenAfterSaleChannel\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleOpenAfterSaleChannelResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/buyerExchangeConfirm 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/768 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleBuyerExchangeConfirmResponse> ExecuteAftersaleBuyerExchangeConfirmAsync(this DouyinShopClient client, Models.AftersaleBuyerExchangeConfirmRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"buyerExchangeConfirm\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleBuyerExchangeConfirmResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/CancelSendGoodsSuccess 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/816 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleCancelSendGoodsSuccessResponse> ExecuteAftersaleCancelSendGoodsSuccessAsync(this DouyinShopClient client, Models.AftersaleCancelSendGoodsSuccessRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"CancelSendGoodsSuccess\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleCancelSendGoodsSuccessResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/returnGoodsToWareHouseSuccess 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/815 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleReturnGoodsToWareHouseSuccessResponse> ExecuteAftersaleReturnGoodsToWareHouseSuccessAsync(this DouyinShopClient client, Models.AftersaleReturnGoodsToWareHouseSuccessRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"returnGoodsToWareHouseSuccess\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleReturnGoodsToWareHouseSuccessResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/Operate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/560 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleOperateResponse> ExecuteAftersaleOperateAsync(this DouyinShopClient client, Models.AftersaleOperateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"Operate\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleOperateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/applyLogisticsIntercept 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/897 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleApplyLogisticsInterceptResponse> ExecuteAftersaleApplyLogisticsInterceptAsync(this DouyinShopClient client, Models.AftersaleApplyLogisticsInterceptRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"applyLogisticsIntercept\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleApplyLogisticsInterceptResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/refundListSearch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/254 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleRefundListSearchResponse> ExecuteAftersaleRefundListSearchAsync(this DouyinShopClient client, Models.AftersaleRefundListSearchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"refundListSearch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleRefundListSearchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/List 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/254 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleListResponse> ExecuteAftersaleListAsync(this DouyinShopClient client, Models.AftersaleListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"List\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /afterSale/Detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/17/1095 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AftersaleDetailResponse> ExecuteAftersaleDetailAsync(this DouyinShopClient client, Models.AftersaleDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"afterSale\", \"Detail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AftersaleDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteAllianceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteAllianceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /alliance/getOrderList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/469 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AllianceGetOrderListResponse> ExecuteAllianceGetOrderListAsync(this DouyinShopClient client, Models.AllianceGetOrderListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"alliance\", \"getOrderList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AllianceGetOrderListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        #region MaterialsProducts\n        /// <summary>\n        /// <para>异步调用 [POST] /alliance/materialsProductsSearch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/924 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AllianceMaterialsProductsSearchResponse> ExecuteAllianceMaterialsProductsSearchAsync(this DouyinShopClient client, Models.AllianceMaterialsProductsSearchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"alliance\", \"materialsProductsSearch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AllianceMaterialsProductsSearchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /alliance/materialsProductsDetails 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/1356 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AllianceMaterialsProductsDetailsResponse> ExecuteAllianceMaterialsProductsDetailsAsync(this DouyinShopClient client, Models.AllianceMaterialsProductsDetailsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"alliance\", \"materialsProductsDetails\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AllianceMaterialsProductsDetailsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteAntiSpamExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteAntiSpamExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /antispam/userLogin 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/635 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AntiSpamUserLoginResponse> ExecuteAntiSpamUserLoginAsync(this DouyinShopClient client, Models.AntiSpamUserLoginRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"antispam\", \"userLogin\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AntiSpamUserLoginResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /antispam/orderSend 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/649 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AntiSpamOrderSendResponse> ExecuteAntiSpamOrderSendAsync(this DouyinShopClient client, Models.AntiSpamOrderSendRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"antispam\", \"orderSend\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AntiSpamOrderSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /antispam/orderQuery 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/650 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AntiSpamOrderQueryResponse> ExecuteAntiSpamOrderQueryAsync(this DouyinShopClient client, Models.AntiSpamOrderQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"antispam\", \"orderQuery\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.AntiSpamOrderQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteBTASExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteBTASExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/listBrand 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/575 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASListBrandResponse> ExecuteBTASListBrandAsync(this DouyinShopClient client, Models.BTASListBrandRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"listBrand\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASListBrandResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/shipping 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/489 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASShippingResponse> ExecuteBTASShippingAsync(this DouyinShopClient client, Models.BTASShippingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"shipping\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASShippingResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/getInspectionOrder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/473 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASGetInspectionOrderResponse> ExecuteBTASGetInspectionOrderAsync(this DouyinShopClient client, Models.BTASGetInspectionOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"getInspectionOrder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASGetInspectionOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/saveInspectionOnline 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/572 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASSaveInspectionOnlineResponse> ExecuteBTASSaveInspectionOnlineAsync(this DouyinShopClient client, Models.BTASSaveInspectionOnlineRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"saveInspectionOnline\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASSaveInspectionOnlineResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/getOrderInspectionResult 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/573 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASGetOrderInspectionResultResponse> ExecuteBTASGetOrderInspectionResultAsync(this DouyinShopClient client, Models.BTASGetOrderInspectionResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"getOrderInspectionResult\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASGetOrderInspectionResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /btas/saveInspectionInfo 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/49/574 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BTASSaveInspectionInformationResponse> ExecuteBTASSaveInspectionInformationAsync(this DouyinShopClient client, Models.BTASSaveInspectionInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"btas\", \"saveInspectionInfo\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BTASSaveInspectionInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteBuyinExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteBuyinExtensions\n    {\n        #region Activity\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/applyActivities 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/744 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinApplyActivitiesResponse> ExecuteBuyinApplyActivitiesAsync(this DouyinShopClient client, Models.BuyinApplyActivitiesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"applyActivities\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinApplyActivitiesResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/activitySearch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/743 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinActivitySearchResponse> ExecuteBuyinActivitySearchAsync(this DouyinShopClient client, Models.BuyinActivitySearchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"activitySearch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinActivitySearchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Plan\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/simplePlan 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/923 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinSimplePlanResponse> ExecuteBuyinSimplePlanAsync(this DouyinShopClient client, Models.BuyinSimplePlanRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"simplePlan\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinSimplePlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/exclusivePlan 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/922 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinExclusivePlanResponse> ExecuteBuyinExclusivePlanAsync(this DouyinShopClient client, Models.BuyinExclusivePlanRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"exclusivePlan\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinExclusivePlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region OrientPlan\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/orienPlanList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/705 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinOrientPlanListResponse> ExecuteBuyinOrientPlanListAsync(this DouyinShopClient client, Models.BuyinOrientPlanListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"orienPlanList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinOrientPlanListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/createOrUpdateOrienPlan 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/708 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinCreateOrUpdateOrientPlanResponse> ExecuteBuyinCreateOrUpdateOrientPlanAsync(this DouyinShopClient client, Models.BuyinCreateOrUpdateOrientPlanRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"createOrUpdateOrienPlan\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinCreateOrUpdateOrientPlanResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/orienPlanCtrl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/704 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinOrientPlanControlResponse> ExecuteBuyinOrientPlanControlAsync(this DouyinShopClient client, Models.BuyinOrientPlanControlRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"orienPlanCtrl\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinOrientPlanControlResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/orienPlanAuthors 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/709 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinOrientPlanAuthorsResponse> ExecuteBuyinOrientPlanAuthorsAsync(this DouyinShopClient client, Models.BuyinOrientPlanAuthorsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"orienPlanAuthors\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinOrientPlanAuthorsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/orienPlanAudit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/707 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinOrientPlanAuditResponse> ExecuteBuyinOrientPlanAuditAsync(this DouyinShopClient client, Models.BuyinOrientPlanAuditRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"orienPlanAudit\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinOrientPlanAuditResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/orienPlanAuthorsAdd 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/706 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinOrientPlanAuthorsAddResponse> ExecuteBuyinOrientPlanAuthorsAddAsync(this DouyinShopClient client, Models.BuyinOrientPlanAuthorsAddRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"orienPlanAuthorsAdd\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinOrientPlanAuthorsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        /// <summary>\n        /// <para>异步调用 [POST] /buyin/instituteOrderAds 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/61/1296 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BuyinInstituteOrderAdsResponse> ExecuteBuyinInstituteOrderAdsAsync(this DouyinShopClient client, Models.BuyinInstituteOrderAdsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"buyin\", \"instituteOrderAds\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.BuyinInstituteOrderAdsResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteCouponsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteCouponsExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /coupons/cancelVerify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/52/668 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CouponsCancelVerifyResponse> ExecuteCouponsCancelVerifyAsync(this DouyinShopClient client, Models.CouponsCancelVerifyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"coupons\", \"cancelVerify\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CouponsCancelVerifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /coupons/abandon 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/52/669 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CouponsAbandonResponse> ExecuteCouponsAbandonAsync(this DouyinShopClient client, Models.CouponsAbandonRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"coupons\", \"abandon\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CouponsAbandonResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /coupons/syncV2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/52/712 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CouponsSyncV2Response> ExecuteCouponsSyncV2Async(this DouyinShopClient client, Models.CouponsSyncV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"coupons\", \"syncV2\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CouponsSyncV2Response>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /coupons/verifyV2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/52/797 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CouponsVerifyV2Response> ExecuteCouponsVerifyV2Async(this DouyinShopClient client, Models.CouponsVerifyV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"coupons\", \"verifyV2\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CouponsVerifyV2Response>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteCrossBorderExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteCrossBorderExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/queryBalance 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/662 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderQueryBalanceResponse> ExecuteCrossBorderQueryBalanceAsync(this DouyinShopClient client, Models.CrossBorderQueryBalanceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"queryBalance\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderQueryBalanceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/bankAccountVerify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/664 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderBankAccountVerifyResponse> ExecuteCrossBorderBankAccountVerifyAsync(this DouyinShopClient client, Models.CrossBorderBankAccountVerifyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"bankAccountVerify\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderBankAccountVerifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/stockTaking 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/883 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderStockTakingResponse> ExecuteCrossBorderStockTakingAsync(this DouyinShopClient client, Models.CrossBorderStockTakingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"stockTaking\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderStockTakingResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/stockTransform 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/918 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderStockTransformResponse> ExecuteCrossBorderStockTransformAsync(this DouyinShopClient client, Models.CrossBorderStockTransformRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"stockTransform\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderStockTransformResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/warehouseInOutboundEvent 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/919 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderWarehouseInOutboundEventResponse> ExecuteCrossBorderWarehouseInOutboundEventAsync(this DouyinShopClient client, Models.CrossBorderWarehouseInOutboundEventRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"warehouseInOutboundEvent\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderWarehouseInOutboundEventResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/OrderInterception 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/920 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderOrderInterceptionResponse> ExecuteCrossBorderOrderInterceptionAsync(this DouyinShopClient client, Models.CrossBorderOrderInterceptionRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"OrderInterception\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderOrderInterceptionResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /crossBorder/orderList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/496 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CrossBorderOrderListResponse> ExecuteCrossBorderOrderListAsync(this DouyinShopClient client, Models.CrossBorderOrderListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"crossBorder\", \"orderList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.CrossBorderOrderListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteDutyFreeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteDutyFreeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /dutyFree/orderConfirm 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/53/702 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.DutyFreeOrderConfirmResponse> ExecuteDutyFreeOrderConfirmAsync(this DouyinShopClient client, Models.DutyFreeOrderConfirmRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"dutyFree\", \"orderConfirm\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.DutyFreeOrderConfirmResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteFreightTemplateExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteFreightTemplateExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /freightTemplate/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/565 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FreightTemplateListResponse> ExecuteFreightTemplateListAsync(this DouyinShopClient client, Models.FreightTemplateListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"freightTemplate\", \"list\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.FreightTemplateListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteIOPExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteIOPExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/roleGet 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/672 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPRoleGetResponse> ExecuteIOPRoleGetAsync(this DouyinShopClient client, Models.IOPRoleGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"roleGet\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPRoleGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/orderList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/673 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPOrderListResponse> ExecuteIOPOrderListAsync(this DouyinShopClient client, Models.IOPOrderListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"orderList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPOrderListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/orderInfo 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/678 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPOrderInformationResponse> ExecuteIOPOrderInformationAsync(this DouyinShopClient client, Models.IOPOrderInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"orderInfo\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPOrderInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        #region Seller\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/sellerDistribute 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/958 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPSellerDistributeResponse> ExecuteIOPSellerDistributeAsync(this DouyinShopClient client, Models.IOPSellerDistributeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"sellerDistribute\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPSellerDistributeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/sellerCancleDistribute 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/958 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPSellerCancelDistributeResponse> ExecuteIOPSellerCancelDistributeAsync(this DouyinShopClient client, Models.IOPSellerCancelDistributeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"sellerCancleDistribute\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPSellerCancelDistributeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/sellerSupplierList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/958 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPSellerSupplierListResponse> ExecuteIOPSellerSupplierListAsync(this DouyinShopClient client, Models.IOPSellerSupplierListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"sellerSupplierList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPSellerSupplierListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/sellerOrderList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/960 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPSellerOrderListResponse> ExecuteIOPSellerOrderListAsync(this DouyinShopClient client, Models.IOPSellerOrderListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"sellerOrderList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPSellerOrderListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/sellerOrderInfo 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/959 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPSellerOrderInformationResponse> ExecuteIOPSellerOrderInformationAsync(this DouyinShopClient client, Models.IOPSellerOrderInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"sellerOrderInfo\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPSellerOrderInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Waybill\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/waybillGet 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/674 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPWaybillGetResponse> ExecuteIOPWaybillGetAsync(this DouyinShopClient client, Models.IOPWaybillGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"waybillGet\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPWaybillGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/waybillCancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/675 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPWaybillCancelResponse> ExecuteIOPWaybillCancelAsync(this DouyinShopClient client, Models.IOPWaybillCancelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"waybillCancel\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPWaybillCancelResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/waybillReturn 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/675 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPWaybillReturnResponse> ExecuteIOPWaybillReturnAsync(this DouyinShopClient client, Models.IOPWaybillReturnRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"waybillReturn\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPWaybillReturnResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /iop/waybillUpdate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/59/677 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.IOPWaybillUpdateResponse> ExecuteIOPWaybillUpdateAsync(this DouyinShopClient client, Models.IOPWaybillUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"iop\", \"waybillUpdate\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.IOPWaybillUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteLogisticsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteLogisticsExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/getOutRange 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/327 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetOutRangeResponse> ExecuteLogisticsGetOutRangeAsync(this DouyinShopClient client, Models.LogisticsGetOutRangeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"getOutRange\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsGetOutRangeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/trackNoRouteDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/784 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsTrackNoRouteDetailResponse> ExecuteLogisticsTrackNoRouteDetailAsync(this DouyinShopClient client, Models.LogisticsTrackNoRouteDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"trackNoRouteDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsTrackNoRouteDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/templateList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/476 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsTemplateListResponse> ExecuteLogisticsTemplateListAsync(this DouyinShopClient client, Models.LogisticsTemplateListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"templateList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsTemplateListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/getCustomTemplateList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/784 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetCustomTemplateListResponse> ExecuteLogisticsGetCustomTemplateListAsync(this DouyinShopClient client, Models.LogisticsGetCustomTemplateListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"getCustomTemplateList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsGetCustomTemplateListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/listShopNetsite 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/576 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsListShopNetSiteResponse> ExecuteLogisticsListShopNetSiteAsync(this DouyinShopClient client, Models.LogisticsListShopNetSiteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"listShopNetsite\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsListShopNetSiteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/newCreateOrder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/1140 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsNewCreateOrderResponse> ExecuteLogisticsNewCreateOrderAsync(this DouyinShopClient client, Models.LogisticsNewCreateOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"newCreateOrder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsNewCreateOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/updateOrder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/494 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsUpdateOrderResponse> ExecuteLogisticsUpdateOrderAsync(this DouyinShopClient client, Models.LogisticsUpdateOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"updateOrder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsUpdateOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /logistics/cancelOrder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/397 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsCancelOrderResponse> ExecuteLogisticsCancelOrderAsync(this DouyinShopClient client, Models.LogisticsCancelOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"logistics\", \"cancelOrder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.LogisticsCancelOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteMaterialExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteMaterialExtensions\n    {\n        #region Material\n        /// <summary>\n        /// <para>异步调用 [POST] /material/searchMaterial 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/943 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialSearchMaterialResponse> ExecuteMaterialSearchMaterialAsync(this DouyinShopClient client, Models.MaterialSearchMaterialRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"searchMaterial\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialSearchMaterialResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/queryMaterialDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/950 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialQueryMaterialDetailResponse> ExecuteMaterialQueryMaterialDetailAsync(this DouyinShopClient client, Models.MaterialQueryMaterialDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"queryMaterialDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialQueryMaterialDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/editMaterial 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/956 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialEditMaterialResponse> ExecuteMaterialEditMaterialAsync(this DouyinShopClient client, Models.MaterialEditMaterialRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"editMaterial\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialEditMaterialResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/deleteMaterial 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/944 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialDeleteMaterialResponse> ExecuteMaterialDeleteMaterialAsync(this DouyinShopClient client, Models.MaterialDeleteMaterialRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"deleteMaterial\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialDeleteMaterialResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/moveMaterialToRecycleBin 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/951 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialMoveMaterialToRecyleBinResponse> ExecuteMaterialMoveMaterialToRecyleBinAsync(this DouyinShopClient client, Models.MaterialMoveMaterialToRecyleBinRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"moveMaterialToRecycleBin\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialMoveMaterialToRecyleBinResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/recoverMaterial 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/954 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialRecoverMaterialResponse> ExecuteMaterialRecoverMaterialAsync(this DouyinShopClient client, Models.MaterialRecoverMaterialRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"recoverMaterial\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialRecoverMaterialResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Folder\n        /// <summary>\n        /// <para>异步调用 [POST] /material/searchFolder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/952 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialSearchFolderResponse> ExecuteMaterialSearchFolderAsync(this DouyinShopClient client, Models.MaterialSearchFolderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"searchFolder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialSearchFolderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/getFolderInfo 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/953 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialGetFolderInformationResponse> ExecuteMaterialGetFolderInformationAsync(this DouyinShopClient client, Models.MaterialGetFolderInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"getFolderInfo\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialGetFolderInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/createFolder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/946 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialCreateFolderResponse> ExecuteMaterialCreateFolderAsync(this DouyinShopClient client, Models.MaterialCreateFolderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"createFolder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialCreateFolderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/editFolder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/948 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialEditFolderResponse> ExecuteMaterialEditFolderAsync(this DouyinShopClient client, Models.MaterialEditFolderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"editFolder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialEditFolderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/deleteFolder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/945 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialDeleteFolderResponse> ExecuteMaterialDeleteFolderAsync(this DouyinShopClient client, Models.MaterialDeleteFolderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"deleteFolder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialDeleteFolderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/moveFolderToRecycleBin 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/947 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialMoveFolderToRecyleBinResponse> ExecuteMaterialMoveFolderToRecyleBinAsync(this DouyinShopClient client, Models.MaterialMoveFolderToRecyleBinRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"moveFolderToRecycleBin\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialMoveFolderToRecyleBinResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/recoverFolder 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/1096 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialRecoverFolderResponse> ExecuteMaterialRecoverFolderAsync(this DouyinShopClient client, Models.MaterialRecoverFolderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"recoverFolder\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialRecoverFolderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/uploadVideoAsync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/949 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialUploadVideoAsyncResponse> ExecuteMaterialUploadVideoAsyncAsync(this DouyinShopClient client, Models.MaterialUploadVideoAsyncRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"uploadVideoAsync\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialUploadVideoAsyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /material/uploadImageSync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/69/955 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MaterialUploadImageSyncResponse> ExecuteMaterialUploadImageSyncAsync(this DouyinShopClient client, Models.MaterialUploadImageSyncRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"material\", \"uploadImageSync\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MaterialUploadImageSyncResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteMemberExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteMemberExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /member/searchList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/366 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MemberSearchListResponse> ExecuteMemberSearchListAsync(this DouyinShopClient client, Models.MemberSearchListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"member\", \"searchList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MemberSearchListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /member/batchUpdate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/329 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MemberBatchUpdateResponse> ExecuteMemberBatchUpdateAsync(this DouyinShopClient client, Models.MemberBatchUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"member\", \"batchUpdate\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.MemberBatchUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteOpportunityProductExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteOpportunityProductExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /opptyProduct/apply 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/738 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpportunityProductApplyResponse> ExecuteOpportunityProductApplyAsync(this DouyinShopClient client, Models.OpportunityProductApplyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"opptyProduct\", \"apply\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OpportunityProductApplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /opptyProduct/clue 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/739 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpportunityProductClueResponse> ExecuteOpportunityProductClueAsync(this DouyinShopClient client, Models.OpportunityProductClueRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"opptyProduct\", \"clue\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OpportunityProductClueResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /opptyProduct/getApplyProgress 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/740 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpportunityProductGetApplyProgressResponse> ExecuteOpportunityProductGetApplyProgressAsync(this DouyinShopClient client, Models.OpportunityProductGetApplyProgressRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"opptyProduct\", \"getApplyProgress\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OpportunityProductGetApplyProgressResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteOrderCodeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteOrderCodeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /orderCode/erpShopBindOrderCode 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/51/546 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderCodeERPShopBindOrderCodeResponse> ExecuteOrderCodeERPShopBindOrderCodeAsync(this DouyinShopClient client, Models.OrderCodeERPShopBindOrderCodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"orderCode\", \"erpShopBindOrderCode\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderCodeERPShopBindOrderCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /orderCode/downloadOrderCodeByShop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/51/479 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderCodeDownloadOrderCodeByShopResponse> ExecuteOrderCodeDownloadOrderCodeByShopAsync(this DouyinShopClient client, Models.OrderCodeDownloadOrderCodeByShopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"orderCode\", \"downloadOrderCodeByShop\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderCodeDownloadOrderCodeByShopResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /orderCode/batchGetOrderCodeByShop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/51/688 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderCodeBatchGetOrderCodeByShopResponse> ExecuteOrderCodeBatchGetOrderCodeByShopAsync(this DouyinShopClient client, Models.OrderCodeBatchGetOrderCodeByShopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"orderCode\", \"batchGetOrderCodeByShop\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderCodeBatchGetOrderCodeByShopResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteOrderExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing System.Web;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteOrderExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /order/searchList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/555 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderSearchListResponse> ExecuteOrderSearchListAsync(this DouyinShopClient client, Models.OrderSearchListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"searchList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderSearchListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/orderDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/1144 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderDetailResponse> ExecuteOrderDetailAsync(this DouyinShopClient client, Models.OrderDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"orderDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/addOrderRemark 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/568 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddOrderRemarkResponse> ExecuteOrderAddOrderRemarkAsync(this DouyinShopClient client, Models.OrderAddOrderRemarkRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"addOrderRemark\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddOrderRemarkResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/updatePostAmount 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/264 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderUpdatePostAmountResponse> ExecuteOrderUpdatePostAmountAsync(this DouyinShopClient client, Models.OrderUpdatePostAmountRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"updatePostAmount\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderUpdatePostAmountResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/updateOrderAmount 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/263 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderUpdateOrderAmountResponse> ExecuteOrderUpdateOrderAmountAsync(this DouyinShopClient client, Models.OrderUpdateOrderAmountRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"updateOrderAmount\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderUpdateOrderAmountResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/addressModify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/290 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddressModifyResponse> ExecuteOrderAddressModifyAsync(this DouyinShopClient client, Models.OrderAddressModifyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"addressModify\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddressModifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/AddressAppliedSwitch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/500 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddressAppliedSwitchResponse> ExecuteOrderAddressAppliedSwitchAsync(this DouyinShopClient client, Models.OrderAddressAppliedSwitchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"AddressAppliedSwitch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddressAppliedSwitchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/addressConfirm 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/505 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddressConfirmResponse> ExecuteOrderAddressConfirmAsync(this DouyinShopClient client, Models.OrderAddressConfirmRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"addressConfirm\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddressConfirmResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/addresSwitchConfig 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/501 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddressSwitchConfigResponse> ExecuteOrderAddressSwitchConfigAsync(this DouyinShopClient client, Models.OrderAddressSwitchConfigRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"addresSwitchConfig\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddressSwitchConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/addSerialNumber 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/687 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderAddSerialNumberResponse> ExecuteOrderAddSerialNumberAsync(this DouyinShopClient client, Models.OrderAddSerialNumberRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"addSerialNumber\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderAddSerialNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        #region Encryption\n        /// <summary>\n        /// <para>异步调用 [POST] /order/batchDecrypt 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/982 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderBatchDecryptResponse> ExecuteOrderBatchDecryptAsync(this DouyinShopClient client, Models.OrderBatchDecryptRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"batchDecrypt\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderBatchDecryptResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/batchEncrypt 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/487 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderBatchEncryptResponse> ExecuteOrderBatchEncryptAsync(this DouyinShopClient client, Models.OrderBatchEncryptRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"batchEncrypt\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderBatchEncryptResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/batchSensitive 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/508 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderBatchSensitiveResponse> ExecuteOrderBatchSensitiveAsync(this DouyinShopClient client, Models.OrderBatchSensitiveRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"batchSensitive\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderBatchSensitiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/BatchSearchIndex 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/516 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderBatchSearchIndexResponse> ExecuteOrderBatchSearchIndexAsync(this DouyinShopClient client, Models.OrderBatchSearchIndexRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"BatchSearchIndex\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderBatchSearchIndexResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Insurance\n        /// <summary>\n        /// <para>异步调用 [POST] /order/insurance 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/32/626 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderInsuranceResponse> ExecuteOrderInsuranceAsync(this DouyinShopClient client, Models.OrderInsuranceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"insurance\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderInsuranceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/policy 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/32/902 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderPolicyResponse> ExecuteOrderPolicyAsync(this DouyinShopClient client, Models.OrderPolicyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"policy\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderPolicyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Service\n        /// <summary>\n        /// <para>异步调用 [POST] /order/getServiceList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/266 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderGetServiceListResponse> ExecuteOrderGetServiceListAsync(this DouyinShopClient client, Models.OrderGetServiceListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"getServiceList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderGetServiceListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/serviceDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/266 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderServiceDetailResponse> ExecuteOrderServiceDetailAsync(this DouyinShopClient client, Models.OrderServiceDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"serviceDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderServiceDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/replyService 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/75 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderReplyServiceResponse> ExecuteOrderReplyServiceAsync(this DouyinShopClient client, Models.OrderReplyServiceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"replyService\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderReplyServiceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Invoice\n        /// <summary>\n        /// <para>异步调用 [POST] /order/invoiceList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/660 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderInvoiceListResponse> ExecuteOrderInvoiceListAsync(this DouyinShopClient client, Models.OrderInvoiceListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"invoiceList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderInvoiceListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/invoiceUpload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/150/812 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderInvoiceUploadResponse> ExecuteOrderInvoiceUploadAsync(this DouyinShopClient client, Models.OrderInvoiceUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"invoiceUpload\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            if (request.FileBytes == null)\n            {\n                return await client.SendRequestWithJsonAsync<Models.OrderInvoiceUploadResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n            }\n            else\n            {\n                using var httpContent = Utilities.FileHttpContentBuilder.Build(fileName: \"invoice.pdf\", fileBytes: request.FileBytes, fileContentType: \"application/pdf\", formDataName: \"upload_file\");\n                httpContent.Add(new StringContent(client.JsonSerializer.Serialize(request), Encoding.UTF8, \"application/json\"), Constants.FormDataFields.FORMDATA_PARAM_JSON);\n\n                return await client.SendRequestAsync<Models.OrderInvoiceUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);\n            }\n        }\n        #endregion\n\n        #region CrossBorder\n        /// <summary>\n        /// <para>异步调用 [POST] /order/getCrossBorderFulfillInfo 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/15/495 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderGetCrossBorderFulfillInformationResponse> ExecuteOrderGetCrossBorderFulfillInformationAsync(this DouyinShopClient client, Models.OrderGetCrossBorderFulfillInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"getCrossBorderFulfillInfo\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderGetCrossBorderFulfillInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Settle\n        /// <summary>\n        /// <para>异步调用 [POST] /order/settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/204 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderSettleResponse> ExecuteOrderSettleAsync(this DouyinShopClient client, Models.OrderSettleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"settle\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderSettleResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/getSettleBillDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/1192 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderGetSettleBillDetailResponse> ExecuteOrderGetSettleBillDetailAsync(this DouyinShopClient client, Models.OrderGetSettleBillDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"getSettleBillDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderGetSettleBillDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/downloadToShop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/1193 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderDownloadToShopResponse> ExecuteOrderDownloadToShopAsync(this DouyinShopClient client, Models.OrderDownloadToShopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"downloadToShop\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderDownloadToShopResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/downloadSettleItemToShop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/46/1191 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderDownloadSettleItemToShopResponse> ExecuteOrderDownloadSettleItemToShopAsync(this DouyinShopClient client, Models.OrderDownloadSettleItemToShopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"downloadSettleItemToShop\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderDownloadSettleItemToShopResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region Logistics\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsAdd 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/389 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsAddResponse> ExecuteOrderLogisticsAddAsync(this DouyinShopClient client, Models.OrderLogisticsAddRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsAdd\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsCompanyList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/541 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsCompanyListResponse> ExecuteOrderLogisticsCompanyListAsync(this DouyinShopClient client, Models.OrderLogisticsCompanyListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsCompanyList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsCompanyListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsEdit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/390 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsEditResponse> ExecuteOrderLogisticsEditAsync(this DouyinShopClient client, Models.OrderLogisticsEditRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsEdit\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsEditResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsAddSinglePack 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/563 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsAddSinglePackageResponse> ExecuteOrderLogisticsAddSinglePackageAsync(this DouyinShopClient client, Models.OrderLogisticsAddSinglePackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsAddSinglePack\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsAddSinglePackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsAddMultiPack 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/562 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsAddMultiplePackageResponse> ExecuteOrderLogisticsAddMultiplePackageAsync(this DouyinShopClient client, Models.OrderLogisticsAddMultiplePackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsAddMultiPack\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsAddMultiplePackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/logisticsEditByPack 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/16/539 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderLogisticsEditByPackageResponse> ExecuteOrderLogisticsEditByPackageAsync(this DouyinShopClient client, Models.OrderLogisticsEditByPackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"order\", \"logisticsEditByPack\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.OrderLogisticsEditByPackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteProductExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteProductExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /product/listV2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/633 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductListV2Response> ExecuteProductListV2Async(this DouyinShopClient client, Models.ProductListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"listV2\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/addV2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/249 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAddV2Response> ExecuteProductAddV2Async(this DouyinShopClient client, Models.ProductAddV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"addV2\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductAddV2Response>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/editV2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/250 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductEditV2Response> ExecuteProductEditV2Async(this DouyinShopClient client, Models.ProductEditV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"editV2\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductEditV2Response>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/56 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductDetailResponse> ExecuteProductDetailAsync(this DouyinShopClient client, Models.ProductDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"detail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/del 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/61 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductDeleteResponse> ExecuteProductDeleteAsync(this DouyinShopClient client, Models.ProductDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"del\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/getCateProperty 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/94 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetCategoryPropertyResponse> ExecuteProductGetCategoryPropertyAsync(this DouyinShopClient client, Models.ProductGetCategoryPropertyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"getCateProperty\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductGetCategoryPropertyResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/setOnline 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/251 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSetOnlineResponse> ExecuteProductSetOnlineAsync(this DouyinShopClient client, Models.ProductSetOnlineRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"setOnline\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductSetOnlineResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/setOffline 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/252 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSetOfflineResponse> ExecuteProductSetOfflineAsync(this DouyinShopClient client, Models.ProductSetOfflineRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"setOffline\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductSetOfflineResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/editBuyerLimit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/262 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductEditBuyerLimitResponse> ExecuteProductEditBuyerLimitAsync(this DouyinShopClient client, Models.ProductEditBuyerLimitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"editBuyerLimit\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductEditBuyerLimitResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        #region Quality\n        /// <summary>\n        /// <para>异步调用 [POST] /product/qualityTask 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/937 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQualityTaskResponse> ExecuteProductQualityTaskAsync(this DouyinShopClient client, Models.ProductQualityTaskRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"qualityTask\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductQualityTaskResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/qualityList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/938 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQualityListResponse> ExecuteProductQualityListAsync(this DouyinShopClient client, Models.ProductQualityListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"qualityList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductQualityListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/qualityDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/939 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQualityDetailResponse> ExecuteProductQualityDetailAsync(this DouyinShopClient client, Models.ProductQualityDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"product\", \"qualityDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ProductQualityDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecutePromiseExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecutePromiseExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /promise/setSkuShipTime 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/569 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromiseSetSKUShipTimeResponse> ExecutePromiseSetSKUShipTimeAsync(this DouyinShopClient client, Models.PromiseSetSKUShipTimeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"promise\", \"setSkuShipTime\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.PromiseSetSKUShipTimeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteRecycleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteRecycleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/buyerGetOrderList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/914 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleBuyerGetOrderListResponse> ExecuteRecycleBuyerGetOrderListAsync(this DouyinShopClient client, Models.RecycleBuyerGetOrderListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"buyerGetOrderList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleBuyerGetOrderListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/buyerGetOrderDetail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/914 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleBuyerGetOrderDetailResponse> ExecuteRecycleBuyerGetOrderDetailAsync(this DouyinShopClient client, Models.RecycleBuyerGetOrderDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"buyerGetOrderDetail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleBuyerGetOrderDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/createPrice 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/904 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleCreatePriceResponse> ExecuteRecycleCreatePriceAsync(this DouyinShopClient client, Models.RecycleCreatePriceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"createPrice\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleCreatePriceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/changePrice 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/908 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleChangePriceResponse> ExecuteRecycleChangePriceAsync(this DouyinShopClient client, Models.RecycleChangePriceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"changePrice\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleChangePriceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/qualityTestingResult 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/907 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleQualityTestingResultResponse> ExecuteRecycleQualityTestingResultAsync(this DouyinShopClient client, Models.RecycleQualityTestingResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"qualityTestingResult\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleQualityTestingResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/applyChangePrice 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/909 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleApplyChangePriceResponse> ExecuteRecycleApplyChangePriceAsync(this DouyinShopClient client, Models.RecycleApplyChangePriceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"applyChangePrice\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleApplyChangePriceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/confirmReceive 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/906 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleConfirmReceiveResponse> ExecuteRecycleConfirmReceiveAsync(this DouyinShopClient client, Models.RecycleConfirmReceiveRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"confirmReceive\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleConfirmReceiveResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/sellSucceed 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/910 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleSellSucceedResponse> ExecuteRecycleSellSucceedAsync(this DouyinShopClient client, Models.RecycleSellSucceedRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"sellSucceed\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleSellSucceedResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /recycle/logisticsBack 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/68/911 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.RecycleLogisticsBackResponse> ExecuteRecycleLogisticsBackAsync(this DouyinShopClient client, Models.RecycleLogisticsBackRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"recycle\", \"logisticsBack\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.RecycleLogisticsBackResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteSKUExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteSKUExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/82 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUListResponse> ExecuteSKUListAsync(this DouyinShopClient client, Models.SKUListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"list\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/82 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUDetailResponse> ExecuteSKUDetailAsync(this DouyinShopClient client, Models.SKUDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"detail\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/editPrice 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/84 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUEditPriceResponse> ExecuteSKUEditPriceAsync(this DouyinShopClient client, Models.SKUEditPriceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"editPrice\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUEditPriceResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/editCode 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/86 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUEditCodeResponse> ExecuteSKUEditCodeAsync(this DouyinShopClient client, Models.SKUEditCodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"editCode\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUEditCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/syncStockBatch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/298 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUSyncStockBatchResponse> ExecuteSKUSyncStockBatchAsync(this DouyinShopClient client, Models.SKUSyncStockBatchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"syncStockBatch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUSyncStockBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/syncStock 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/155 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUSyncStockResponse> ExecuteSKUSyncStockAsync(this DouyinShopClient client, Models.SKUSyncStockRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"syncStock\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUSyncStockResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /sku/stockNum 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/936 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SKUStockNumberResponse> ExecuteSKUStockNumberAsync(this DouyinShopClient client, Models.SKUStockNumberRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"sku\", \"stockNum\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SKUStockNumberResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteSPUExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteSPUExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /spu/getKeyPropertyByCid 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/642 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SPUGetKeyPropertyByCategoryIdResponse> ExecuteSPUGetKeyPropertyByCategoryIdAsync(this DouyinShopClient client, Models.SPUGetKeyPropertyByCategoryIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"spu\", \"getKeyPropertyByCid\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SPUGetKeyPropertyByCategoryIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /spu/getSpuTpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/644 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SPUGetSPUTemplateResponse> ExecuteSPUGetSPUTemplateAsync(this DouyinShopClient client, Models.SPUGetSPUTemplateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"spu\", \"getSpuTpl\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SPUGetSPUTemplateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /spu/getSpuInfoBySpuId 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/643 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SPUGetSPUInformationBySPUIdResponse> ExecuteSPUGetSPUInformationBySPUIdAsync(this DouyinShopClient client, Models.SPUGetSPUInformationBySPUIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"spu\", \"getSpuInfoBySpuId\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SPUGetSPUInformationBySPUIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /spu/addShopSpu 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/14/645 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SPUAddShopSPUResponse> ExecuteSPUAddShopSPUAsync(this DouyinShopClient client, Models.SPUAddShopSPURequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"spu\", \"addShopSpu\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.SPUAddShopSPUResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteShopExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteShopExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /shop/brandList 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/54 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ShopBandListResponse> ExecuteShopBandListAsync(this DouyinShopClient client, Models.ShopBandListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"shop\", \"brandList\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ShopBandListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /shop/getShopCategory 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/13/821 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ShopGetShopCategoryResponse> ExecuteShopGetShopCategoryAsync(this DouyinShopClient client, Models.ShopGetShopCategoryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"shop\", \"getShopCategory\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.ShopGetShopCategoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteStorageExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteStorageExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /storage/notifySaleReturnStatus 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/538 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.StorageNotifySaleReturnStatusResponse> ExecuteStorageNotifySaleReturnStatusAsync(this DouyinShopClient client, Models.StorageNotifySaleReturnStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"storage\", \"notifySaleReturnStatus\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.StorageNotifySaleReturnStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteTokenExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteTokenExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /token/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/9/21 ]]> <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/9/22 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TokenCreateResponse> ExecuteTokenCreateAsync(this DouyinShopClient client, Models.TokenCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"token\", \"create\")\n                .SetQueryParam(\"app_key\", client.Credentials.AppKey);\n\n            return await client.SendRequestWithJsonAsync<Models.TokenCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /token/refresh 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/9/21 ]]> <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/guide-docs/9/22 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TokenRefreshResponse> ExecuteTokenRefreshAsync(this DouyinShopClient client, Models.TokenRefreshRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"token\", \"refresh\")\n                .SetQueryParam(\"app_key\", client.Credentials.AppKey);\n\n            return await client.SendRequestWithJsonAsync<Models.TokenRefreshResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteWarehouseExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteWarehouseExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/693 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseListResponse> ExecuteWarehouseListAsync(this DouyinShopClient client, Models.WarehouseListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"list\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseListResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/694 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseInformationResponse> ExecuteWarehouseInformationAsync(this DouyinShopClient client, Models.WarehouseInformationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"info\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseInformationResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/691 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseCreateResponse> ExecuteWarehouseCreateAsync(this DouyinShopClient client, Models.WarehouseCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"create\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/edit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/692 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseEditResponse> ExecuteWarehouseEditAsync(this DouyinShopClient client, Models.WarehouseEditRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"edit\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseEditResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/setAddr 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/697 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseSetAddressResponse> ExecuteWarehouseSetAddressAsync(this DouyinShopClient client, Models.WarehouseSetAddressRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"setAddr\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseSetAddressResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/createBatch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/695 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseCreateBatchResponse> ExecuteWarehouseCreateBatchAsync(this DouyinShopClient client, Models.WarehouseCreateBatchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"createBatch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseCreateBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/setAddrBatch 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/696 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseSetAddressBatchResponse> ExecuteWarehouseSetAddressBatchAsync(this DouyinShopClient client, Models.WarehouseSetAddressBatchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"setAddrBatch\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseSetAddressBatchResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/setPriority 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/698 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseSetPriorityResponse> ExecuteWarehouseSetPriorityAsync(this DouyinShopClient client, Models.WarehouseSetPriorityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"setPriority\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseSetPriorityResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/removeAddr 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/699 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseRemoveAddressResponse> ExecuteWarehouseRemoveAddressAsync(this DouyinShopClient client, Models.WarehouseRemoveAddressRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"removeAddr\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseRemoveAddressResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /warehouse/adjustInventory 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/34/760 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WarehouseAdjustInventoryResponse> ExecuteWarehouseAdjustInventoryAsync(this DouyinShopClient client, Models.WarehouseAdjustInventoryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"warehouse\", \"adjustInventory\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.WarehouseAdjustInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Extensions/DouyinShopClientExecuteYuncExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop\n{\n    public static class DouyinShopClientExecuteYuncExtensions\n    {\n        #region WMS\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/pushOutboundFeedback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/842 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncPushOutboundFeedbackResponse> ExecuteYuncPushOutboundFeedbackAsync(this DouyinShopClient client, Models.YuncPushOutboundFeedbackRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"pushOutboundFeedback\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncPushOutboundFeedbackResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/adjustInventory 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/930 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncAdjustInventoryResponse> ExecuteYuncAdjustInventoryAsync(this DouyinShopClient client, Models.YuncAdjustInventoryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"adjustInventory\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncAdjustInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/wmsInboundCallback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/929 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncWMSInboundCallbackResponse> ExecuteYuncWMSInboundCallbackAsync(this DouyinShopClient client, Models.YuncWMSInboundCallbackRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"wmsInboundCallback\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncWMSInboundCallbackResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n\n        #region ERP\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/shopWarehouseRefQuery 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/839 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncShopWarehouseRefQueryResponse> ExecuteYuncShopWarehouseRefQueryAsync(this DouyinShopClient client, Models.YuncShopWarehouseRefQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"shopWarehouseRefQuery\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncShopWarehouseRefQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/erpCargoSinglePush 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/890 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncERPCargoSinglePushResponse> ExecuteYuncERPCargoSinglePushAsync(this DouyinShopClient client, Models.YuncERPCargoSinglePushRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"erpCargoSinglePush\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncERPCargoSinglePushResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/createOutboundOrderToB 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/868 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncCreateOutboundOrderToBusinessResponse> ExecuteYuncCreateOutboundOrderToBusinessAsync(this DouyinShopClient client, Models.YuncCreateOutboundOrderToBusinessRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"createOutboundOrderToB\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncCreateOutboundOrderToBusinessResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/cancelOutboundOrderToB 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/745 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncCancelOutboundOrderToBusinessResponse> ExecuteYuncCancelOutboundOrderToBusinessAsync(this DouyinShopClient client, Models.YuncCancelOutboundOrderToBusinessRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"cancelOutboundOrderToB\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncCancelOutboundOrderToBusinessResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/erpInboundCreate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/899 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncERPInboundCreateResponse> ExecuteYuncERPInboundCreateAsync(this DouyinShopClient client, Models.YuncERPInboundCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"erpInboundCreate\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncERPInboundCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /yunc/erpInboundCancel 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://op.jinritemai.com/docs/api-docs/50/928 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.YuncERPInboundCancelResponse> ExecuteYuncERPInboundCancelAsync(this DouyinShopClient client, Models.YuncERPInboundCancelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateRequest(request, HttpMethod.Post, \"yunc\", \"erpInboundCancel\")\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendRequestWithJsonAsync<Models.YuncERPInboundCancelResponse>(flurlReq, data: request, cancellationToken: cancellationToken);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Interceptors/DouyinShopRequestFormatInterceptor.cs",
    "content": "using System;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Text;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Interceptors\n{\n    internal partial class DouyinShopRequestFormatInterceptor : FlurlHttpCallInterceptor\n    {\n        public override async Task BeforeCallAsync(FlurlCall flurlCall)\n        {\n            if (flurlCall == null) throw new ArgumentNullException(nameof(flurlCall));\n\n            try\n            {\n                if (flurlCall.HttpRequestMessage.Content is MultipartFormDataContent)\n                {\n                    MultipartFormDataContent oldFormdataContent = (MultipartFormDataContent)flurlCall.HttpRequestMessage.Content;\n                    HttpContent? oldParamHttpContent = oldFormdataContent.SingleOrDefault(e => Constants.FormDataFields.FORMDATA_PARAM_JSON.Equals(e.Headers.ContentDisposition?.Name?.Trim('\\\"')));\n                    if (oldParamHttpContent != null)\n                    {\n                        string paramJson = Utilities.JsonUtility.Format(await oldParamHttpContent.ReadAsStringAsync());\n\n                        MultipartFormDataContent newFormdataContent = new MultipartFormDataContent(\"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\"));\n                        foreach (HttpContent formdataItem in oldFormdataContent)\n                        {\n                            if (formdataItem == oldParamHttpContent)\n                                continue;\n\n                            if (string.IsNullOrEmpty(formdataItem.Headers.ContentDisposition!.FileName))\n                                newFormdataContent.Add(formdataItem, formdataItem.Headers.ContentDisposition.Name!);\n                            else\n                                newFormdataContent.Add(formdataItem, formdataItem.Headers.ContentDisposition.Name!, formdataItem.Headers.ContentDisposition.FileName!);\n                        }\n\n                        HttpContent newParamHttpContent = new StringContent(paramJson, Encoding.UTF8, \"application/json\");\n                        newFormdataContent.Add(newParamHttpContent, Constants.FormDataFields.FORMDATA_PARAM_JSON);\n                        flurlCall.HttpRequestMessage.Content = newFormdataContent;\n\n                        flurlCall.Request.AfterCall((_) => oldFormdataContent.Dispose());\n                    }\n                }\n                else\n                {\n                    string paramJson = Utilities.JsonUtility.Format(flurlCall.RequestBody);\n\n                    if (!string.IsNullOrEmpty(paramJson))\n                    {\n                        HttpContent oldParamHttpContent = flurlCall.HttpRequestMessage.Content;\n\n                        HttpContent newParamHttpContent = new ByteArrayContent(Encoding.UTF8.GetBytes(paramJson));\n                        newParamHttpContent.Headers.ContentType = MediaTypeHeaderValue.Parse(\"application/json; charset=UTF-8\");\n                        flurlCall.HttpRequestMessage.Content = newParamHttpContent;\n\n                        oldParamHttpContent?.Dispose();\n                    }\n                }\n            }\n            catch (Exceptions.DouyinShopRequestSignatureException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new Exceptions.DouyinShopRequestMarshalException(\"Failed to marshal request data. Please see the inner exception for more details.\", ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Interceptors/DouyinShopRequestSignInterceptor.cs",
    "content": "using System;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing System.Web;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Interceptors\n{\n    internal partial class DouyinShopRequestSignInterceptor : FlurlHttpCallInterceptor\n    {\n        private readonly string _baseUrl;\n        private readonly string _appKey;\n        private readonly string _appSecret;\n        private readonly string _signMethod;\n\n        public DouyinShopRequestSignInterceptor(string baseUrl, string appKey, string appSecret, string signMethod)\n        {\n            _baseUrl = baseUrl;\n            _appKey = appKey;\n            _appSecret = appSecret;\n            _signMethod = signMethod;\n        }\n\n        public override async Task BeforeCallAsync(FlurlCall flurlCall)\n        {\n            if (flurlCall == null) throw new ArgumentNullException(nameof(flurlCall));\n\n            var queries = HttpUtility.ParseQueryString(flurlCall.HttpRequestMessage.RequestUri?.Query ?? string.Empty);\n            string method = queries.Get(\"method\") ?? flurlCall.Request.Url.ToString().Substring(_baseUrl.Length).Split('?')[0].TrimStart('/').TrimEnd('/').Trim().Replace(\"/\", \".\");\n            string version = queries.Get(\"v\") ?? string.Empty;\n            string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString();\n\n            string plainText;\n            string signText;\n\n            try\n            {\n                string body = string.Empty;\n                if (flurlCall.HttpRequestMessage.Content is MultipartFormDataContent)\n                {\n                    // NOTICE: multipart/form-data 文件上传请求的待签名参数需特殊处理\n                    var formdataContent = (MultipartFormDataContent)flurlCall.HttpRequestMessage.Content;\n                    var httpContent = formdataContent.SingleOrDefault(e => Constants.FormDataFields.FORMDATA_PARAM_JSON.Equals(e.Headers.ContentDisposition?.Name?.Trim('\\\"')));\n                    if (httpContent != null)\n                    {\n                        body = await httpContent.ReadAsStringAsync();\n                    }\n                }\n                else\n                {\n                    body = flurlCall.RequestBody ?? string.Empty;\n                }\n\n                plainText = $\"{_appSecret}app_key{_appKey}method{method}{Constants.FormDataFields.FORMDATA_PARAM_JSON}{body}timestamp{timestamp}v{version}{_appSecret}\";\n\n                switch (_signMethod)\n                {\n                    case Constants.SignAlgorithms.MD5:\n                        {\n                            signText = Utilities.MD5Utility.Hash(plainText).ToLower();\n                        }\n                        break;\n\n                    case Constants.SignAlgorithms.HMAC_SHA256:\n                        {\n                            signText = Utilities.HMACUtility.HashWithSHA256(_appSecret, plainText).ToLower();\n                        }\n                        break;\n\n                    default:\n                        throw new Exceptions.DouyinShopRequestSignatureException(\"Unsupported sign method.\");\n                }\n            }\n            catch (Exceptions.DouyinShopRequestSignatureException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new Exceptions.DouyinShopRequestSignatureException(\"Failed to generate signature of request. Please see the inner exception for more details.\", ex);\n            }\n\n            flurlCall.Request.SetQueryParam(\"app_key\", _appKey);\n            flurlCall.Request.SetQueryParam(\"method\", method);\n            flurlCall.Request.SetQueryParam(\"sign\", signText);\n            flurlCall.Request.SetQueryParam(\"sign_method\", _signMethod);\n            flurlCall.Request.SetQueryParam(\"timestamp\", timestamp);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressCreateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/create 接口的请求。</para>\n    /// </summary>\n    public class AddressCreateRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置收件人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                public string Reciever { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系方式类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_type\")]\n                public int ContactType { get; set; }\n\n                /// <summary>\n                /// 获取或设置手机号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置固话号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fixed_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fixed_phone\")]\n                public string? TeleNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                public int ProvinceId { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                public int CityId { get; set; }\n\n                /// <summary>\n                /// 获取或设置区县 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"town_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"town_id\")]\n                public int DistrictId { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                public int? StreetId { get; set; }\n\n                /// <summary>\n                /// 获取或设置详情地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public string Detail { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置售后地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/create 接口的响应。</para>\n    /// </summary>\n    public class AddressCreateResponse : DouyinShopResponse<AddressCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n                public int AddressId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressGetAreasByProvinceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/getAreasByProvince 接口的请求。</para>\n    /// </summary>\n    public class AddressGetAreasByProvinceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置省份 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n        public int ProvinceId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressGetAreasByProvinceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/getAreasByProvince 接口的响应。</para>\n    /// </summary>\n    public class AddressGetAreasByProvinceResponse : DouyinShopResponse<AddressGetAreasByProvinceResponse.Types.Area[]>\n    {\n        public static class Types\n        {\n            public class Area\n            {\n                /// <summary>\n                /// 获取或设置编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int Code { get; set; }\n\n                /// <summary>\n                /// 获取或设置上级编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"father_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"father_code\")]\n                public int? FatherCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置层级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                public string Level { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下级地区列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sub_districts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sub_districts\")]\n                public Area[]? SubAreaList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressGetProvinceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/getProvince 接口的请求。</para>\n    /// </summary>\n    public class AddressGetProvinceRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressGetProvinceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/getProvince 接口的响应。</para>\n    /// </summary>\n    public class AddressGetProvinceResponse : DouyinShopResponse<AddressGetProvinceResponse.Types.Province[]>\n    {\n        public static class Types\n        {\n            public class Province\n            {\n                /// <summary>\n                /// 获取或设置省份 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                public int ProvinceId { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string ProvinceName { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/list 接口的请求。</para>\n    /// </summary>\n    public class AddressListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// <para>默认值：desc</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string SortBy { get; set; } = \"desc\";\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// <para>默认值：create_time</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_field\")]\n        public string SortField { get; set; } = \"create_time\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/list 接口的响应。</para>\n    /// </summary>\n    public class AddressListResponse : DouyinShopResponse<AddressListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Address\n                    {\n                        /// <summary>\n                        /// 获取或设置地址 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n                        public int AddressId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reciever_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reciever_name\")]\n                        public string RecieverName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_provinc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_provinc\")]\n                        public string Province { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_city\")]\n                        public string City { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区县。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_district\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_district\")]\n                        public string District { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置街道。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_street\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_street\")]\n                        public string? Street { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置详情地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_detail\")]\n                        public string Detail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是退货默认地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_default\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_default\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool IsDefault { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是发货默认地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_send_default\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_send_default\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool IsSendDefault { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimstamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置售后地址列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address_list\")]\n                public Types.Address[] AddressList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n                public int PageSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressUpdateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/update 接口的请求。</para>\n    /// </summary>\n    public class AddressUpdateRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int AddressId { get; set; }\n\n                /// <summary>\n                /// 获取或设置收件人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                public string Reciever { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系方式类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_type\")]\n                public int ContactType { get; set; }\n\n                /// <summary>\n                /// 获取或设置手机号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置固话号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fixed_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fixed_phone\")]\n                public string? TeleNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                public int ProvinceId { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                public int CityId { get; set; }\n\n                /// <summary>\n                /// 获取或设置区县 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"town_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"town_id\")]\n                public int DistrictId { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                public int? StreetId { get; set; }\n\n                /// <summary>\n                /// 获取或设置详情地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public string Detail { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置售后地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Address/AddressUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /address/update 接口的响应。</para>\n    /// </summary>\n    public class AddressUpdateResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleAddOrderRemarkRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/addOrderRemark 接口的请求。</para>\n    /// </summary>\n    public class AftersaleAddOrderRemarkRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string? AftersaleId { get; set; }\n\n        /// <summary>\n        /// 获取或设置卖家备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleAddOrderRemarkResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/addOrderRemark 接口的响应。</para>\n    /// </summary>\n    public class AftersaleAddOrderRemarkResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleApplyLogisticsInterceptRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/applyLogisticsIntercept 接口的请求。</para>\n    /// </summary>\n    public class AftersaleApplyLogisticsInterceptRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class TnterceptTarget\n            {\n                /// <summary>\n                /// 获取或设置物流公司编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                public string CompanyCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n                public string LogisticsNumber { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_from\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_from\")]\n        public int OperateFrom { get; set; }\n\n        /// <summary>\n        /// 获取或设置要拦截的包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"intercept_targets\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"intercept_targets\")]\n        public IList<Types.TnterceptTarget> TnterceptTargetList { get; set; } = new List<Types.TnterceptTarget>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleApplyLogisticsInterceptResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/applyLogisticsIntercept 接口的响应。</para>\n    /// </summary>\n    public class AftersaleApplyLogisticsInterceptResponse : DouyinShopResponse<AftersaleApplyLogisticsInterceptResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class InterceptResult\n                    {\n                        public static class Types\n                        {\n                            public class Product\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string ProductOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_image\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_image\")]\n                                public string ProductImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品规格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_spec\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_spec\")]\n                                public string ProductSpecification { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品标签列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tags\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                                public string[]? TagList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置单价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int Price { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                public int Count { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置物流公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                        public string CompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置物流公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string CompanyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n                        public string LogisticsNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置包裹价值（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_amount\")]\n                        public int ValueAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否可拦截。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_intercept\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_intercept\")]\n                        public bool? CanIntercept { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否拦截成功。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_success\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_success\")]\n                        public bool? IsSuccessful { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不可拦截编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unavailable_reason_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unavailable_reason_code\")]\n                        public int UnavailableReasonCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不可拦截编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unavailable_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unavailable_reason\")]\n                        public string? UnavailableReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置拦截费用（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"intercept_cost\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"intercept_cost\")]\n                        public int? InterceptCost { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当前售后商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cur_product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cur_product\")]\n                        public Types.Product CurrentProduct { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置其它商品列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"other_products\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"other_products\")]\n                        public Types.Product[]? OtherProduct { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置其他商品件数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"other_product_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"other_product_amount\")]\n                        public int OtherProductCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置物流拦截结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"intercept_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"intercept_results\")]\n                public Types.InterceptResult[] InterceptResultList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置拦截成功次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_count\")]\n                public int SuccessCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置拦截失败次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_count\")]\n                public int FailCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置不可拦截编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unavailable_reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unavailable_reason_code\")]\n                public int UnavailableReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置不可拦截编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unavailable_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unavailable_reason\")]\n                public string? UnavailableReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后单退款总金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleBuyerExchangeConfirmRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/buyerExchangeConfirm 接口的请求。</para>\n    /// </summary>\n    public class AftersaleBuyerExchangeConfirmRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否拒绝用户换货申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_reject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_reject\")]\n        public bool IsReject { get; set; }\n\n        /// <summary>\n        /// 获取或设置换货动作。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string? Action { get; set; }\n\n        /// <summary>\n        /// 获取或设置拒绝原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n        public string? Comment { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片凭证 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"evidence\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n        public IList<string>? EvidenceUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string? LogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string? LogisticsCompanyCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleBuyerExchangeConfirmResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/buyerExchangeConfirm 接口的响应。</para>\n    /// </summary>\n    public class AftersaleBuyerExchangeConfirmResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleBuyerExchangeRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/buyerExchange 接口的请求。</para>\n    /// </summary>\n    public class AftersaleBuyerExchangeRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否拒绝用户换货申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_reject\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_reject\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n        public bool IsReject { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SMS ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sms_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sms_id\")]\n        public string SMSId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拒绝原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n        public string? Comment { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片凭证 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"evidence\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n        public IList<string>? EvidenceUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置收货地址 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? AddressId { get; set; }\n\n        /// <summary>\n        /// 获取或设置卖家售后备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleBuyerExchangeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/buyerExchange 接口的响应。</para>\n    /// </summary>\n    public class AftersaleBuyerExchangeResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleCancelSendGoodsSuccessRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/CancelSendGoodsSuccess 接口的请求。</para>\n    /// </summary>\n    public class AftersaleCancelSendGoodsSuccessRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_time\")]\n        public long OperateTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleCancelSendGoodsSuccessResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/CancelSendGoodsSuccess 接口的响应。</para>\n    /// </summary>\n    public class AftersaleCancelSendGoodsSuccessResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/Detail 接口的请求。</para>\n    /// </summary>\n    public class AftersaleDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleDetailResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/Detail 接口的响应。</para>\n    /// </summary>\n    public class AftersaleDetailResponse : DouyinShopResponse<AftersaleDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Aftersale\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                public static class Types\n                                {\n                                    public class SKUExchange : AftersaleListResponse.Types.Data.Types.Aftersale.Types.Detail.Types.SKUExchange\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置售后单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string AftersaleId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置用户申请售后件数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_apply_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_apply_count\")]\n                                public int ApplyCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置申请时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset ApplyTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_type\")]\n                                public int? AftersaleType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后类型描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_type_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_type_text\")]\n                                public string AftersaleTypeDescription { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置超时自动流转截止时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status_deadline\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status_deadline\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? StatusDeadlineTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后原因类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                                public int ReasonCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                public string Reason { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后原因备注。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason_remark\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason_remark\")]\n                                public string? ReasonRemark { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后状态类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_status\")]\n                                public int AftersaleStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"real_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"real_refund_amount\")]\n                                public int ActualRefundmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                                public int RefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                                public int RefundPostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款税费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_tax_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_tax_amount\")]\n                                public int RefundTaxAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_promotion_amount\")]\n                                public int RefundPromotionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n                                public int RefundType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款类型描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_type_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_type_text\")]\n                                public string RefundTypeDescription { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                                public int RefundStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置凭证 URL 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"evidence\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n                                public string[]? EvidenceUrlList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置部分退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"part_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"part_type\")]\n                                public int RefundPartType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退货物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_logistics_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_logistics_code\")]\n                                public string? ReturnLogisticsNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退优惠金额金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_promotion_amount\")]\n                                public int ReturnPromotionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n                                public int ArbitrateStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁责任方类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_blame\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_blame\")]\n                                public int ArbitrateBlameType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置剩余的催发货短信次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"left_urge_sms_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"left_urge_sms_count\")]\n                                public int LeftUrgeSMSCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset UpdateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_code\")]\n                                public int RiskDecisionCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控理由。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_reason\")]\n                                public string? RiskDecisionReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_description\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_description\")]\n                                public string? RiskDecisionDescription { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 换货信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"exchange_sku_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"exchange_sku_info\")]\n                                public Types.SKUExchange? SKUExchange { get; set; }\n                            }\n\n                            public class Arbitrate\n                            {\n                                public static class Types\n                                {\n                                    public class Evidence\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置证据图片 URL 列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                                        public string[] ImageUrlList { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置证据描述。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"describe\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"describe\")]\n                                        public string? Description { get; set; }\n                                    }\n\n                                    public class EvidenceTemplate : Evidence\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置截止时间戳。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"dead_line\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"dead_line\")]\n                                        public long DeadlineTimestamp { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置仲裁单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string ArbitrateId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置仲裁单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n                                public int ArbitrateStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否需要上传凭证。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_required_evidence\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_required_evidence\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                                public bool RequiredEvidence { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁截止时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_status_deadline\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status_deadline\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? StatusDeadlineTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_opinion\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_opinion\")]\n                                public string Opinion { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置仲裁结果编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_conclusion\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_conclusion\")]\n                                public int ConclusionCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁责任方类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_blame\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_blame\")]\n                                public int ArbitrateBlameType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁证据示例。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_evidence_tmpl\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_evidence_tmpl\")]\n                                public Types.EvidenceTemplate? EvidenceTemplate { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁证据。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_evidence\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_evidence\")]\n                                public Types.Evidence? Evidence { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_update_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_update_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset UpdateTime { get; set; }\n                            }\n\n                            public class ServiceTag\n                            {\n                                public static class Types\n                                {\n                                    public class Tag : AftersaleListResponse.Types.Data.Types.Aftersale.Types.Order.Types.SKUOrder.Types.Tag\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置标签列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_service_tag\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_service_tag\")]\n                                public Types.Tag[] TagList { get; set; } = default!;\n                            }\n\n                            public class Logistics\n                            {\n                                public static class Types\n                                {\n                                    public class ReturnLogistics\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置物流单号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n                                        public string LogisticsNumber { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置物流公司编码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                                        public string CompanyCode { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置物流公司名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                                        public string CompanyName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置发出时间戳。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"logistics_time\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_time\")]\n                                        public long LogisticsTimestamp { get; set; }\n                                    }\n\n                                    public class ExchangeLogistics : ReturnLogistics\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置买家退货物流信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return\")]\n                                public Types.ReturnLogistics? ReturnLogistics { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家换货物流信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"exchange\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"exchange\")]\n                                public Types.ExchangeLogistics? ExchangeLogistics { get; set; }\n                            }\n\n                            public class ShopRemark\n                            {\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string AftersaleId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作人姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"operator\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"operator\")]\n                                public string OperatorName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置备注内容。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                                public string Remark { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置售后单信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_info\")]\n                        public Types.Detail Detail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仲裁信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"arbitrate_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_info\")]\n                        public Types.Arbitrate? Arbitrate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后标签信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_service_tag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_service_tag\")]\n                        public Types.ServiceTag? ServiceTag { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_info\")]\n                        public Types.Logistics? Logistics { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺备注列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_shop_remarks\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_shop_remarks\")]\n                        public Types.ShopRemark[]? ShopRemarkList { get; set; }\n                    }\n\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class SKUOrder\n                            {\n                                public static class Types\n                                {\n                                    public class Tag : AftersaleListResponse.Types.Data.Types.Aftersale.Types.Order.Types.SKUOrder.Types.Tag\n                                    {\n                                    }\n\n                                    public class Specification : AftersaleListResponse.Types.Data.Types.Aftersale.Types.Order.Types.SKUOrder.Types.Specification\n                                    {\n                                    }\n\n                                    public class GivenSKUDetail : AftersaleListResponse.Types.Data.Types.Aftersale.Types.Order.Types.SKUOrder.Types.GivenSKUDetail\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_id\")]\n                                public string SKUOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                                public int OrderStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_image\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_image\")]\n                                public string ProductImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public long SKUId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_sku_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_sku_code\")]\n                                public string SKUCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置标签列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tags\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                                public Types.Tag[]? TagList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置保险标签列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"insurance_tags\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"insurance_tags\")]\n                                public Types.Tag[]? InsuranceTagList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置规格列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_spec\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_spec\")]\n                                public Types.Specification[]? SpecificationList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置赠品列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"given_sku_details\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"given_sku_details\")]\n                                public Types.GivenSKUDetail[]? GivenSKUDetail { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付方式。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                                public int PayType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置付款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                                public int PostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置税费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tax_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tax_amount\")]\n                                public int TaxAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_amount\")]\n                                public int PromotionPayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 总原价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_sum_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_sum_amount\")]\n                                public int SKUSumAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 实付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_pay_amount\")]\n                                public int SKUPayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置购买数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_quantity\")]\n                                public int Count { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否为海外订单。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_oversea_order\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_oversea_order\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                                public bool IsOverseaOrder { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置下单时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后商品数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_item_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_item_count\")]\n                                public int AftersaleCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                        public string ShopOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_order_infos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_infos\")]\n                        public Types.SKUOrder[] SKUOrderList { get; set; } = default!;\n                    }\n\n                }\n\n                /// <summary>\n                /// 获取或设置售后单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"process_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"process_info\")]\n                public Types.Aftersale Aftersale { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置关联订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_info\")]\n                public Types.Order Order { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleListRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/List 接口的请求。</para>\n    /// </summary>\n    public class AftersaleListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string? AftersaleId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单标识列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_flag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_flag\")]\n        public IList<int>? OrderFlagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置风控标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"risk_flag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"risk_flag\")]\n        public int? RiskFlag { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n        public int? AftersaleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n        public int? AftersaleStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后理由类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public int? AftersaleReasonType { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n        public int? RefundType { get; set; }\n\n        /// <summary>\n        /// 获取或设置仲裁状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n        public int? ArbitrateStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_status\")]\n        public int? LogisticsStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置金额下限（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"amount_start\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"amount_start\")]\n        public int? StartAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置金额上限（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"amount_end\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"amount_end\")]\n        public int? EndAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public IList<string>? SortFields { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleListResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/List 接口的响应。</para>\n    /// </summary>\n    public class AftersaleListResponse : DouyinShopResponse<AftersaleListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Aftersale\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                public static class Types\n                                {\n                                    public class SKUExchange\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                        public long SKUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置外部 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                        public long? OutSKUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU 编码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                        public string SKUCode { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU 名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string SKUName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU 图片 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                        public string SKUImageUrl { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置规格描述。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"spec_desc\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_desc\")]\n                                        public string SpecificationDescription { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置外部仓库 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                                        public string OutWarehouseId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置供应商 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                                        public string? SupplierId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置单价（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                        public int Price { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置换货数目。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"num\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n                                        public int Count { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"related_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"related_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_order_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_order_type\")]\n                                public int OrderType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string AftersaleId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置用户申请售后件数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_num\")]\n                                public int ApplyCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置申请时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset ApplyTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                                public int AftersaleType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置超时自动流转截止时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status_deadline\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status_deadline\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? StatusDeadlineTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后原因编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                public int ReasonCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后状态类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                                public int AftersaleStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int Refundmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                                public int RefundPostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退税金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_tax_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_tax_amount\")]\n                                public int RefundTaxAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n                                public int RefundType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                                public int RefundStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置部分退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"part_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"part_type\")]\n                                public int RefundPartType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退货物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_logistics_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_logistics_code\")]\n                                public string? ReturnLogisticsNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退优惠金额金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_promotion_amount\")]\n                                public int ReturnPromotionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n                                public int ArbitrateStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置仲裁责任方类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_blame\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_blame\")]\n                                public int ArbitrateBlameType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置剩余的催发货短信次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"left_urge_sms_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"left_urge_sms_count\")]\n                                public int LeftUrgeSMSCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                                public DateTimeOffset UpdateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_code\")]\n                                public int RiskDecisionCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控理由。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_reason\")]\n                                public string? RiskDecisionReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置风控描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"risk_decision_description\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"risk_decision_description\")]\n                                public string? RiskDecisionDescription { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 换货信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"exchange_sku_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"exchange_sku_info\")]\n                                public Types.SKUExchange? SKUExchange { get; set; }\n                            }\n\n                            public class Order\n                            {\n                                public static class Types\n                                {\n                                    public class SKUOrder\n                                    {\n                                        public static class Types\n                                        {\n                                            public class Tag\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置标签中文名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"tag_detail\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_detail\")]\n                                                public string Detail { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置标签英文名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"tag_detail_en\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_detail_en\")]\n                                                public string DetailEnglish { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置标签链接。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"tag_link_url\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_link_url\")]\n                                                public string LinkUrl { get; set; } = default!;\n                                            }\n\n                                            public class Specification\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置规格名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                                public string Name { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置规格值。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"value\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                                public string Value { get; set; } = default!;\n                                            }\n\n                                            public class GivenSKUDetail\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置赠品名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                                public string ProductName { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置赠品订单号。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"sku_order_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_id\")]\n                                                public string SKUOrderId { get; set; } = default!;\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置商品单号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                        public string SKUOrderId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置订单状态。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                                        public int OrderStatus { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                        public long ProductId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                        public string ProductName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品图片 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_image\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_image\")]\n                                        public string ProductImageUrl { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU 编码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"shop_sku_code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_sku_code\")]\n                                        public string SKUCode { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置标签列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tags\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n                                        public Types.Tag[]? TagList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置规格列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_spec\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_spec\")]\n                                        public Types.Specification[]? SpecificationList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置赠品列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"given_sku_details\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"given_sku_details\")]\n                                        public Types.GivenSKUDetail[]? GivenSKUDetail { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置付款金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                        public int PayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置运费金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                                        public int PostAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置税费金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tax_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_amount\")]\n                                        public int TaxAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置优惠金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"promotion_pay_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_pay_amount\")]\n                                        public int PromotionPayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置单价（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                        public int Price { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置购买数量。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"item_num\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"item_num\")]\n                                        public int Count { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置是否为海外订单。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"is_oversea_order\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"is_oversea_order\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                                        public bool IsOverseaOrder { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置下单时间戳。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                        public long CreateTimestamp { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置物流单号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                                        public string LogisticsNumber { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置售后退款金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"aftersale_pay_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_pay_amount\")]\n                                        public int AftersalePayAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置售后退运费金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"aftersale_post_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_post_amount\")]\n                                        public int AftersalePostAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置售后退税金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"aftersale_tax_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_tax_amount\")]\n                                        public int AftersaleTaxAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置售后商品数量。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"aftersale_item_num\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_item_num\")]\n                                        public int AftersaleCount { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置店铺订单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                public string ShopOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品单列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"related_order_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"related_order_info\")]\n                                public Types.SKUOrder[] SKUOrderList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单标识。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_flag\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_flag\")]\n                                public int OrderFlag { get; set; }\n                            }\n\n                            public class TextPart\n                            {\n                                /// <summary>\n                                /// 获取或设置正向物流发货状态文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"logistics_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_text\")]\n                                public string LogisticsText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后状态文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_status_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status_text\")]\n                                public string AftersaleStatusText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后类型文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_type_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type_text\")]\n                                public string AftersaleTypeText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退货物流发货状态文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_logistics_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_logistics_text\")]\n                                public string ReturnLogisticsText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后理由文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason_text\")]\n                                public string ReasonText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置坏单比例文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"bad_item_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"bad_item_text\")]\n                                public string BadItemText { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置仲裁状态文案。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"arbitrate_status_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status_text\")]\n                                public string ArbitrateStatusText { get; set; } = default!;\n                            }\n\n                            public class SellerLog\n                            {\n                                /// <summary>\n                                /// 获取或设置内容。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"content\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                                public string Content { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置星标。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"star\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"star\")]\n                                public int Star { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置操作者姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"op_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"op_name\")]\n                                public string OperatorName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置售后单信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_info\")]\n                        public Types.Detail Detail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_info\")]\n                        public Types.Order Order { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文案信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text_part\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text_part\")]\n                        public Types.TextPart TextPart { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家日志列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_logs\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_logs\")]\n                        public Types.SellerLog[] SellerLogList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置售后单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                public Types.Aftersale[] AftersaleList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int PageSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleOpenAfterSaleChannelRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/OpenAfterSaleChannel 接口的请求。</para>\n    /// </summary>\n    public class AftersaleOpenAfterSaleChannelRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleOpenAfterSaleChannelResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/OpenAfterSaleChannel 接口的响应。</para>\n    /// </summary>\n    public class AftersaleOpenAfterSaleChannelResponse : DouyinShopResponse<AftersaleOpenAfterSaleChannelResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Conclusion\n                    {\n                        /// <summary>\n                        /// 获取或设置匹配是否成功。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_success\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_success\")]\n                        public bool IsMatchSucceeded { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配到超级售后的类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_conclusion\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_conclusion\")]\n                        public int MatchConclusion { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配结果的解释。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_message\")]\n                        public string? MatchMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置可以发起的售后类型列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_apply_type_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_apply_type_list\")]\n                        public int[]? CanApplyTypeLsit { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conclusion\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conclusion\")]\n                public Types.Conclusion Conclusion { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleOperateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/Operate 接口的请求。</para>\n    /// </summary>\n    public class AftersaleOperateRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Aftersale\n            {\n                public static class Types\n                {\n                    public class Evidence\n                    {\n                        /// <summary>\n                        /// 获取或设置凭证类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置凭证图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                        public string Url { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置凭证描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string? Description { get; set; }\n                    }\n\n                    public class Logistics\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                /// <summary>\n                                /// 获取或设置省份 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                                public int ProvinceId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置省份名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                                public string ProvinceName { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置城市 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                                public int CityId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置城市名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                                public string CityName { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置区县 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town_id\")]\n                                public int DistrictId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置区县名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town_name\")]\n                                public string DistrictName { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置街道 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                                public int? StreetId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置街道名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street_name\")]\n                                public string? StreetName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                                public string Detail { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置收件人姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                                public string ReceiverName { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置收件人电话号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                                public string ReceiverPhoneNumber { get; set; } = string.Empty;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string? LogisticsNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流公司编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                        public string? CompanyCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件地址 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_address_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_address_id\")]\n                        public int? ReceiverAddressId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发件地址 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sender_address_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sender_address_id\")]\n                        public int? SenderAddressId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_address_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_address_detail\")]\n                        public Types.Address? Address { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置售后单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                public string AftersaleId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置操作原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                public string? Reason { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string? Remark { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作凭证列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"evidence\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n                public IList<Types.Evidence>? EvidenceList { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics\")]\n                public Types.Logistics? Logistics { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long? OperateTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作的售后单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"items\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n        public IList<Types.Aftersale> AftersaleList { get; set; } = new List<Types.Aftersale>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleOperateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/Operate 接口的响应。</para>\n    /// </summary>\n    public class AftersaleOperateResponse : DouyinShopResponse<AftersaleOperateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置售后单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string AftersaleId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置操作结果码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_code\")]\n                        public int StatusCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置操作结果描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_msg\")]\n                        public string? StatusMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleRefundListSearchRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/refundListSearch 接口的请求。</para>\n    /// </summary>\n    public class AftersaleRefundListSearchRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string? AftersaleId { get; set; }\n\n        /// <summary>\n        /// 获取或设置风控标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"risk_flag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"risk_flag\")]\n        public int? RiskFlag { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int? AftersaleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? AftersaleStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n        public int? RefundType { get; set; }\n\n        /// <summary>\n        /// 获取或设置仲裁状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n        public int? ArbitrateStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_status\")]\n        public int? LogisticsStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string? LogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_desc\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_desc\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? SortByDescending { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string? SortField { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleRefundListSearchResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/refundListSearch 接口的响应。</para>\n    /// </summary>\n    public class AftersaleRefundListSearchResponse : DouyinShopResponse<AftersaleRefundListSearchResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Aftersale\n                    {\n                        public static class Types\n                        {\n                            public class AftersaleItem\n                            {\n                                public static class Types\n                                {\n                                    public class SKUSpecification\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置规格名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置规格值。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                        public string Value { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品头图。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_img\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_img\")]\n                                public string ProductImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n                                public int Count { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                                public int PostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int Refundmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_post_amount\")]\n                                public int RefundPostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置部分退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"part_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"part_type\")]\n                                public int RefundPartType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 规格列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_spec\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_spec\")]\n                                public Types.SKUSpecification[] SKUSpecificationList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后标签列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_service\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_service\")]\n                                public string[] AftersaleServiceList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置创建时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n                            }\n\n                            public class AftersaleRecord\n                            {\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售后单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                                public string AftersaleId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aftersale_order_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_order_type\")]\n                                public int OrderType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置操作类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"op_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n                                public string OperateType { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作人角色。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"role\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                                public string OperateRole { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作人名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"op_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"op_name\")]\n                                public string OperatorName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"op_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"op_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset OperateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置操作结果编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"conclusion\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"conclusion\")]\n                                public int ConclusionCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置操作意见。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"comment\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n                                public string? Comment { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置凭证 URL 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"evidence\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n                                public string[]? EvidenceUrlList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置备注。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                                public string? Remark { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置收到货物说状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"got_pkg\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"got_pkg\")]\n                                public int? GotPackageStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n                                public int? RefundType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                                public string? LogisticsNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置物流公司编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                                public string? LogisticsCompanyCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置物流公司名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                                public string? LogisticsCompanyName { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string ShopOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售后单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string AftersaleId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置申请时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset ApplyTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_type\")]\n                        public int? AftersaleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置自动流转类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"deadline_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"deadline_type\")]\n                        public int DeadlineType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置超时自动流转截止时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_deadline\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_deadline\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? StatusDeadlineTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后原因描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason_desc\")]\n                        public string ReasonDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售后状态类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status\")]\n                        public int AftersaleStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_status_desc\")]\n                        public string AftersaleStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售后流程描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_process_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_process_desc\")]\n                        public string AftersaleProcessDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货物流状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_status_desc\")]\n                        public string ReturnStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n                        public int RefundType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款类型描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_refund_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_refund_type_desc\")]\n                        public string RefundTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                        public int RefundStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置部分退款类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"part_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"part_type\")]\n                        public int RefundPartType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家收件人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_receiver\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_receiver\")]\n                        public string PostReceiver { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仲裁状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"arbitrate_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"arbitrate_status\")]\n                        public int ArbitrateStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余的催发货短信次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"urge_sms_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"urge_sms_cnt\")]\n                        public int LeftUrgeSMSCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后申请的子订单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_items\")]\n                        public Types.AftersaleItem[] AftersaleItemList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售后申请的历史记录列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aftersale_record_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_record_items\")]\n                        public Types.AftersaleRecord[] AftersaleRecordList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置售后单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aftersale_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_list\")]\n                public Types.Aftersale[] AftersaleList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleReturnGoodsToWareHouseSuccessRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/returnGoodsToWareHouseSuccess 接口的请求。</para>\n    /// </summary>\n    public class AftersaleReturnGoodsToWareHouseSuccessRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_time\")]\n        public long OperateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户退货物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_company_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleReturnGoodsToWareHouseSuccessResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/returnGoodsToWareHouseSuccess 接口的响应。</para>\n    /// </summary>\n    public class AftersaleReturnGoodsToWareHouseSuccessResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleSubmitEvidenceRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/submitEvidence 接口的请求。</para>\n    /// </summary>\n    public class AftersaleSubmitEvidenceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置凭证图片 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"evidence\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n        public IList<string> EvidenceUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n        public string? Remark { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleSubmitEvidenceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/submitEvidence 接口的响应。</para>\n    /// </summary>\n    public class AftersaleSubmitEvidenceResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleTimeExtendRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/timeExtend 接口的请求。</para>\n    /// </summary>\n    public class AftersaleTimeExtendRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置售后单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aftersale_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aftersale_id\")]\n        public string AftersaleId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Aftersale/AftersaleTimeExtendResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /afterSale/timeExtend 接口的响应。</para>\n    /// </summary>\n    public class AftersaleTimeExtendResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/AllianceGetOrderListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/getOrderList 接口的请求。</para>\n    /// </summary>\n    public class AllianceGetOrderListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/AllianceGetOrderListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/getOrderList 接口的响应。</para>\n    /// </summary>\n    public class AllianceGetOrderListResponse : DouyinShopResponse<AllianceGetOrderListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置产品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置达人账户。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author_account\")]\n                        public string AuthorAccount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置达人 ShortId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_id\")]\n                        public string AuthorShortId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_pay_amount\")]\n                        public int TotalPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金率。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                        public int CommissionRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预估佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"estimated_comission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"estimated_comission\")]\n                        public int EstimatedComission { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置真实佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"real_comission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"real_comission\")]\n                        public int ActualComission { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public string OrderStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置阶段单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phase_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phase_id\")]\n                        public int PhaseId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"alliance_biz_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"alliance_biz_type\")]\n                        public string AllianceBusinessType { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string ReturnCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置返回信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_msg\")]\n                public string? ReturnMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"datas\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"datas\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/MaterialsProducts/AllianceMaterialsProductsDetailsRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/materialsProductsDetails 接口的请求。</para>\n    /// </summary>\n    public class AllianceMaterialsProductsDetailsRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<int>? ProductIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/MaterialsProducts/AllianceMaterialsProductsDetailsResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/materialsProductsDetails 接口的响应。</para>\n    /// </summary>\n    public class AllianceMaterialsProductsDetailsResponse : DouyinShopResponse<AllianceMaterialsProductsDetailsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class DailyStatistics\n                            {\n                                /// <summary>\n                                /// 获取或设置日期字符串（格式：yyyyMMdd）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"date\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                                public string DateString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置当天商品总订单量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_num\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int OrderCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置当天商品总浏览量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"view_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"view_num\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int ViewCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置当天推广总达人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"kol_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"kol_num\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int KOLCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                        public string ShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品售价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金比例（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public double COSRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cos_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cos_fee\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int COSFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"kol_cos_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"kol_cos_fee\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int KOLCOSFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金比例（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"kol_cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"kol_cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public double KOLCOSRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int FirstCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int SecondCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ThirdCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否有库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"in_stock\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"in_stock\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n                        public bool HasStock { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail_url\")]\n                        public string DetailUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置历史总销量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Sales { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品评分。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_score\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_score\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CommentScore { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品评价数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_num\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置近 30 天商品总订单量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_num\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int OrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置近 30 天商品总浏览量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"view_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"view_num\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ViewCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置近 30 天推广总达人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"kol_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"kol_num\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int KOLCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置每日统计数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"daily_statistics\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"daily_statistics\")]\n                        public Types.DailyStatistics[] DailyStatisticsList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动审核原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? Reason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置专属团长功能活动对应的限制类目名称 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? CategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置专属团长功能活动对应的限制类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                        public string? CategoryName { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/MaterialsProducts/AllianceMaterialsProductsSearchRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/materialsProductsSearch 接口的请求。</para>\n    /// </summary>\n    public class AllianceMaterialsProductsSearchRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品一级类目 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"first_cids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"first_cids\")]\n        public IList<int>? FirstCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品二级类目 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"second_cids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"second_cids\")]\n        public IList<int>? SecondCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品三级类目 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_cids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_cids\")]\n        public IList<int>? ThirdCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品售价区间最小值（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price_min\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price_min\")]\n        public int? MinPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品售价区间最大值（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price_max\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price_max\")]\n        public int? MaxPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品历史总销量区间最小值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sell_num_min\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sell_num_min\")]\n        public int? MinSales { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品历史总销量区间最大值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sell_num_max\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sell_num_max\")]\n        public int? MaxSales { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品佣金区间最小值（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cos_fee_min\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cos_fee_min\")]\n        public int? MinCOSFee { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品佣金区间最大值（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cos_fee_max\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cos_fee_max\")]\n        public int? MaxCOSFee { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品佣金比例区间最小值（范围：0～100）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cos_ratio_min\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio_min\")]\n        public double? MinCOSRatio { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品佣金比例区间最大值（范围：0～100）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cos_ratio_max\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio_max\")]\n        public double? MaxCOSRatio { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式类型。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sort_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sort_type\")]\n        public int SortByType { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段类型。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_type\")]\n        public int SortFieldType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Alliance/MaterialsProducts/AllianceMaterialsProductsSearchResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /alliance/materialsProductsSearch 接口的响应。</para>\n    /// </summary>\n    public class AllianceMaterialsProductsSearchResponse : DouyinShopResponse<AllianceMaterialsProductsSearchResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                        public string ShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品售价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public int Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金比例（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                        public double COSRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cos_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cos_fee\")]\n                        public int COSFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                        public int FirstCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                        public int SecondCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                        public int ThirdCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否有库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"in_stock\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"in_stock\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool HasStock { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置历史总销量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales\")]\n                        public int Sales { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail_url\")]\n                        public string DetailUrl { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamOrderQueryRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/orderQuery 接口的请求。</para>\n    /// </summary>\n    public class AntiSpamOrderQueryRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class User : AntiSpamUserLoginRequest.Types.User\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user\")]\n        public Types.User? User { get; set; }\n\n        /// <summary>\n        /// 获取或设置可变参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n        public string? JsonParams { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_time\")]\n        public long? EventTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamOrderQueryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/orderQuery 接口的响应。</para>\n    /// </summary>\n    public class AntiSpamOrderQueryResponse : DouyinShopResponse<AntiSpamOrderQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Decision : AntiSpamUserLoginResponse.Types.Data.Types.Decision\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置决策信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"decision\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n                public Types.Decision Decision { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamOrderSendRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/orderSend 接口的请求。</para>\n    /// </summary>\n    public class AntiSpamOrderSendRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class User : AntiSpamUserLoginRequest.Types.User\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user\")]\n        public Types.User? User { get; set; }\n\n        /// <summary>\n        /// 获取或设置可变参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n        public string? JsonParams { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_time\")]\n        public long? EventTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamOrderSendResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/orderSend 接口的响应。</para>\n    /// </summary>\n    public class AntiSpamOrderSendResponse : DouyinShopResponse<AntiSpamOrderSendResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Decision : AntiSpamUserLoginResponse.Types.Data.Types.Decision\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置决策信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"decision\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n                public Types.Decision Decision { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamUserLoginRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/userLogin 接口的请求。</para>\n    /// </summary>\n    public class AntiSpamUserLoginRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class User\n            {\n                /// <summary>\n                /// 获取或设置用户类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uid_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uid_type\")]\n                public int? UserType { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                public long? UserId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置用户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user\")]\n        public Types.User? User { get; set; }\n\n        /// <summary>\n        /// 获取或设置可变参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n        public string? JsonParams { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_time\")]\n        public long? EventTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/AntiSpam/AntiSpamUserLoginResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /antispam/userLogin 接口的响应。</para>\n    /// </summary>\n    public class AntiSpamUserLoginResponse : DouyinShopResponse<AntiSpamUserLoginResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Decision\n                    {\n                        /// <summary>\n                        /// 获取或设置决策类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"decision\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n                        public string DecisionType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置决策详情。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"decision_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"decision_detail\")]\n                        public string DecisionDetail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置提示信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hit_status\")]\n                        public string HitStatus { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置决策信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"decision\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n                public Types.Decision Decision { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASGetInspectionOrderRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/getInspectionOrder 接口的请求。</para>\n    /// </summary>\n    public class BTASGetInspectionOrderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASGetInspectionOrderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/getInspectionOrder 接口的响应。</para>\n    /// </summary>\n    public class BTASGetInspectionOrderResponse : DouyinShopResponse<BTASGetInspectionOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductOrder\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_order_id\")]\n                        public string ProductOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单码列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n                        public string[] OrderCodeList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_orders\")]\n                public Types.ProductOrder[] ProductOrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASGetOrderInspectionResultRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/getOrderInspectionResult 接口的请求。</para>\n    /// </summary>\n    public class BTASGetOrderInspectionResultRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n        public string OrderCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASGetOrderInspectionResultResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/getOrderInspectionResult 接口的响应。</para>\n    /// </summary>\n    public class BTASGetOrderInspectionResultResponse : DouyinShopResponse<BTASGetOrderInspectionResultResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_order_id\")]\n                public string ProductOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n                public string OrderCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置证书编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certification_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certification_code\")]\n                public string? CertificationCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置鉴定单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inspection_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inspection_order_id\")]\n                public string InspectionOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置鉴定结果类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inspection_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inspection_result\")]\n                public int InspectionResult { get; set; }\n\n                /// <summary>\n                /// 获取或设置鉴定明细。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public string InspectionDetail { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置鉴定备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inspection_comment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inspection_comment\")]\n                public string InspectionComment { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置鉴定费用（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inspection_cost\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inspection_cost\")]\n                public int InspectionCost { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流费用（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_cost\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_cost\")]\n                public int LogisticsCost { get; set; }\n\n                /// <summary>\n                /// 获取或设置鉴定结果时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inspection_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inspection_time\")]\n                public long InspectionTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASListBrandRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/listBrand 接口的请求。</para>\n    /// </summary>\n    public class BTASListBrandRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASListBrandResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/listBrand 接口的响应。</para>\n    /// </summary>\n    public class BTASListBrandResponse : DouyinShopResponse<BTASListBrandResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Brand\n                    {\n                        public static class Types\n                        {\n                            public class Category\n                            {\n                                /// <summary>\n                                /// 获取或设置支持类型 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public int Id { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支持类型名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置品牌 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n                        public int BrandId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置品牌名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_name\")]\n                        public string BrandName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌支持类型列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_category_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_category_list\")]\n                        public Types.Category[] CategoryList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置品牌列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_list\")]\n                public Types.Brand[] BrandList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASSaveInspectionInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/saveInspectionInfo 接口的请求。</para>\n    /// </summary>\n    public class BTASSaveInspectionInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_order_id\")]\n        public string ProductOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n        public string OrderCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_status\")]\n        public int ServiceStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置需要修改的物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"base_send_logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"base_send_logistics_code\")]\n        public string? BaseSendLogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置送检方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"send_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"send_type\")]\n        public int SendType { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"send_logistics_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"send_logistics_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? SendLogisticsCompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"send_logistics_company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"send_logistics_company_code\")]\n        public string? SendLogisticsCompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流运单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"send_logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"send_logistics_code\")]\n        public string? SendLogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否自发货。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_shipping_self\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_shipping_self\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n        public bool IsShippingSelf { get; set; }\n\n        /// <summary>\n        /// 获取或设置发货方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_logistics_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_logistics_type\")]\n        public int? ShippingLogisticsType { get; set; }\n\n        /// <summary>\n        /// 获取或设置保价金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"insurance_cost\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"insurance_cost\")]\n        public int? InsuranceCost { get; set; }\n\n        /// <summary>\n        /// 获取或设置优先类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_intercept_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_intercept_type\")]\n        public int ReturnInterceptType { get; set; }\n\n        /// <summary>\n        /// 获取或设置邮寄类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_type\")]\n        public int? ReturnType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASSaveInspectionInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/saveInspectionInfo 接口的响应。</para>\n    /// </summary>\n    public class BTASSaveInspectionInformationResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASSaveInspectionOnlineRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/saveInspectionOnline 接口的请求。</para>\n    /// </summary>\n    public class BTASSaveInspectionOnlineRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public int ImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                public string ImageUrl { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置图片备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_comment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_comment\")]\n                public string? ImageComment { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_order_id\")]\n        public string ProductOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n        public string OrderCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_status\")]\n        public int ServiceStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置鉴定品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public int BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置质检扣。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certification_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certification_code\")]\n        public string CertificationCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置原盒包装类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_original_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_original_info\")]\n        public int OriginalType { get; set; }\n\n        /// <summary>\n        /// 获取或设置优先类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_intercept_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_intercept_type\")]\n        public int ReturnInterceptType { get; set; }\n\n        /// <summary>\n        /// 获取或设置送检图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image> ImageList { get; set; } = new List<Types.Image>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASSaveInspectionOnlineResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/saveInspectionOnline 接口的响应。</para>\n    /// </summary>\n    public class BTASSaveInspectionOnlineResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASShippingRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/shipping 接口的请求。</para>\n    /// </summary>\n    public class BTASShippingRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_order_id\")]\n        public string? ProductOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n        public string? OrderCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_status\")]\n        public int ServiceStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置需要修改的物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"base_shipping_logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"base_shipping_logistics_code\")]\n        public string? BaseShippingLogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_logistics_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_logistics_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? ShippingLogisticsCompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_logistics_company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_logistics_company_code\")]\n        public string? ShippingLogisticsCompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流运单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_logistics_code\")]\n        public string? ShippingLogisticsNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/BTAS/BTASShippingResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /btas/shipping 接口的响应。</para>\n    /// </summary>\n    public class BTASShippingResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Activity/BuyinActivitySearchRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/activitySearch 接口的请求。</para>\n    /// </summary>\n    public class BuyinActivitySearchRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? ActivityStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置活动名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n        public string? ActivityName { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sort_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sort_type\")]\n        public int? SortByType { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_type\")]\n        public int? SortFieldType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Activity/BuyinActivitySearchResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/activitySearch 接口的响应。</para>\n    /// </summary>\n    public class BuyinActivitySearchResponse : DouyinShopResponse<BuyinActivitySearchResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Activity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                        public long ActivityId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n                        public string ActivityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置团长机构名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_name\")]\n                        public string InstitutionName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_desc\")]\n                        public string ActivityDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置最低商品佣金率（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                        public int CommissionRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金率（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_activity_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_activity_ratio\")]\n                        public double ActivityRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最低团长服务费率（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_rate\")]\n                        public int ServiceRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务费率（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_rate\")]\n                        public double ServiceRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预估销售额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"estimated_single_sale\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"estimated_single_sale\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int EstimatedSingleSale { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动开始时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_start_time\")]\n                        public string ApplyStartDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动结束时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_end_time\")]\n                        public string ApplyEndDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置推广开始时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promote_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promote_start_time\")]\n                        public string PromoteStartDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置推广结束时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promote_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promote_end_time\")]\n                        public string PromoteEndDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_status\")]\n                        public int ActivityStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_status_desc\")]\n                        public string ActivityStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家类型限制列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_type_limit\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_type_limit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        public int[]? LimittedShopTypeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家体验分限制列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_score_limit\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_score_limit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        public int[]? LimittedShopScoreList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置招商类目 ID 限制列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categories_limit\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categories_limit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerArrayWithCommaSplitConverter))]\n                        public int[]? LimittedCategoryIdList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_list\")]\n                public Types.Activity[] ActivityList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Activity/BuyinApplyActivitiesRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/applyActivities 接口的请求。</para>\n    /// </summary>\n    public class BuyinApplyActivitiesRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Product\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_price\")]\n                public int ActivityPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动佣金比例（范围：1～50）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_activity_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_activity_ratio\")]\n                public double? ActivityRatio { get; set; }\n\n                /// <summary>\n                /// 获取或设置参与活动库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion_stock\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_stock\")]\n                public int? PromotionStock { get; set; }\n\n                /// <summary>\n                /// 获取或设置赠品详情。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gift_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gift_info\")]\n                public string? GiftInformation { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动价实现方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion_step\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_step\")]\n                public string? PromotionStep { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public long ActivityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置招商服务费率（范围：0～40）。与字段 <see cref=\"ServiceRatio\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_rate\")]\n        public int? ServiceRate { get; set; }\n\n        /// <summary>\n        /// 获取或设置招商服务费率（范围：0～40）。与字段 <see cref=\"ServiceRate\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_ratio\")]\n        public double? ServiceRatio { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺联系电话。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public string? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n        public IList<Types.Product> ProductList { get; set; } = new List<Types.Product>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Activity/BuyinApplyActivitiesResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/applyActivities 接口的响应。</para>\n    /// </summary>\n    public class BuyinApplyActivitiesResponse : DouyinShopResponse<BuyinApplyActivitiesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : BuyinSimplePlanResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/BuyinInstituteOrderAdsRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/instituteOrderAds 接口的请求。</para>\n    /// </summary>\n    public class BuyinInstituteOrderAdsRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? OrderIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付时间范围开始。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? StartPayTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付时间范围结束。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? EndPayTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n        public string? InstitutionId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分销类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distribution_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distribution_type\")]\n        public string? DistributionType { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页索引。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public string PageCursor { get; set; } = \"0\";\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/BuyinInstituteOrderAdsResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/instituteOrderAds 接口的响应。</para>\n    /// </summary>\n    public class BuyinInstituteOrderAdsResponse : DouyinShopResponse<BuyinInstituteOrderAdsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        public static class Types\n                        {\n                            public class Order\n                            {\n                                public static class Types\n                                {\n                                    public class Institution\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置机构 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"pid\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n                                        public string InstitutionId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置外部参数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"external_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"external_info\")]\n                                        public string? ExternalInformation { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置分销类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"media_type_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type_name\")]\n                                        public string DistributionType { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_img\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_img\")]\n                                public string ProductImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int ProductPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人昵称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"author_account\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"author_account\")]\n                                public string AuthorName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置达人 OpenId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"author_openid\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"author_openid\")]\n                                public string AuthorOpenId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 App 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app\")]\n                                public string AppName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置店铺 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                                public int ShopId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置店铺名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                                public string ShopName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置选品 App 的 ClientKey。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pick_source_client_key\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pick_source_client_key\")]\n                                public string? PickSourceClientKey { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_num\")]\n                                public int ItemCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置订单支付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_pay_amount\")]\n                                public int TotalPayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置佣金率。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                                public int CommissionRate { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人预估佣金收入（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"estimated_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"estimated_commission\")]\n                                public int EstimatedCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人实际佣金收入（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"real_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"real_commission\")]\n                                public int ActualCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置订单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"flow_point\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"flow_point\")]\n                                public string OrderStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置下单用户的 OpenId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"buyer_openid\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"buyer_openid\")]\n                                public string BuyerOpenId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置支付时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_success_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_success_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? PayTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预估参与结算金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_goods_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_goods_amount\")]\n                                public int EstimatedGoodsAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际参与结算金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settled_goods_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settled_goods_amount\")]\n                                public int SettledGoodsAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预估平台服务费（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"estimated_tech_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"estimated_tech_service_fee\")]\n                                public int EstimatedServiceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际平台服务费（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settled_tech_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settled_tech_service_fee\")]\n                                public int SettledServiceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预估总佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"estimated_total_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"estimated_total_commission\")]\n                                public int EstimatedTotalCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置渠道分成比例。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ads_split_rate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ads_split_rate\")]\n                                public int AdsSplitRate { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置预估渠道佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ads_estimated_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ads_estimated_commission\")]\n                                public int EstimatedAdsCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际渠道佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ads_real_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ads_real_commission\")]\n                                public int ActualAdsCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置结算时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settle_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settle_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? SettleTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                                public DateTimeOffset? RefundTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分销机构信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pid_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pid_info\")]\n                                public Types.Institution Institution { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置更新时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset UpdateTime { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"orders\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                        public Types.Order[] OrderList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下一页翻页索引。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                        public string? NextCursor { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置查询结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinCreateOrUpdateOrientPlanRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/createOrUpdateOrienPlan 接口的请求。</para>\n    /// </summary>\n    public class BuyinCreateOrUpdateOrientPlanRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class OrientPlan\n            {\n                /// <summary>\n                /// 获取或设置定向计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n                public string? OrientPlanId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置佣金比例（范围：0～80）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                public double? COSRatio { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_type\")]\n                public int? ApplyType { get; set; }\n\n                /// <summary>\n                /// 获取或设置限制类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"restricted_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"restricted_type\")]\n                public int? RestrictedType { get; set; }\n\n                /// <summary>\n                /// 获取或设置达人等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"author_level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"author_level\")]\n                public int? AuthorLevel { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_type\")]\n                public int? AuditType { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                public long? EndTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否是创建。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_create\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_create\")]\n        public bool IsCreating { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向计划信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan\")]\n        public Types.OrientPlan OrientPlan { get; set; } = new Types.OrientPlan();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinCreateOrUpdateOrientPlanResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/createOrUpdateOrienPlan 接口的响应。</para>\n    /// </summary>\n    public class BuyinCreateOrUpdateOrientPlanResponse : DouyinShopResponse<BuyinCreateOrUpdateOrientPlanResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置定向计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plan_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plan_id\")]\n                public string OrientPlanId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuditRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAudit 接口的请求。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuditRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置申请 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n        public int ApplyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_action\")]\n        public int Action { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuditResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAudit 接口的响应。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuditResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuthorsAddRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAuthorsAdd 接口的请求。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuthorsAddRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置定向计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n        public string OrientPlanId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置达人百应 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyin_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyin_ids\")]\n        public IList<int> BuyinIdList { get; set; } = new List<int>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuthorsAddResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAuthorsAdd 接口的响应。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuthorsAddResponse : DouyinShopResponse<BuyinOrientPlanAuthorsAddResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure\n                    {\n                        /// <summary>\n                        /// 获取或设置达人百应 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyin_id\")]\n                        public int BuyinId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_msg\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置添加成功的作者 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public int[] SucceededIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置添加失败的作者 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_ids\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuthorsRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAuthors 接口的请求。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuthorsRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置定向计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n        public string OrientPlanId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置达人百应 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyin_id\")]\n        public int? BuyinId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人昵称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n        public string? AuthorName { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n        public int? AuditStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：20</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 20;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanAuthorsResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanAuthors 接口的响应。</para>\n    /// </summary>\n    public class BuyinOrientPlanAuthorsResponse : DouyinShopResponse<BuyinOrientPlanAuthorsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Author\n                    {\n                        /// <summary>\n                        /// 获取或设置定向计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n                        public string OrientPlanId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置达人百应 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyin_id\")]\n                        public int BuyinId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                        public string AuthorName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置联系方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contact_phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contact_phone\")]\n                        public string ContactPhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置申请 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n                        public int ApplyId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_info\")]\n                        public string ApplyInformation { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                        public long ApplyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请通过时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_suc_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_suc_time\")]\n                        public long? ApplySuccessTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置移除时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long? EndTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品定向计划作者列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orien_plan_authors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_authors\")]\n                public Types.Author[] AuthorList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanControlRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanCtrl 接口的请求。</para>\n    /// </summary>\n    public class BuyinOrientPlanControlRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置定向计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n        public string OrientPlanId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public int Action { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanControlResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanCtrl 接口的响应。</para>\n    /// </summary>\n    public class BuyinOrientPlanControlResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanList 接口的请求。</para>\n    /// </summary>\n    public class BuyinOrientPlanListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n        public string? ProductName { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n        public string? OrientPlanId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：20</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 20;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/OrientPlan/BuyinOrientPlanListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/orienPlanList 接口的响应。</para>\n    /// </summary>\n    public class BuyinOrientPlanListResponse : DouyinShopResponse<BuyinOrientPlanListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductOrientPlan\n                    {\n                        public static class Types\n                        {\n                            public class OrientPlan\n                            {\n                                /// <summary>\n                                /// 获取或设置定向计划 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"orien_plan_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"orien_plan_id\")]\n                                public string OrientPlanId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品封面 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cover\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                                public string ProductCoverUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int ProductPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置计划状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"plan_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"plan_status\")]\n                                public int PlanStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置佣金比例（范围：0～80）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                                public double COSRatio { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置申请类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"apply_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"apply_type\")]\n                                public int ApplyType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置限制类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"restricted_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"restricted_type\")]\n                                public int RestrictedType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人等级。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"author_level\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"author_level\")]\n                                public int AuthorLevel { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audit_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audit_type\")]\n                                public int AuditType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"kol_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"kol_num\")]\n                                public int KOLCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                                public long StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过期时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                                public long EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置修改后的佣金比例（范围：0～80）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"new_cos_ratio\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"new_cos_ratio\")]\n                                public double? NewCOSRatio { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置修改后的佣金比例生效时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"new_cos_ratio_start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"new_cos_ratio_start_time\")]\n                                public long? NewCOSRatioStartTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置定向计划列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"orien_plans\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"orien_plans\")]\n                        public Types.OrientPlan[] OrientPlanList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品定向计划列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orien_plans\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orien_plans\")]\n                public Types.ProductOrientPlan[] ProductOrientPlanList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Plan/BuyinExclusivePlanRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/exclusivePlan 接口的请求。</para>\n    /// </summary>\n    public class BuyinExclusivePlanRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Product : BuyinSimplePlanRequest.Types.Product\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否是创建。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_create\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_create\")]\n        public bool IsCreating { get; set; }\n\n        /// <summary>\n        /// 获取或设置开通状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n        public IList<Types.Product>? ProductList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Plan/BuyinExclusivePlanResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/exclusivePlan 接口的响应。</para>\n    /// </summary>\n    public class BuyinExclusivePlanResponse : DouyinShopResponse<BuyinExclusivePlanResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : BuyinSimplePlanResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Plan/BuyinSimplePlanRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/simplePlan 接口的请求。</para>\n    /// </summary>\n    public class BuyinSimplePlanRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Product\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置佣金比例（范围：0～100）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                public double COSRatio { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否是创建。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_create\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_create\")]\n        public bool IsCreating { get; set; }\n\n        /// <summary>\n        /// 获取或设置开通状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n        public IList<Types.Product>? ProductList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Buyin/Plan/BuyinSimplePlanResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /buyin/simplePlan 接口的响应。</para>\n    /// </summary>\n    public class BuyinSimplePlanResponse : DouyinShopResponse<BuyinSimplePlanResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否成功。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_success\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_success\")]\n                        public bool IsSuccessful { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_msg\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置操作的商品数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置操作结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsAbandonRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/abandon 接口的请求。</para>\n    /// </summary>\n    public class CouponsAbandonRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置卡券券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cert_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cert_no\")]\n        public string CertNumber { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsAbandonResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/abandon 接口的响应。</para>\n    /// </summary>\n    public class CouponsAbandonResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsCancelVerifyRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/cancelVerify 接口的请求。</para>\n    /// </summary>\n    public class CouponsCancelVerifyRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置卡券券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cert_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cert_no\")]\n        public string CertNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"batch_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"batch_no\")]\n        public string? BatchNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消核销总次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_verify_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_verify_count\")]\n        public int? CancelVerifyCount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsCancelVerifyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/cancelVerify 接口的响应。</para>\n    /// </summary>\n    public class CouponsCancelVerifyResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsSyncV2Request.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/syncV2 接口的请求。</para>\n    /// </summary>\n    public class CouponsSyncV2Request : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Cert\n            {\n                /// <summary>\n                /// 获取或设置外部卡券 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_cert_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_cert_id\")]\n                public string? OutCertId { get; set; }\n\n                /// <summary>\n                /// 获取或设置卡券券码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cert_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cert_no\")]\n                public string CertNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置卡密。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cert_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cert_key\")]\n                public string? CertKey { get; set; }\n\n                /// <summary>\n                /// 获取或设置发券时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"grant_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"grant_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                public DateTimeOffset GrantTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置可延期次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_extend_valid_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_extend_valid_count\")]\n                public int? CanExtendValidCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int? Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效开始时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_start\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_start\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                public DateTimeOffset? ValidStartTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效结束时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_end\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_end\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                public DateTimeOffset? ValidEndTime { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置子订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        public long? SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置卡券信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cert_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cert_list\")]\n        public IList<Types.Cert> CertList { get; set; } = new List<Types.Cert>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsSyncV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/syncV2 接口的响应。</para>\n    /// </summary>\n    public class CouponsSyncV2Response : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsVerifyV2Request.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/verifyV2 接口的请求。</para>\n    /// </summary>\n    public class CouponsVerifyV2Request : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置卡券券码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cert_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cert_no\")]\n        public string CertNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置核销时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? VerifyTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"batch_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"batch_no\")]\n        public string? BatchNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置当次核销的次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_count\")]\n        public int? VerifyCount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Coupons/CouponsVerifyV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /coupons/verifyV2 接口的响应。</para>\n    /// </summary>\n    public class CouponsVerifyV2Response : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderBankAccountVerifyRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/bankAccountVerify 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderBankAccountVerifyRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置币种。\n        /// <para>默认值：CNY</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"currency\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n        public string Currency { get; set; } = \"CNY\";\n\n        /// <summary>\n        /// 获取或设置账户名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n        public string AccountName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置银行账户。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bank_account_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bank_account_no\")]\n        public string BankAccountNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开户行名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bank_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bank_name\")]\n        public string BankName { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderBankAccountVerifyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/bankAccountVerify 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderBankAccountVerifyResponse : DouyinShopResponse<CrossBorderBankAccountVerifyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置受理结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"acceptance_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"acceptance_result\")]\n                public string AcceptanceResult { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置校验结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verification_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verification_result\")]\n                public string VerificationResult { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderOrderInterceptionRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/OrderInterception 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderOrderInterceptionRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置服务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置交易单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发生时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset OccurrenceTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderOrderInterceptionResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/OrderInterception 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderOrderInterceptionResponse : DouyinShopResponse<CrossBorderOrderInterceptionResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : CrossBorderStockTakingResponse.Types.Data\n            {\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderOrderListRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/orderList 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderOrderListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置服务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_list\")]\n        public IList<string>? OrderIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_desc\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_desc\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? SortByDescending { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// <para>默认值：create_time</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string SortField { get; set; } = \"create_time\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderOrderListResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/orderList 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderOrderListResponse : DouyinShopResponse<CrossBorderOrderListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                public static class Types\n                                {\n                                    public class Area\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置地区 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                        public int Id { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置地区名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置省份信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                public Types.Area Province { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public Types.Area City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                                public Types.Area District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置街道信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                                public Types.Area? Street { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                                public string Detail { get; set; } = default!;\n                            }\n                        }\n\n                        internal static class Converters\n                        {\n                            internal class NewtonsoftJsonAddressConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<Types.Address?>\n                            {\n                            }\n\n                            internal class SystemTextJsonAddressConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<Types.Address?>\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进出口标志。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ie_flag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ie_flag\")]\n                        public string? IEFlag { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置通关模式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customs_clear_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customs_clear_type\")]\n                        public int? CustomsClearType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申报海关代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customs_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customs_code\")]\n                        public string? CustomsCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置口岸海关代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"port_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"port_code\")]\n                        public string? PortCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n                        public string? WarehouseCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务商仓库类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"wh_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"wh_type\")]\n                        public int? VendorWarehouseType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务商仓库编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scsp_warehouse_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scsp_warehouse_code\")]\n                        public string? VendorWarehouseCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品实际成交价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_value\")]\n                        public int Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运杂费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"freight\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"freight\")]\n                        public int Freight { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置非现金抵扣金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                        public int Discount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置代扣税款（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_total\")]\n                        public int Tax { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actural_paid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actural_paid\")]\n                        public int ActualPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流保价费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"insured_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"insured_fee\")]\n                        public int InsuredFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电商平台代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ebp_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ebp_code\")]\n                        public string? EBPCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置电商平台名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ebp_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ebp_name\")]\n                        public string? EBPName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置电商企业备案编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ebc_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ebc_code\")]\n                        public string? EBCCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置电商企业名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ebc_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ebc_name\")]\n                        public string? EBCName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订购人注册号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_reg_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_reg_no\")]\n                        public string BuyerRegistrationNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订购人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_name\")]\n                        public string BuyerName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订购人电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_telephone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_telephone\")]\n                        public string BuyerPhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订购人证件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_id_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_id_type\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int BuyerIdType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订购人证件号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_id_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_id_number\")]\n                        public string BuyerIdNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收货人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consignee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consignee\")]\n                        public string ConsigneeName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收货人电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consignee_telephone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consignee_telephone\")]\n                        public string ConsigneePhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收货人地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consignee_address\")]\n                        [Newtonsoft.Json.JsonConverter((typeof(Converters.NewtonsoftJsonAddressConverter)))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consignee_address\")]\n                        [System.Text.Json.Serialization.JsonConverter((typeof(Converters.SystemTextJsonAddressConverter)))]\n                        public Types.Address ConsigneeAddress { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付企业编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_code\")]\n                        public string? PayerCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付企业名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_name\")]\n                        public string? PayerName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付企业支付流水号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_transaction_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_transaction_id\")]\n                        public string? PayerTransactionId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置件数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_no\")]\n                        public int PackageCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单申报备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"note\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n                        public string? Notes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付完成时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public long PayTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预售类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_sale_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_sale_type\")]\n                        public int? PresellType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货超时时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exp_ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exp_ship_time\")]\n                        public long? ExpireShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单申报类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_declare\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_declare\")]\n                        public int? OrderDeclareType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运单申报类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_declare\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_declare\")]\n                        public int? LogisticsDeclareType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置清单申报类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_declare\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_declare\")]\n                        public int? InventoryDeclareType { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_next\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_next\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderQueryBalanceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/queryBalance 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderQueryBalanceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderQueryBalanceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/queryBalance 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderQueryBalanceResponse : DouyinShopResponse<CrossBorderQueryBalanceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Balance\n                    {\n                        /// <summary>\n                        /// 获取或设置金额类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"balance_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"balance_type\")]\n                        public string BalanceType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public int Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置余额列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"balance_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"balance_list\")]\n                public Types.Balance[] BalanceList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderStockTakingRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/stockTaking 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderStockTakingRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Detail\n            {\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置质量等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_grade\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_grade\")]\n                public int QualityGrade { get; set; }\n\n                /// <summary>\n                /// 获取或设置数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置盘点原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置盘点具体原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_msg\")]\n                public string? ReasonMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extend\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n                public IDictionary<string, string>? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int? ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置盘点类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"taking_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"taking_type\")]\n        public int TakingType { get; set; }\n\n        /// <summary>\n        /// 获取或设置盘点完成时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        public long OccurrenceTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置盘点明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_taking_details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_taking_details\")]\n        public IList<Types.Detail> DetailList { get; set; } = new List<Types.Detail>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderStockTakingResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/stockTaking 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderStockTakingResponse : DouyinShopResponse<CrossBorderStockTakingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置错误码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int ErrorCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n                public string? ErrorMessage { get; set; }\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderStockTransformRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/stockTransform 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderStockTransformRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Detail\n            {\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置调整前质量等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"from_grade\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"from_grade\")]\n                public int FromQualityGrade { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整后质量等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"to_grade\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"to_grade\")]\n                public int ToQualityGrade { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_code\")]\n                public int ReasonCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整具体原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason_msg\")]\n                public string? ReasonMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extend\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n                public IDictionary<string, string>? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int? ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存变动类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"transform_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"transform_type\")]\n        public int TransformType { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存类型变动时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        public long OccurrenceTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存类型明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_transform_details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_transform_details\")]\n        public IList<Types.Detail> DetailList { get; set; } = new List<Types.Detail>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderStockTransformResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/stockTransform 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderStockTransformResponse : DouyinShopResponse<CrossBorderStockTransformResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : CrossBorderStockTakingResponse.Types.Data\n            {\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderWarehouseInOutboundEventRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/warehouseInOutboundEvent 接口的请求。</para>\n    /// </summary>\n    public class CrossBorderWarehouseInOutboundEventRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class TallyReport\n            {\n                /// <summary>\n                /// 获取或设置附件 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置附件名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = string.Empty;\n            }\n\n            public class InboundCargo\n            {\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置实际上架数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"actual_stack_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"actual_stack_count\")]\n                public int ActualStackCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置良品数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"good_cargo_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"good_cargo_count\")]\n                public int GoodCargoCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置次品数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"defective_cargo_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"defective_cargo_count\")]\n                public int DefectiveCargoCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expiry_date\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expiry_date\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                public DateTimeOffset ExpiryTime { get; set; }\n            }\n\n\n            public class OutboundCargo\n            {\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置质量等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_grade\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_grade\")]\n                public int QualityGrade { get; set; }\n\n                /// <summary>\n                /// 获取或设置货品数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extend\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n                public IDictionary<string, string>? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置出入库事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"in_outbound_event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"in_outbound_event_type\")]\n        public int InOutboundEventType { get; set; }\n\n        /// <summary>\n        /// 获取或设置来源单据号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_order_no\")]\n        public string SourceOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置服务商单据编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sp_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sp_order_no\")]\n        public string? VendorOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存类型变动时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        public long OccurrenceTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置异常原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_reason\")]\n        public string? ErrorReason { get; set; }\n\n        /// <summary>\n        /// 获取或设置理货报告列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tally_report_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tally_report_url\")]\n        public IList<Types.TallyReport>? TallyReportList { get; set; }\n\n        /// <summary>\n        /// 获取或设置入库货品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inbound_cargo_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inbound_cargo_infos\")]\n        public IList<Types.InboundCargo>? InboundCargoList { get; set; }\n\n        /// <summary>\n        /// 获取或设置出库货品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"outbound_cargo_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"outbound_cargo_infos\")]\n        public IList<Types.OutboundCargo>? OutboundCargoList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/CrossBorder/CrossBorderWarehouseInOutboundEventResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /crossBorder/warehouseInOutboundEvent 接口的响应。</para>\n    /// </summary>\n    public class CrossBorderWarehouseInOutboundEventResponse : DouyinShopResponse<CrossBorderWarehouseInOutboundEventResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : CrossBorderStockTakingResponse.Types.Data\n            {\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/DutyFree/DutyFreeOrderConfirmRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /dutyFree/orderConfirm 接口的请求。</para>\n    /// </summary>\n    public class DutyFreeOrderConfirmRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Error\n            {\n                /// <summary>\n                /// 获取或设置失败编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"error_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"error_code\")]\n                public string ErrorCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"error_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"error_msg\")]\n                public string ErrorMessage { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置接单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置接单时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset OccurrenceTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置接单失败信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_info\")]\n        public Types.Error? Error { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/DutyFree/DutyFreeOrderConfirmResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /dutyFree/orderConfirm 接口的响应。</para>\n    /// </summary>\n    public class DutyFreeOrderConfirmResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/FreightTemplate/FreightTemplateListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /freightTemplate/list 接口的请求。</para>\n    /// </summary>\n    public class FreightTemplateListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置运费模板名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? Name { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/FreightTemplate/FreightTemplateListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /freightTemplate/list 接口的响应。</para>\n    /// </summary>\n    public class FreightTemplateListResponse : DouyinShopResponse<FreightTemplateListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FreightTemplate\n                    {\n                        public static class Types\n                        {\n                            public class Template\n                            {\n                                /// <summary>\n                                /// 获取或设置运费模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public int Id { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费模板名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_name\")]\n                                public string Name { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置运费模板信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template\")]\n                        public Types.Template Template { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置运费模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"List\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"List\")]\n                public Types.FreightTemplate[] FreightTemplateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置运费模板总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"Count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"Count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPOrderInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/orderInfo 接口的请求。</para>\n    /// </summary>\n    public class IOPOrderInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long DistributeShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置代打订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n        public string DistributeOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPOrderInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/orderInfo 接口的响应。</para>\n    /// </summary>\n    public class IOPOrderInformationResponse : DouyinShopResponse<IOPOrderInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPOrderListResponse.Types.Data.Types.DistributeOrder\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPOrderListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/orderList 接口的请求。</para>\n    /// </summary>\n    public class IOPOrderListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置更新时间开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_update_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_update_time\")]\n        public long StartUpdateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_update_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_update_time\")]\n        public long EndUpdateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置分配状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_status\")]\n        public int? DistributeStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPOrderListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/orderList 接口的响应。</para>\n    /// </summary>\n    public class IOPOrderListResponse : DouyinShopResponse<IOPOrderListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DistributeOrder\n                    {\n                        /// <summary>\n                        /// 获取或设置代打店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                        public long DistributeShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置代打店铺自定义名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                        public string DistributeShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistributeOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_words\")]\n                        public string? SellerWords { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分配时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_time\")]\n                        public long DistributeTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_status\")]\n                        public int DistributeStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_count\")]\n                        public int ProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_price\")]\n                        public int ProductPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家 SKU 编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                        public string? OuterSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 规格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_spec\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_spec\")]\n                        public string? SKUSpecification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件人 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_id\")]\n                        public string ReceiverId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置省份 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ProvinceId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置省份名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string ProvinceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CityId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置城市名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string CityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区县 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"district_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"district_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int DistrictId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置区县名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"district\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                        public string DistrictName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置街道 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? StreetId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置街道名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                        public string? StreetName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_cancel_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_cancel_reason\")]\n                        public string? CancelReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置代打订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_list\")]\n                public Types.DistributeOrder[] DistributeOrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPRoleGetRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/roleGet 接口的请求。</para>\n    /// </summary>\n    public class IOPRoleGetRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/IOPRoleGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/roleGet 接口的响应。</para>\n    /// </summary>\n    public class IOPRoleGetResponse : DouyinShopResponse<IOPRoleGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置身份类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"role_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"role_type\")]\n                public int RoleType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerCancelDistributeRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerCancleDistribute 接口的请求。</para>\n    /// </summary>\n    public class IOPSellerCancelDistributeRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_ids\")]\n        public IList<string> DistributeOrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerCancelDistributeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerCancleDistribute 接口的响应。</para>\n    /// </summary>\n    public class IOPSellerCancelDistributeResponse : DouyinShopResponse<IOPSellerCancelDistributeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置取消成功的订单 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"succ_distr_order_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"succ_distr_order_ids\")]\n                public string[] SuccessfulDistributeOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置取消失败的订单 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_distr_order_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_distr_order_ids\")]\n                public string[] FailedDistributeOrderIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerDistributeRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerDistribute 接口的请求。</para>\n    /// </summary>\n    public class IOPSellerDistributeRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class DistributeOrder\n            {\n                /// <summary>\n                /// 获取或设置要分配的厂商的店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_id\")]\n                public long SupplierShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置代打订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                public string DistributeOrderId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待分配的代打订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distribute_order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distribute_order_list\")]\n        public IList<Types.DistributeOrder> DistributeOrderList { get; set; } = new List<Types.DistributeOrder>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerDistributeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerDistribute 接口的响应。</para>\n    /// </summary>\n    public class IOPSellerDistributeResponse : DouyinShopResponse<IOPSellerDistributeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置要分配的厂商的店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_id\")]\n                        public long SupplierShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistributeOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误状态码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分配结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"distribute_order_reuslts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"distribute_order_reuslts\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerOrderInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerOrderInfo 接口的请求。</para>\n    /// </summary>\n    public class IOPSellerOrderInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n        public string DistributeOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerOrderInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerOrderInfo 接口的响应。</para>\n    /// </summary>\n    public class IOPSellerOrderInformationResponse : DouyinShopResponse<IOPSellerOrderInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DistributeOrder : IOPSellerOrderListResponse.Types.Data.Types.DistributeOrder\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置代打订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"distr_order_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_detail\")]\n                public Types.DistributeOrder DistributeOrder { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerOrderListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerOrderList 接口的请求。</para>\n    /// </summary>\n    public class IOPSellerOrderListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置更新时间开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_update_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_update_time\")]\n        public long StartUpdateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_update_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_update_time\")]\n        public long EndUpdateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单成交开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_deal_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_deal_time\")]\n        public long? StartDealTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单成交结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_deal_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_deal_time\")]\n        public long? EndDealTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n        public string? ProductName { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n        public string? ShopOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        public int? OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置代打订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n        public string? DistributeOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分配状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_status\")]\n        public int? DistributeStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_sale_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_status\")]\n        public int? AftersaleStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置厂商店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_id\")]\n        public long? SupplierShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置省份 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n        public int? ProvinceId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerOrderListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerOrderList 接口的响应。</para>\n    /// </summary>\n    public class IOPSellerOrderListResponse : DouyinShopResponse<IOPSellerOrderListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DistributeOrder\n                    {\n                        /// <summary>\n                        /// 获取或设置厂商店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_id\")]\n                        public long SupplierShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置厂商店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_shop_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_name\")]\n                        public string SupplierShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistributeOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_words\")]\n                        public string? SellerWords { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                        public string ShopOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public long PayTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分配时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_time\")]\n                        public long DistributeTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_status\")]\n                        public int DistributeStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public int OrderStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_status\")]\n                        public int AftersaleStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_count\")]\n                        public int ProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_price\")]\n                        public int ProductPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家 SKU 编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                        public string? OuterSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 规格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_spec\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_spec\")]\n                        public string? SKUSpecification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件人 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receiver_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_id\")]\n                        public string ReceiverId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置省份 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ProvinceId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置省份名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string ProvinceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int CityId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置城市名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string CityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区县 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"district_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"district_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int DistrictId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置区县名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"district\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                        public string DistrictName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置街道 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? StreetId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置街道名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"street\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                        public string? StreetName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置承诺发货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exp_ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exp_ship_time\")]\n                        public long? ExpectedShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n                        public string? LogisticsNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string? LogisticsCompanyName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_cancel_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_cancel_reason\")]\n                        public string? CancelReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置代打订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"distr_order_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_list\")]\n                public Types.DistributeOrder[] DistributeOrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int PageSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerSupplierListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerSupplierList 接口的请求。</para>\n    /// </summary>\n    public class IOPSellerSupplierListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置绑定状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n        public IList<int>? BindStatusList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Seller/IOPSellerSupplierListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/sellerSupplierList 接口的响应。</para>\n    /// </summary>\n    public class IOPSellerSupplierListResponse : DouyinShopResponse<IOPSellerSupplierListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SupplierShop\n                    {\n                        /// <summary>\n                        /// 获取或设置厂商店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_id\")]\n                        public long SupplierShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置厂商店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_shop_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_name\")]\n                        public string SupplierShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置绑定状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n                        public int BindStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                        public long ApplyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置绑定时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"band_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"band_time\")]\n                        public long? BindTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置拒绝时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refuse_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refuse_time\")]\n                        public long? RefuseTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置厂商店铺列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_shop_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_shop_list\")]\n                public Types.SupplierShop[] SupplierShopList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n                public int PageSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillCancelRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillCancel 接口的请求。</para>\n    /// </summary>\n    public class IOPWaybillCancelRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long DistributeShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillCancelResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillCancel 接口的响应。</para>\n    /// </summary>\n    public class IOPWaybillCancelResponse : DouyinShopResponse<IOPWaybillCancelResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_result\")]\n                public bool Result { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillGet 接口的请求。</para>\n    /// </summary>\n    public class IOPWaybillGetRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Sender\n            {\n                public static class Types\n                {\n                    public class Contact\n                    {\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置固定电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                        public string? TeleNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置手机号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                        public string? MobileNumber { get; set; }\n                    }\n\n                    public class Address\n                    {\n                        /// <summary>\n                        /// 获取或设置国家编码。\n                        /// <para>默认值：CHN</para>\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"countryCode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"countryCode\")]\n                        public string CountryCode { get; set; } = \"CHN\";\n\n                        /// <summary>\n                        /// 获取或设置省份 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"provinceCode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"provinceCode\")]\n                        public int? ProvinceId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置省份名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"provinceName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"provinceName\")]\n                        public string ProvinceName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置城市 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cityCode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cityCode\")]\n                        public int? CityCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置城市名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cityName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cityName\")]\n                        public string CityName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置区县 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"districtCode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"districtCode\")]\n                        public int? DistrictId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置区县名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"districtName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"districtName\")]\n                        public string DistrictName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置街道 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"streetCode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"streetCode\")]\n                        public int? StreetId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置街道名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"streetName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"streetName\")]\n                        public string? StreetName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置详细地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detailAddress\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detailAddress\")]\n                        public string Detail { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置联系方式信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contact\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contact\")]\n                public Types.Contact Contact { get; set; } = new Types.Contact();\n\n                /// <summary>\n                /// 获取或设置地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public Types.Address Address { get; set; } = new Types.Address();\n            }\n\n            public class TradeOrder\n            {\n                public static class Types\n                {\n                    public class DistributeOrder\n                    {\n                        public static class Types\n                        {\n                            public class Service : LogisticsNewCreateOrderRequest.Types.Order.Types.Service\n                            {\n                            }\n\n                            public class Item : LogisticsNewCreateOrderRequest.Types.Order.Types.Item\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistributeOrderId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                        public string? PackageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快递产品类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                        public int? ProductType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值服务列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_list\")]\n                        public IList<Types.Service>? ServiceList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_method\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_method\")]\n                        public int? PayMethod { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        public int? PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                        public IList<Types.Item>? ItemList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置要求上门取件时间段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sender_fetch_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sender_fetch_time\")]\n                        public string? SenderFetchTimeRange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否返回签回单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_sign_back\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_sign_back\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n                        public bool? IsSignBack { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remark\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                        public string? Remark { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置备用扩展字段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置子母件数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_pack_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_pack_count\")]\n                        public int? TotalPackageCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总长度（单位：厘米）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_length\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_length\")]\n                        public int? TotalLength { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总宽度（单位：厘米）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_width\")]\n                        public int? TotalWidth { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总高度（单位：厘米）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_height\")]\n                        public int? TotalHeight { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总体积（单位：立方厘米）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"volume\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"volume\")]\n                        public int? TotalVolume { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总重量（单位：克）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_weight\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_weight\")]\n                        public int? TotalWeight { get; set; }\n                    }\n\n                    public class DeliveryRequest : LogisticsNewCreateOrderRequest.Types.DeliveryRequest\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置代打店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                public long DistributeShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置代打订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_infos\")]\n                public IList<Types.DistributeOrder> DistributeOrderList { get; set; } = new List<Types.DistributeOrder>();\n\n                /// <summary>\n                /// 获取或设置派送要求信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_req\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_req\")]\n                public Types.DeliveryRequest? DeliveryRequest { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流公司编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                public string LogisticsCompanyCode { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置寄件人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sender\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sender\")]\n        public Types.Sender Sender { get; set; } = new Types.Sender();\n\n        /// <summary>\n        /// 获取或设置取号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"trade_order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"trade_order_list\")]\n        public IList<Types.TradeOrder> TradeOrderList { get; set; } = new List<Types.TradeOrder>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillGet 接口的响应。</para>\n    /// </summary>\n    public class IOPWaybillGetResponse : DouyinShopResponse<IOPWaybillGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class EBill\n                    {\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistribueOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置快递单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n                        public string LogisticsNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分拣码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sort_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sort_code\")]\n                        public string? SortCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置集包地代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_code\")]\n                        public string? PackageCenterCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置集包地名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_code_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_code_name\")]\n                        public string? PackageCenterName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置大头笔编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mark_destination_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mark_destination_code\")]\n                        public string? ShortAddressCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置大头笔名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mark_destination_code_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mark_destination_code_name\")]\n                        public string? ShortAddressName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置额外信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置额外打印信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra_resp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra_resp\")]\n                        public string? ExtraResponse { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置子母件单号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_waybill_codes\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_waybill_codes\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringArrayWithCommaSplitConverter))]\n                        public string[]? SubWaybillCodes { get; set; }\n                    }\n\n                    public class Error\n                    {\n                        /// <summary>\n                        /// 获取或设置代打订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n                        public string DistributeOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置电子面单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ebill_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ebill_infos\")]\n                public Types.EBill[]? EBillList { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"err_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"err_infos\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillReturnRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillReturn 接口的请求。</para>\n    /// </summary>\n    public class IOPWaybillReturnRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long DistributeShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置代打订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n        public string DistributeOrderid { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否拒绝退款申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_refund_reject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_refund_reject\")]\n        public bool? IsRefundRejected { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillReturnResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillReturn 接口的响应。</para>\n    /// </summary>\n    public class IOPWaybillReturnResponse : DouyinShopResponse<IOPWaybillReturnResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_result\")]\n                public bool Result { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_id\")]\n                public string? DeliveryId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillUpdateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillUpdate 接口的请求。</para>\n    /// </summary>\n    public class IOPWaybillUpdateRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置代打店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long DistributeShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置代打订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"distr_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"distr_order_id\")]\n        public string DistributeOrderid { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置包裹单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_id\")]\n        public string DeliveryId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/IOP/Waybill/IOPWaybillUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /iop/waybillUpdate 接口的响应。</para>\n    /// </summary>\n    public class IOPWaybillUpdateResponse : DouyinShopResponse<IOPWaybillUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : IOPWaybillReturnResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsCancelOrderRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/cancelOrder 接口的请求。</para>\n    /// </summary>\n    public class LogisticsCancelOrderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long? UserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsCancelOrderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/cancelOrder 接口的响应。</para>\n    /// </summary>\n    public class LogisticsCancelOrderResponse : DouyinShopResponse<LogisticsCancelOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置是否成功。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n                        public bool? IsSucceeded { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_result\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsGetCustomTemplateListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/getCustomTemplateList 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetCustomTemplateListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string? LogisticsCompanyCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsGetCustomTemplateListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/getCustomTemplateList 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetCustomTemplateListResponse : DouyinShopResponse<LogisticsGetCustomTemplateListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CustomTemplate\n                    {\n                        public static class Types\n                        {\n                            public class Template\n                            {\n                                /// <summary>\n                                /// 获取或设置自定义模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"custom_template_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_id\")]\n                                public int CustomTemplateId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置自定义模板编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"custom_template_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_code\")]\n                                public string CustomTemplateCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置自定义模板名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"custom_template_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_name\")]\n                                public string CustomTemplateName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置上级模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"parent_template_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"parent_template_id\")]\n                                public int? ParentTemplateId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置上级模板编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"parent_template_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"parent_template_code\")]\n                                public string? ParentTemplateCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置自定义模板 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"custom_template_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_url\")]\n                                public string CustomTemplateUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置自定义模板打印项字段列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"custom_template_key_list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_key_list\")]\n                                public string[]? CustomTemplateKeyList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置快递公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string LogisticsCompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模板列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"custom_template_infos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_infos\")]\n                        public Types.Template[] TemplateList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置自定义模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"custom_template_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"custom_template_data\")]\n                public Types.CustomTemplate[] CustomTemplateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsGetOutRangeRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/getOutRange 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetOutRangeRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置国家编码。\n                /// <para>默认值：CHN</para>\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string CountryCode { get; set; } = \"CHN\";\n\n                /// <summary>\n                /// 获取或设置省份名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                public string ProvinceName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置城市名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                public string CityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置区县名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district_name\")]\n                public string DistrictName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置街道名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_name\")]\n                public string? StreetName { get; set; }\n\n                /// <summary>\n                /// 获取或设置详细地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail_address\")]\n                public string Detail { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发货地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sender_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sender_address\")]\n        public Types.Address SenderAddress { get; set; } = new Types.Address();\n\n        /// <summary>\n        /// 获取或设置收件地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"receiver_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_address\")]\n        public Types.Address ReceiverAddress { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsGetOutRangeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/getOutRange 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetOutRangeResponse : DouyinShopResponse<LogisticsGetOutRangeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否超区。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_out_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_out_range\")]\n                public bool IsOutRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置超区原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_range_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_range_reason\")]\n                public string? Reason { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsListShopNetSiteRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/listShopNetsite 接口的请求。</para>\n    /// </summary>\n    public class LogisticsListShopNetSiteRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsListShopNetSiteResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/listShopNetsite 接口的响应。</para>\n    /// </summary>\n    public class LogisticsListShopNetSiteResponse : DouyinShopResponse<LogisticsListShopNetSiteResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class NetSite\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                /// <summary>\n                                /// 获取或设置省份名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                                public string ProvinceName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                                public string CityName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district_name\")]\n                                public string DistrictName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置街道名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street_name\")]\n                                public string? StreetName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"detail_address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"detail_address\")]\n                                public string Detail { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置网点编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"netsite_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"netsite_code\")]\n                        public string NetSiteCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置网点名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"netsite_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"netsite_name\")]\n                        public string NetSiteName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置快递公司类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                        public int CompanyType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快递公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                        public string CompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电子面单余额数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Quantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已取单号数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"allocated_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"allocated_quantity\")]\n                        public int AllocatedQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已取消号数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancelled_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancelled_quantity\")]\n                        public int CancelledQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置已回收号数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recycled_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recycled_quantity\")]\n                        public int RecycledQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置寄件人地址列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sender_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sender_address\")]\n                        public Types.Address[]? SenderAddressLiser { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"netsites\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"netsites\")]\n                public Types.NetSite[] NetSiteList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置快递公司类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                public int CompanyType { get; set; }\n\n                /// <summary>\n                /// 获取或设置快递公司编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                public string LogisticsCompanyCode { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsNewCreateOrderRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/newCreateOrder 接口的请求。</para>\n    /// </summary>\n    public class LogisticsNewCreateOrderRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Contact\n            {\n                /// <summary>\n                /// 获取或设置姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置固定电话。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n                public string? TeleNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置手机号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n            }\n\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置国家编码。\n                /// <para>默认值：CHN</para>\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string CountryCode { get; set; } = \"CHN\";\n\n                /// <summary>\n                /// 获取或设置省份名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                public string ProvinceName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置城市名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                public string CityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置区县名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district_name\")]\n                public string DistrictName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置街道名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_name\")]\n                public string? StreetName { get; set; }\n\n                /// <summary>\n                /// 获取或设置详细地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail_address\")]\n                public string Detail { get; set; } = string.Empty;\n            }\n\n            public class Sender\n            {\n                /// <summary>\n                /// 获取或设置联系方式信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contact\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contact\")]\n                public Contact Contact { get; set; } = new Contact();\n\n                /// <summary>\n                /// 获取或设置收货地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public Address Address { get; set; } = new Address();\n            }\n\n            public class Receiver : Sender\n            {\n            }\n\n            public class Order\n            {\n                public static class Types\n                {\n                    public class Service\n                    {\n                        /// <summary>\n                        /// 获取或设置增值服务编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_code\")]\n                        public string ServiceCode { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置增值服务值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_value\")]\n                        public string ServiceValue { get; set; } = string.Empty;\n                    }\n\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置商品规格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_specs\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_specs\")]\n                        public string? Specification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_count\")]\n                        public int Count { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单件体积（单位：立方厘米）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_volume\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_volume\")]\n                        public int? Volume { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单件重量（单位：克）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_weight\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_weight\")]\n                        public int? Weight { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单件净重（单位：克）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_net_weight\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_net_weight\")]\n                        public int? NetWeight { get; set; }\n                    }\n\n                    public class Warehouse\n                    {\n                        /// <summary>\n                        /// 获取或设置仓库编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"wh_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"wh_code\")]\n                        public string? WarehouseCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"wh_order_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"wh_order_no\")]\n                        public string? WarehouseOrderNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否总对总门店发货。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_sum_up\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_sum_up\")]\n                        public bool? IsSumUp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                        public int? DeliveryType { get; set; }\n                    }\n\n                    public class NetSite\n                    {\n                        /// <summary>\n                        /// 获取或设置物流服务商类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public string? Category { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置网点编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_code\")]\n                        public string? NetSiteCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总对总账号或月结账号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"monthly_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"monthly_account\")]\n                        public string? MonthlyStatementAccount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总对总密码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"secret_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"secret_key\")]\n                        public string? SecretKey { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                public string? PackageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置快递产品类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                public int? ProductType { get; set; }\n\n                /// <summary>\n                /// 获取或设置增值服务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_list\")]\n                public IList<Types.Service>? ServiceList { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_method\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_method\")]\n                public int? PayMethod { get; set; }\n\n                /// <summary>\n                /// 获取或设置运费金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                public int? PayAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置回单寄回地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pod_model_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pod_model_address\")]\n                public Address? PodModelAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置收件人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receiver_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receiver_info\")]\n                public Receiver Receiver { get; set; } = new Receiver();\n\n                /// <summary>\n                /// 获取或设置商品明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                public IList<Types.Item>? ItemList { get; set; }\n\n                /// <summary>\n                /// 获取或设置要求上门取件时间段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sender_fetch_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sender_fetch_time\")]\n                public string? SenderFetchTimeRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否返回签回单。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_sign_back\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_sign_back\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n                public bool? IsSignBack { get; set; }\n\n                /// <summary>\n                /// 获取或设置备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string? Remark { get; set; }\n\n                /// <summary>\n                /// 获取或设置备用扩展字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置子母件数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_pack_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_pack_count\")]\n                public int? TotalPackageCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总长度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_length\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_length\")]\n                public int? TotalLength { get; set; }\n\n                /// <summary>\n                /// 获取或设置总宽度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_width\")]\n                public int? TotalWidth { get; set; }\n\n                /// <summary>\n                /// 获取或设置总高度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_height\")]\n                public int? TotalHeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置总体积（单位：立方厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"volume\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"volume\")]\n                public int? TotalVolume { get; set; }\n\n                /// <summary>\n                /// 获取或设置总重量（单位：克）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_weight\")]\n                public int? TotalWeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置仓库信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warehouse\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse\")]\n                public Types.Warehouse? Warehouse { get; set; }\n\n                /// <summary>\n                /// 获取或设置网点信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"net_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"net_info\")]\n                public Types.NetSite? NetSite { get; set; }\n\n                /// <summary>\n                /// 获取或设置物料码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_code\")]\n                public string? ShippingCode { get; set; }\n            }\n\n            public class DeliveryRequest\n            {\n                /// <summary>\n                /// 获取或设置是否接受仅镇中心派送。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_center_delivery\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_center_delivery\")]\n                public bool? IsCenterDelivery { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否合伙人自提。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_pickup_self\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_pickup_self\")]\n                public bool? IsPickupSelf { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置寄件人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sender_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sender_info\")]\n        public Types.Sender Sender { get; set; } = new Types.Sender();\n\n        /// <summary>\n        /// 获取或设置代打订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_infos\")]\n        public IList<Types.Order> OrderList { get; set; } = new List<Types.Order>();\n\n        /// <summary>\n        /// 获取或设置派送要求信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_req\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_req\")]\n        public Types.DeliveryRequest? DeliveryRequest { get; set; }\n\n        /// <summary>\n        /// 获取或设置渠道来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_channel\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_channel\")]\n        public string? OrderChannel { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long? UserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsNewCreateOrderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/newCreateOrder 接口的响应。</para>\n    /// </summary>\n    public class LogisticsNewCreateOrderResponse : DouyinShopResponse<LogisticsNewCreateOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class EBill\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置快递单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n                        public string LogisticsNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分拣码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sort_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sort_code\")]\n                        public string? SortCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置集包地代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_center_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_center_code\")]\n                        public string? PackageCenterCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置集包地名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_center_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_center_name\")]\n                        public string? PackageCenterName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置大头笔编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_address_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_address_code\")]\n                        public string? ShortAddressCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置大头笔名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_address_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_address_name\")]\n                        public string? ShortAddressName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置额外打印信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra_resp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra_resp\")]\n                        public string? ExtraResponse { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置子母件单号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_waybill_codes\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_waybill_codes\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringArrayWithCommaSplitConverter))]\n                        public string[]? SubWaybillCodes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置渠道来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_channel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_channel\")]\n                        public string? OrderChannel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置寄件码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_code\")]\n                        public string? ShippingCode { get; set; }\n                    }\n\n                    public class Error\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string ErrorMessage { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置渠道来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_channel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_channel\")]\n                        public string? OrderChannel { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置电子面单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ebill_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ebill_infos\")]\n                public Types.EBill[]? EBillList { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"err_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"err_infos\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsTemplateListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/templateList 接口的请求。</para>\n    /// </summary>\n    public class LogisticsTemplateListRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsTemplateListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/templateList 接口的响应。</para>\n    /// </summary>\n    public class LogisticsTemplateListResponse : DouyinShopResponse<LogisticsTemplateListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Template\n                    {\n                        public static class Types\n                        {\n                            public class Template\n                            {\n                                /// <summary>\n                                /// 获取或设置模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int TemplateId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置模板类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_type\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int TemplateType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置模板编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_code\")]\n                                public string TemplateCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置模板名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_name\")]\n                                public string TemplateName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置模板 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"template_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"template_url\")]\n                                public string TemplateUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置预览 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"perview_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"perview_url\")]\n                                public string PreviewUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置版本。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"version\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int Version { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置快递公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string LogisticsCompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模板列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_infos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_infos\")]\n                        public Types.Template[] TemplateList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_data\")]\n                public Types.Template[] TemplateList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsTrackNoRouteDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/trackNoRouteDetail 接口的请求。</para>\n    /// </summary>\n    public class LogisticsTrackNoRouteDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsTrackNoRouteDetailResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/trackNoRouteDetail 接口的响应。</para>\n    /// </summary>\n    public class LogisticsTrackNoRouteDetailResponse : DouyinShopResponse<LogisticsTrackNoRouteDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class RouteNode\n                    {\n                        /// <summary>\n                        /// 获取或设置轨迹内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置状态编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int StateCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"state_description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"state_description\")]\n                        public string StateDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置站点名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"site_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"site_name\")]\n                        public string SiteName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"timestamp\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long Timestamp { get; set; }\n                    }\n\n                    public class Tracking\n                    {\n                        /// <summary>\n                        /// 获取或设置快递公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"express\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"express\")]\n                        public string LogisticsCompanyCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置超区原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n                        public string LogisticsNumber { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置轨迹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"route_node_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"route_node_list\")]\n                public Types.RouteNode[] RouteNodeList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置运单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"track_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"track_info\")]\n                public Types.Tracking Tracking { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsUpdateOrderRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/updateOrder 接口的请求。</para>\n    /// </summary>\n    public class LogisticsUpdateOrderRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Contact : LogisticsNewCreateOrderRequest.Types.Contact\n            {\n            }\n\n            public class Address : LogisticsNewCreateOrderRequest.Types.Address\n            {\n            }\n\n            public class Sender\n            {\n                /// <summary>\n                /// 获取或设置联系方式信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contact\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contact\")]\n                public Contact? Contact { get; set; }\n            }\n\n            public class Receiver : Sender\n            {\n                /// <summary>\n                /// 获取或设置收货地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public Address? Address { get; set; }\n            }\n\n            public class Item : LogisticsNewCreateOrderRequest.Types.Order.Types.Item\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置寄件人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sender_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sender_info\")]\n        public Types.Sender? Sender { get; set; }\n\n        /// <summary>\n        /// 获取或设置收件人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"receiver_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_info\")]\n        public Types.Receiver? Receiver { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"items\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n        public IList<Types.Item>? ItemList { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置备用扩展字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置总体积字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"volume\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"volume\")]\n        public string? TotalVolumeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置总重量（单位：克）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n        public int? TotalWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n        public long? UserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Logistics/LogisticsUpdateOrderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /logistics/updateOrder 接口的响应。</para>\n    /// </summary>\n    public class LogisticsUpdateOrderResponse : DouyinShopResponse<LogisticsUpdateOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置快递单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"track_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n                public string LogisticsNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分拣码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sort_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sort_code\")]\n                public string? SortCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置集包地代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_center_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_center_code\")]\n                public string? PackageCenterCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置集包地名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_center_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_center_name\")]\n                public string? PackageCenterName { get; set; }\n\n                /// <summary>\n                /// 获取或设置大头笔编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"short_address_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"short_address_code\")]\n                public string? ShortAddressCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置大头笔名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"short_address_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"short_address_name\")]\n                public string? ShortAddressName { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialCreateFolderRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/createFolder 接口的请求。</para>\n    /// </summary>\n    public class MaterialCreateFolderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string FolderName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n        public string? ParentObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件夹类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialCreateFolderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/createFolder 接口的响应。</para>\n    /// </summary>\n    public class MaterialCreateFolderResponse : DouyinShopResponse<MaterialCreateFolderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件夹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObjectId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件夹名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上级文件夹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                public string? ParentObjectId { get; set; }\n\n                /// <summary>\n                /// 获取或设置文件夹类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public int Type { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialDeleteFolderRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/deleteFolder 接口的请求。</para>\n    /// </summary>\n    public class MaterialDeleteFolderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialDeleteFolderResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/deleteFolder 接口的响应。</para>\n    /// </summary>\n    public class MaterialDeleteFolderResponse : DouyinShopResponse<MaterialDeleteFolderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason : MaterialDeleteMaterialResponse.Types.Data.Types.FailReason\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置删除成功的文件夹 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置删除失败的文件夹字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialEditFolderRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/editFolder 接口的请求。</para>\n    /// </summary>\n    public class MaterialEditFolderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string ObjectId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置新的文件夹名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string FolderName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置新的上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_parent_id\")]\n        public string? ToParentObjectId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialEditFolderResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/editFolder 接口的响应。</para>\n    /// </summary>\n    public class MaterialEditFolderResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialGetFolderInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/getFolderInfo 接口的请求。</para>\n    /// </summary>\n    public class MaterialGetFolderInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string ObjectId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：50</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 50;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialGetFolderInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/getFolderInfo 接口的响应。</para>\n    /// </summary>\n    public class MaterialGetFolderInformationResponse : DouyinShopResponse<MaterialGetFolderInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ChildFolder\n                    {\n                        /// <summary>\n                        /// 获取或设置文件夹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                        public string ObjectId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件夹名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string FolderName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件夹类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"folder_object_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"folder_object_type\")]\n                        public int FolderType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件夹状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n                        public int OperateStatus { get; set; }\n                    }\n\n                    public class ChildMaterial : MaterialSearchMaterialResponse.Types.Data.Types.Material\n                    {\n                    }\n\n                    public class Folder : ChildFolder\n                    {\n                        /// <summary>\n                        /// 获取或设置子文件夹列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"child_folder\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"child_folder\")]\n                        public Types.ChildFolder[] ChildFolderList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"child_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"child_material\")]\n                        public Types.ChildMaterial[] ChildMaterialList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件夹下的素材个数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                        public int TotalChildMaterialCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置文件夹信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"folder_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"folder_info\")]\n                public Types.Folder Folder { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialMoveFolderToRecyleBinRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/moveFolderToRecycleBin 接口的请求。</para>\n    /// </summary>\n    public class MaterialMoveFolderToRecyleBinRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialMoveFolderToRecyleBinResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/moveFolderToRecycleBin 接口的响应。</para>\n    /// </summary>\n    public class MaterialMoveFolderToRecyleBinResponse : DouyinShopResponse<MaterialMoveFolderToRecyleBinResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason : MaterialDeleteMaterialResponse.Types.Data.Types.FailReason\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置删除成功的文件夹 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置删除失败的文件夹字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialRecoverFolderRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/recoverFolder 接口的请求。</para>\n    /// </summary>\n    public class MaterialRecoverFolderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialRecoverFolderResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/recoverFolder 接口的响应。</para>\n    /// </summary>\n    public class MaterialRecoverFolderResponse : DouyinShopResponse<MaterialRecoverFolderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason : MaterialDeleteMaterialResponse.Types.Data.Types.FailReason\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置恢复成功的文件夹 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置恢复失败的文件夹字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialSearchFolderRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/searchFolder 接口的请求。</para>\n    /// </summary>\n    public class MaterialSearchFolderRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string? ObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件夹名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? FolderName { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n        public IList<int>? OperateStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_start\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_start\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? CreateTimeStart { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_end\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_end\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? CreateTimeEnd { get; set; }\n\n        /// <summary>\n        /// 获取或设置上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n        public string? ParentObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public int OrderType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Folder/MaterialSearchFolderResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/searchFolder 接口的响应。</para>\n    /// </summary>\n    public class MaterialSearchFolderResponse : DouyinShopResponse<MaterialSearchFolderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Folder\n                    {\n                        /// <summary>\n                        /// 获取或设置文件夹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                        public string ObjectId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上级文件夹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                        public string? ParentObjectId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件夹名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string FolderName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件夹类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"folder_object_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"folder_object_type\")]\n                        public int FolderType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件夹状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n                        public int OperateStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset UpdateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置删除时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delete_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delete_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? DeleteTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置文件夹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"folder_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"folder_info_list\")]\n                public Types.Folder[] FolderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialDeleteMaterialRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/deleteMaterial 接口的请求。</para>\n    /// </summary>\n    public class MaterialDeleteMaterialRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置素材 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialDeleteMaterialResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/deleteMaterial 接口的响应。</para>\n    /// </summary>\n    public class MaterialDeleteMaterialResponse : DouyinShopResponse<MaterialDeleteMaterialResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason\n                    {\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置删除成功的素材 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置删除失败的素材字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialEditMaterialRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/editMaterial 接口的请求。</para>\n    /// </summary>\n    public class MaterialEditMaterialRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string ObjectId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置新的素材名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_name\")]\n        public string MaterialName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置新的上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_parent_id\")]\n        public string? ToParentObjectId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialEditMaterialResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/editMaterial 接口的响应。</para>\n    /// </summary>\n    public class MaterialEditMaterialResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialMoveMaterialToRecyleBinRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/moveMaterialToRecycleBin 接口的请求。</para>\n    /// </summary>\n    public class MaterialMoveMaterialToRecyleBinRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件夹 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialMoveMaterialToRecyleBinResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/moveMaterialToRecycleBin 接口的响应。</para>\n    /// </summary>\n    public class MaterialMoveMaterialToRecyleBinResponse : DouyinShopResponse<MaterialMoveMaterialToRecyleBinResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason : MaterialDeleteMaterialResponse.Types.Data.Types.FailReason\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置删除成功的素材 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置删除失败的素材字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialQueryMaterialDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/queryMaterialDetail 接口的请求。</para>\n    /// </summary>\n    public class MaterialQueryMaterialDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置素材 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string ObjectId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialQueryMaterialDetailResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/queryMaterialDetail 接口的响应。</para>\n    /// </summary>\n    public class MaterialQueryMaterialDetailResponse : DouyinShopResponse<MaterialQueryMaterialDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Material : MaterialSearchMaterialResponse.Types.Data.Types.Material\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_info\")]\n                public Types.Material Material { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialRecoverMaterialRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/recoverMaterial 接口的请求。</para>\n    /// </summary>\n    public class MaterialRecoverMaterialRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置素材 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_ids\")]\n        public IList<string> ObjectIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialRecoverMaterialResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/recoverMaterial 接口的响应。</para>\n    /// </summary>\n    public class MaterialRecoverMaterialResponse : DouyinShopResponse<MaterialRecoverMaterialResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason : MaterialDeleteMaterialResponse.Types.Data.Types.FailReason\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置恢复成功的素材 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_ids\")]\n                public string[] SucceedObjectIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置恢复失败的素材字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"failed_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"failed_map\")]\n                public IDictionary<string, Types.FailReason> FailedObjectMap { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialSearchMaterialRequest.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/searchMaterial 接口的请求。</para>\n    /// </summary>\n    public class MaterialSearchMaterialRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置素材 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string? ObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_name\")]\n        public string? MaterialMame { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_type\")]\n        public IList<string>? MaterialTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n        public IList<int>? AuditStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n        public IList<int>? OperateStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_start\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_start\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? CreateTimeStart { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_end\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_end\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? CreateTimeEnd { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n        public string? ParentObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int? OrderType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/Material/MaterialSearchMaterialResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/searchMaterial 接口的响应。</para>\n    /// </summary>\n    public class MaterialSearchMaterialResponse : DouyinShopResponse<MaterialSearchMaterialResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Material\n                    {\n                        public static class Types\n                        {\n                            public class Photo\n                            {\n                                /// <summary>\n                                /// 获取或设置图片高度（单位：像素）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"height\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                                public int Height { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片宽度（单位：像素）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"width\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                                public int Width { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片格式。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"format\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                                public string Format { get; set; } = default!;\n                            }\n\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频时长（单位：秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"duration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                                public double Duration { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频格式。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"format\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                                public string Format { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                        public string ObjectId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件夹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                        public string? ParentObjectId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建素材时传入的 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_url\")]\n                        public string OriginUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置字节存储素材的 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"byte_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"byte_url\")]\n                        public string ByteUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_name\")]\n                        public string MaterialName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_type\")]\n                        public string MaterialType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n                        public int OperateStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核失败的原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_refuse_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_refuse_reason\")]\n                        public string? AuditRefuseReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int FileSize { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset UpdateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置删除时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delete_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delete_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? DeleteTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"photoInfo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"photoInfo\")]\n                        public Types.Photo? Photo { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"videoInfo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"videoInfo\")]\n                        public Types.Video? Video { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_info_list\")]\n                public Types.Material[] MaterialList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/MaterialUploadImageSyncRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/uploadImageSync 接口的请求。</para>\n    /// </summary>\n    public class MaterialUploadImageSyncRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n        public string? ParentObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_name\")]\n        public string ImageName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string ImageUrl { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/MaterialUploadImageSyncResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/uploadImageSync 接口的响应。</para>\n    /// </summary>\n    public class MaterialUploadImageSyncResponse : DouyinShopResponse<MaterialUploadImageSyncResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : MaterialUploadVideoAsyncResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/MaterialUploadVideoAsyncRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/uploadVideoAsync 接口的请求。</para>\n    /// </summary>\n    public class MaterialUploadVideoAsyncRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置上级文件夹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n        public string? ParentObjectId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string VideoName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string VideoUrl { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Material/MaterialUploadVideoAsyncResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /material/uploadVideoAsync 接口的响应。</para>\n    /// </summary>\n    public class MaterialUploadVideoAsyncResponse : DouyinShopResponse<MaterialUploadVideoAsyncResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置素材 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObjectId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上级文件夹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                public string? ParentObjectId { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是新建。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_new\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_new\")]\n                public bool IsNew { get; set; }\n\n                /// <summary>\n                /// 获取或设置素材审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                public int AuditStatus { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Member/MemberBatchUpdateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /member/batchUpdate 接口的请求。</para>\n    /// </summary>\n    public class MemberBatchUpdateRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Member\n            {\n                /// <summary>\n                /// 获取或设置用户 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                public int? Level { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否解绑。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unbind\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unbind\")]\n                public bool? IsUnbind { get; set; }\n\n                /// <summary>\n                /// 获取或设置积分。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"integral\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"integral\")]\n                public int? Points { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置新的用户数据列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"member_info_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"member_info_list\")]\n        public IList<Types.Member> MemberList { get; set; } = new List<Types.Member>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Member/MemberBatchUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /member/batchUpdate 接口的响应。</para>\n    /// </summary>\n    public class MemberBatchUpdateResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Member/MemberSearchListRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /member/searchList 接口的请求。</para>\n    /// </summary>\n    public class MemberSearchListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置范围起始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置范围结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Member/MemberSearchListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /member/searchList 接口的响应。</para>\n    /// </summary>\n    public class MemberSearchListResponse : DouyinShopResponse<MemberSearchListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_list\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int? TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductApplyRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/apply 接口的请求。</para>\n    /// </summary>\n    public class OpportunityProductApplyRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_id\")]\n        public int ClueId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<long> ProductIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置机会品来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin\")]\n        public string Origin { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置机会品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductApplyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/apply 接口的响应。</para>\n    /// </summary>\n    public class OpportunityProductApplyResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductClueRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/clue 接口的请求。</para>\n    /// </summary>\n    public class OpportunityProductClueRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置机会品线索类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"oppty_clue_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"oppty_clue_type\")]\n        public string OpptyClueType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductClueResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/clue 接口的响应。</para>\n    /// </summary>\n    public class OpportunityProductClueResponse : DouyinShopResponse<OpportunityProductClueResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置线索文件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置线索数目。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                public int Count { get; set; }\n\n                /// <summary>\n                /// 获取或设置线索文件更新日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_date\")]\n                public string UpdateDateString { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductGetApplyProgressRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/getApplyProgress 接口的请求。</para>\n    /// </summary>\n    public class OpportunityProductGetApplyProgressRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置机会品来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin\")]\n        public string Origin { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置机会品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OpportunityProduct/OpportunityProductGetApplyProgressResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /opptyProduct/getApplyProgress 接口的响应。</para>\n    /// </summary>\n    public class OpportunityProductGetApplyProgressResponse : DouyinShopResponse<OpportunityProductGetApplyProgressResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置机会品提报状态编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置机会品提报状态中文描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_desc\")]\n                public string StatusDescription { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/CrossBorder/OrderGetCrossBorderFulfillInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getCrossBorderFulfillInfo 接口的请求。</para>\n    /// </summary>\n    public class OrderGetCrossBorderFulfillInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n        public string ShopOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/CrossBorder/OrderGetCrossBorderFulfillInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getCrossBorderFulfillInfo 接口的响应。</para>\n    /// </summary>\n    public class OrderGetCrossBorderFulfillInformationResponse : DouyinShopResponse<OrderGetCrossBorderFulfillInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置店铺订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                public string ShopOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置物流公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                public string CompanyName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置物流公司编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                public string CompanyCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_order_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_ids\")]\n                public string[] SKUOrderIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                public string? LogisticsNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置电子面单链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"way_bill_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"way_bill_url\")]\n                public string? WaybillUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置大头笔。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mark\")]\n                public string? Mark { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品件数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_num\")]\n                public int ProductCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchDecryptRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchDecrypt 接口的请求。</para>\n    /// </summary>\n    public class OrderBatchDecryptRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class CipherData\n            {\n                /// <summary>\n                /// 获取或设置业务标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n                public string AuthId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置密文。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cipher_text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cipher_text\")]\n                public string CipherText { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待解密的密文列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cipher_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cipher_infos\")]\n        public IList<Types.CipherData> CipherDataList { get; set; } = new List<Types.CipherData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchDecryptResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchDecrypt 接口的响应。</para>\n    /// </summary>\n    public class OrderBatchDecryptResponse : DouyinShopResponse<OrderBatchDecryptResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CustomError\n                    {\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n                        public int ErrorCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n\n                    public class DecryptData\n                    {\n                        /// <summary>\n                        /// 获取或设置业务标识。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n                        public string AuthId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置密文。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cipher_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cipher_text\")]\n                        public string CipherText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置明文。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"decrypt_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"decrypt_text\")]\n                        public string PlainText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置业务错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"custom_err\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"custom_err\")]\n                public Types.CustomError CustomError { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置解密数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"decrypt_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"decrypt_infos\")]\n                public Types.DecryptData[] DecryptDataList { get; set; } = default!;\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.CustomError?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchEncryptRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchEncrypt 接口的请求。</para>\n    /// </summary>\n    public class OrderBatchEncryptRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class PlainData\n            {\n                /// <summary>\n                /// 获取或设置业务标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n                public string AuthId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置明文。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plain_text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plain_text\")]\n                public string PlainText { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置是否支持密文索引。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_support_index\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_support_index\")]\n                public bool IsSupportIndex { get; set; }\n\n                /// <summary>\n                /// 获取或设置加密类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sensitive_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sensitive_type\")]\n                public int SensitiveType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待加密的明文列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"batch_encrypt_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"batch_encrypt_list\")]\n        public IList<Types.PlainData> PlainDataList { get; set; } = new List<Types.PlainData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchEncryptResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchEncrypt 接口的响应。</para>\n    /// </summary>\n    public class OrderBatchEncryptResponse : DouyinShopResponse<OrderBatchEncryptResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CustomError : OrderBatchDecryptResponse.Types.Data.Types.CustomError\n                    {\n                    }\n\n                    public class EncryptData\n                    {\n                        /// <summary>\n                        /// 获取或设置业务标识。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n                        public string AuthId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置密文。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cipher_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cipher_text\")]\n                        public string CipherText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置明文。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"decrypt_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"decrypt_text\")]\n                        public string PlainText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置业务错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"custom_err\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"custom_err\")]\n                public Types.CustomError CustomError { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置加密数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_infos\")]\n                public Types.EncryptData[] EncryptDataList { get; set; } = default!;\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.CustomError?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchSearchIndexRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/BatchSearchIndex 接口的请求。</para>\n    /// </summary>\n    public class OrderBatchSearchIndexRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class PlainData\n            {\n                /// <summary>\n                /// 获取或设置明文。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plain_text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plain_text\")]\n                public string PlainText { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置加密类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_type\")]\n                public int SensitiveType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待加密的明文列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plain_text_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plain_text_list\")]\n        public IList<Types.PlainData> PlainDataList { get; set; } = new List<Types.PlainData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchSearchIndexResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/BatchSearchIndex 接口的响应。</para>\n    /// </summary>\n    public class OrderBatchSearchIndexResponse : DouyinShopResponse<OrderBatchSearchIndexResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CustomError : OrderBatchDecryptResponse.Types.Data.Types.CustomError\n                    {\n                    }\n\n                    public class EncryptIndex\n                    {\n                        /// <summary>\n                        /// 获取或设置明文。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"plain\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"plain\")]\n                        public string PlainText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置索引串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"search_index\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"search_index\")]\n                        public string SearchIndex { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置业务错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"custom_err\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"custom_err\")]\n                public Types.CustomError CustomError { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置加密索引串列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"plain_to_encrypt_index_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"plain_to_encrypt_index_list\")]\n                public Types.EncryptIndex[] EncryptIndexList { get; set; } = default!;\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.CustomError?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchSensitiveRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchSensitive 接口的请求。</para>\n    /// </summary>\n    public class OrderBatchSensitiveRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class CipherData\n            {\n                /// <summary>\n                /// 获取或设置业务标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n                public string AuthId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置密文。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cipher_text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cipher_text\")]\n                public string CipherText { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置待脱敏的密文列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cipher_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cipher_infos\")]\n        public IList<Types.CipherData> CipherDataList { get; set; } = new List<Types.CipherData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Encryption/OrderBatchSensitiveResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/batchSensitive 接口的响应。</para>\n    /// </summary>\n    public class OrderBatchSensitiveResponse : DouyinShopResponse<OrderBatchSensitiveResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CustomError : OrderBatchDecryptResponse.Types.Data.Types.CustomError\n                    {\n                    }\n\n                    public class DecryptData : OrderBatchDecryptResponse.Types.Data.Types.DecryptData\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置业务错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"custom_err\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"custom_err\")]\n                public Types.CustomError CustomError { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置脱敏数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"decrypt_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"decrypt_infos\")]\n                public Types.DecryptData[] DecryptDataList { get; set; } = default!;\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Data?.CustomError?.ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Insurance/OrderInsuranceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/insurance 接口的请求。</para>\n    /// </summary>\n    public class OrderInsuranceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Insurance/OrderInsuranceResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/insurance 接口的响应。</para>\n    /// </summary>\n    public class OrderInsuranceResponse : DouyinShopResponse<OrderInsuranceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Policy\n                    {\n                        public static class Types\n                        {\n                            public class Goods\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置分类 ID 字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public string CategoryIdString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品详情页 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"show_page_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"show_page_url\")]\n                                public string? PageUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                public int Count { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置保单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_policy_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_policy_no\")]\n                        public string InsurancePolicyNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预计退保费用（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approximate_return_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approximate_return_fee\")]\n                        public int ApproximateReturnFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_premium\")]\n                        public int TotalPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户支付的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_premium\")]\n                        public int UserPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家支付的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_premium\")]\n                        public int MerchantPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台承担的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_premium\")]\n                        public int PlatformPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保费状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"premium_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"premium_status\")]\n                        public int PremiumStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申述状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appeal_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appeal_status\")]\n                        public int AppealStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置理赔状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_status\")]\n                        public int ClaimStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保险公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string CompanyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置保险客服电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"insurance_hotline\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"insurance_hotline\")]\n                        public string? CompanyHotline { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_info_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_info_list\")]\n                        public Types.Goods[] GoodsList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否允许申诉。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_allow_appeal\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_allow_appeal\")]\n                        public bool IsAllowAppeal { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置理赔或申述失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                        public string? FailReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置出保时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_ensured_time_begin\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_ensured_time_begin\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset InsuranceEnsuredBeginTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过期时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_ensured_time_end\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_ensured_time_end\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset InsuranceEnsuredEndTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置保单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"policy_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"policy_info_list\")]\n                public Types.Policy[] PolicyList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Insurance/OrderPolicyRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/policy 接口的请求。</para>\n    /// </summary>\n    public class OrderPolicyRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置保险产品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ins_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ins_product_id\")]\n        public string InsuraceProductType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Insurance/OrderPolicyResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/policy 接口的响应。</para>\n    /// </summary>\n    public class OrderPolicyResponse : DouyinShopResponse<OrderPolicyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Policy\n                    {\n                        public static class Types\n                        {\n                            public class Goods\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置分类 ID 字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                public string CategoryIdString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品详情页 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"show_page_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"show_page_url\")]\n                                public string? PageUrl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                                public int Count { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置保单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_policy_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_policy_no\")]\n                        public string InsurancePolicyNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预计退保费用（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public int ApproximateReturnFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"premium\")]\n                        public int TotalPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户支付的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_premium\")]\n                        public int UserPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家支付的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_premium\")]\n                        public int MerchantPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台承担的保费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_premium\")]\n                        public int PlatformPremium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投保人类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payer_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payer_type\")]\n                        public int PayerType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申述状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appeal_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appeal_status\")]\n                        public int AppealStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置理赔状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_status\")]\n                        public int ClaimStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保险公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string CompanyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置保险客服电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_hotline\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_hotline\")]\n                        public string? CompanyHotline { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_info_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_info_list\")]\n                        public Types.Goods[] GoodsList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否允许申诉。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_allow_appeal\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_allow_appeal\")]\n                        public bool IsAllowAppeal { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置理赔或申述失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refused_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refused_msg\")]\n                        public string? FailReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置出保时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_ensured_time_begin\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_ensured_time_begin\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset InsuranceEnsuredBeginTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过期时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_ensured_time_end\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_ensured_time_end\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset InsuranceEnsuredEndTime { get; set; }\n                    }\n\n                    public class Claim\n                    {\n                        /// <summary>\n                        /// 获取或设置理赔单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ins_claim_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ins_claim_no\")]\n                        public string InsuranceClaimNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置理赔状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预计理赔金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public int Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际理赔金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"premium\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"premium\")]\n                        public int Premium { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_msg\")]\n                        public string? ClaimMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refused_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refused_msg\")]\n                        public string? RefuseMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际理赔金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? ClaimTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置聚合后的理赔状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"agg_claim_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"agg_claim_status\")]\n                        public int AggregatedClaimStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置理赔次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_applied_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_applied_times\")]\n                        public int ClaimAppliedTimes { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置保单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"policy_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"policy_info\")]\n                public Types.Policy Policy { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置理赔列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"claim_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"claim_info_list\")]\n                public Types.Claim[]? ClaimList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Invoice/OrderInvoiceListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/invoiceList 接口的请求。</para>\n    /// </summary>\n    public class OrderInvoiceListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n        public IList<int>? OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置申请创建开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long? StartApplyTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置申请创建结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long? EndApplyTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置开票状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? InvoiceStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string? SortBy { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_field\")]\n        public string? SortField { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Invoice/OrderInvoiceListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/invoiceList 接口的响应。</para>\n    /// </summary>\n    public class OrderInvoiceListResponse : DouyinShopResponse<OrderInvoiceListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Invoice\n                    {\n                        /// <summary>\n                        /// 获取或设置开票 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"registation_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"registation_id\")]\n                        public string RegistationId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public int OrderStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发票种类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"invoice_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"invoice_type\")]\n                        public int InvoiceType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置申请创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                        public long ApplyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置抬头类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title_type\")]\n                        public int TitleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置抬头。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置税号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_no\")]\n                        public string TaxNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开户行名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bank_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bank_name\")]\n                        public string BankName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开户行编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bank_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bank_no\")]\n                        public string BankNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置企业地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_address\")]\n                        public string CompanyAddress { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置企业电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_mobile\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_mobile\")]\n                        public string CompanyPhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置可开票金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"invoice_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"invoice_amount\")]\n                        public int InvoiceAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开票详情。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"invoice_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"invoice_detail\")]\n                        public string InvoiceDetail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开票状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"invoice_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"invoice_status\")]\n                        public int InvoiceStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关闭原因枚举。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_reason\")]\n                        public int EndReasonType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关闭时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long? EndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发票 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tos_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tos_url\")]\n                        public string? FileUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发票名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"file_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"file_name\")]\n                        public string? FileName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置首次发票上传时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"upload_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"upload_time\")]\n                        public long? FirstUploadTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最新发票上传时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latest_upload_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latest_upload_time\")]\n                        public long? LatestUploadTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置发票列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"invoice_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"invoice_list\")]\n                public Types.Invoice[] InvoiceList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Invoice/OrderInvoiceUploadRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/invoiceUpload 接口的请求。</para>\n    /// </summary>\n    public class OrderInvoiceUploadRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发票文件字节数组（与字段 <see cref=\"FileUrl\"/> 二选一）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[]? FileBytes { get; set; }\n\n        /// <summary>\n        /// 获取或设置发票文件 URL（与字段 <see cref=\"FileBytes\"/> 二选一）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"upload_file\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"upload_file\")]\n        public string? FileUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Invoice/OrderInvoiceUploadResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/invoiceUpload 接口的响应。</para>\n    /// </summary>\n    public class OrderInvoiceUploadResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsAddRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAdd 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsAddRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。与字段 <see cref=\"CompanyCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n        public int? CompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。与字段 <see cref=\"CompanyId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string? CompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n        public string? CompanyName { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string? LogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否拒绝退款申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_refund_reject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_refund_reject\")]\n        public bool? IsRefundRejected { get; set; }\n\n        /// <summary>\n        /// 获取或设置序列号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"serial_number_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"serial_number_list\")]\n        public IList<string>? SerialNumberList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsAddResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAdd 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsAddResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsCompanyListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsCompanyList 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsCompanyListRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsCompanyListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsCompanyList 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsCompanyListResponse : DouyinShopResponse<OrderLogisticsCompanyListResponse.Types.LogisticsCompany[]>\n    {\n        public static class Types\n        {\n            public class LogisticsCompany\n            {\n\n                /// <summary>\n                /// 获取或设置物流公司 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int Id { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流公司编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string Code { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置物流公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsEditRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsEdit 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsEditRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。与字段 <see cref=\"CompanyCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n        public int? CompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。与字段 <see cref=\"CompanyId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string? CompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n        public string? CompanyName { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string? LogisticsNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/OrderLogisticsEditResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsEdit 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsEditResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsAddMultiplePackageRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAddMultiPack 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsAddMultiplePackageRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Package\n            {\n                public static class Types\n                {\n                    public class ShippedOrder : OrderLogisticsAddSinglePackageRequest.Types.ShippedOrder\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置待发货的子订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_order_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_info\")]\n                public IList<Types.ShippedOrder> ShippedOrderList { get; set; } = new List<Types.ShippedOrder>();\n\n                /// <summary>\n                /// 获取或设置物流公司 ID。与字段 <see cref=\"CompanyCode\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n                public int? CompanyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流公司编码。与字段 <see cref=\"CompanyId\"/> 二选一。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n                public string? CompanyCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                public string? CompanyName { get; set; }\n\n                /// <summary>\n                /// 获取或设置快递单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                public string LogisticsNumber { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pack_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pack_list\")]\n        public IList<Types.Package> PackageList { get; set; } = new List<Types.Package>();\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public string RequestId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发货地址 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n        public int AddressId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否拒绝退款申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_refund_reject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_refund_reject\")]\n        public bool? IsRefundRejected { get; set; }\n\n        /// <summary>\n        /// 获取或设置序列号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"serial_number_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"serial_number_list\")]\n        public IList<string>? SerialNumberList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsAddMultiplePackageResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAddMultiPack 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsAddMultiplePackageResponse : DouyinShopResponse<OrderLogisticsAddMultiplePackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package\n                    {\n                        public static class Types\n                        {\n                            public class ShippedOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置子订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipped_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_id\")]\n                                public string ShippedOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置待发货数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipped_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_num\")]\n                                public int ShippedCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置货物 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipped_item_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_item_ids\")]\n                                public string[]? ShippedItemIdList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置待发货的子订单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipped_order_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_info\")]\n                        public Types.ShippedOrder[] ShippedOrderList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置快递单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string LogisticsNumber { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pack_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pack_list\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsAddSinglePackageRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAddSinglePack 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsAddSinglePackageRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class ShippedOrder\n            {\n                /// <summary>\n                /// 获取或设置子订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_id\")]\n                public string ShippedOrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置待发货数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_num\")]\n                public int ShippedCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置货物 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_item_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_item_ids\")]\n                public IList<string>? ShippedItemIdList { get; set; }\n            }\n\n            public class OrderSerialNumber\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置序列号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"serial_number_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"serial_number_list\")]\n                public IList<string> SerialNumberList { get; set; } = new List<string>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id_list\")]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置需要发货的子订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipped_order_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipped_order_info\")]\n        public IList<Types.ShippedOrder> ShippedOrderList { get; set; } = new List<Types.ShippedOrder>();\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。与字段 <see cref=\"CompanyCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n        public int? CompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。与字段 <see cref=\"CompanyId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string? CompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n        public string? CompanyName { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public string RequestId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发货地址 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n        public int AddressId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否拒绝退款申请。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_refund_reject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_refund_reject\")]\n        public bool? IsRefundRejected { get; set; }\n\n        /// <summary>\n        /// 获取或设置序列号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_serial_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_serial_number\")]\n        public IList<Types.OrderSerialNumber>? SerialNumberList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsAddSinglePackageResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsAddSinglePack 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsAddSinglePackageResponse : DouyinShopResponse<OrderLogisticsAddSinglePackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n                public string PackageId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsEditByPackageRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsEditByPack 接口的请求。</para>\n    /// </summary>\n    public class OrderLogisticsEditByPackageRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pack_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pack_id\")]\n        public string PackageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置快递单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司 ID。与字段 <see cref=\"CompanyCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n        public int? CompanyId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流公司编码。与字段 <see cref=\"CompanyId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string? CompanyCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Logistics/Package/OrderLogisticsEditByPackageResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/logisticsEditByPack 接口的响应。</para>\n    /// </summary>\n    public class OrderLogisticsEditByPackageResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddOrderRemarkRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addOrderRemark 接口的请求。</para>\n    /// </summary>\n    public class OrderAddOrderRemarkRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string Remark { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否加旗标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_add_star\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_add_star\")]\n        public bool? IsAddStar { get; set; }\n\n        /// <summary>\n        /// 获取或设置旗标等级（范围：0～5）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"star\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"star\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? Star { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddOrderRemarkResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addOrderRemark 接口的响应。</para>\n    /// </summary>\n    public class OrderAddOrderRemarkResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddSerialNumberRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addSerialNumber 接口的请求。</para>\n    /// </summary>\n    public class OrderAddSerialNumberRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置序列号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"serial_number_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"serial_number_list\")]\n        public IList<string> SerialNumberList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddSerialNumberResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addSerialNumber 接口的响应。</para>\n    /// </summary>\n    public class OrderAddSerialNumberResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressAppliedSwitchRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/AddressAppliedSwitch 接口的请求。</para>\n    /// </summary>\n    public class OrderAddressAppliedSwitchRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_allowed\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_allowed\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n        public bool IsAllowed { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressAppliedSwitchResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/AddressAppliedSwitch 接口的响应。</para>\n    /// </summary>\n    public class OrderAddressAppliedSwitchResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressConfirmRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addressConfirm 接口的请求。</para>\n    /// </summary>\n    public class OrderAddressConfirmRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置确认类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_approved\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_approved\")]\n        public int ApprovedType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressConfirmResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addressConfirm 接口的响应。</para>\n    /// </summary>\n    public class OrderAddressConfirmResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressModifyRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addressModify 接口的请求。</para>\n    /// </summary>\n    public class OrderAddressModifyRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class PostAddress\n            {\n                public static class Types\n                {\n                    public class Area\n                    {\n                        /// <summary>\n                        /// 获取或设置地区 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public int Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地区名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置省份信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public Types.Area Province { get; set; } = new Types.Area();\n\n                /// <summary>\n                /// 获取或设置城市信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public Types.Area City { get; set; } = new Types.Area();\n\n                /// <summary>\n                /// 获取或设置区县信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"town\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                public Types.Area District { get; set; } = new Types.Area();\n\n                /// <summary>\n                /// 获取或设置街道信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                public Types.Area? Street { get; set; }\n\n                /// <summary>\n                /// 获取或设置详细地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address_detail\")]\n                public string Detail { get; set; } = string.Empty;\n\n                /// <summary>\n                /// <i>（使用默认值即可，无需修改）</i>\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"land_mark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"land_mark\")]\n                public string LandMark { get; set; } = \"land\";\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置收货地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_addr\")]\n        public Types.PostAddress PostAddress { get; set; } = new Types.PostAddress();\n\n        /// <summary>\n        /// 获取或设置收货地址邮政编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_code\")]\n        public string? PostCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置收货人姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_receiver\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_receiver\")]\n        public string? PostReceiver { get; set; }\n\n        /// <summary>\n        /// 获取或设置收货人电话号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_tel\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_tel\")]\n        public string? PostPhoneNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressModifyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addressModify 接口的响应。</para>\n    /// </summary>\n    public class OrderAddressModifyResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressSwitchConfigRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addresSwitchConfig 接口的请求。</para>\n    /// </summary>\n    public class OrderAddressSwitchConfigRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderAddressSwitchConfigResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/addresSwitchConfig 接口的响应。</para>\n    /// </summary>\n    public class OrderAddressSwitchConfigResponse : DouyinShopResponse<OrderAddressSwitchConfigResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置审核权限。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorized_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorized_status\")]\n                public int AuthorizedStatus { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/orderDetail 接口的请求。</para>\n    /// </summary>\n    public class OrderDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n        public string ShopOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderDetailResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/orderDetail 接口的响应。</para>\n    /// </summary>\n    public class OrderDetailResponse : DouyinShopResponse<OrderDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ShopOrder : OrderSearchListResponse.Types.Data.Types.ShopOrder\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_order_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_detail\")]\n                public Types.ShopOrder ShopOrder { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderSearchListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/searchList 接口的请求。</para>\n    /// </summary>\n    public class OrderSearchListRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class CombineStatus\n            {\n                /// <summary>\n                /// 获取或设置订单状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n                public IList<int>? OrderStatusList { get; set; }\n\n                /// <summary>\n                /// 获取或设置主流程状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"main_status\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"main_status\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualIntegerListWithCommaSplitConverter))]\n                public IList<int>? MainStatusList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID 或名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_id\")]\n        public string? ProductIdOrName { get; set; }\n\n        /// <summary>\n        /// 获取或设置下单端类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"b_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"b_type\")]\n        public int? BillType { get; set; }\n\n        /// <summary>\n        /// 获取或设置售后状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_sale_status_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_status_desc\")]\n        public string? AftersaleStatusDescription { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n        public string? LogisticsNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_type\")]\n        public int? PresellType { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int? OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置下单时间范围开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_start\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_start\")]\n        public long? CreateTimeStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置下单时间范围结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_end\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_end\")]\n        public long? CreateTimeEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_start\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_start\")]\n        public long? UpdateTimeStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_end\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_end\")]\n        public long? UpdateTimeEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置异常订单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"abnormal_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"abnormal_order\")]\n        public int? AbnormalOrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置交易类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"trade_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type\")]\n        public int? TradeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置组合状态信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"combine_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"combine_status\")]\n        public Types.CombineStatus? CombineStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_asc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_asc\")]\n        public bool? SortByAscending { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string? SortField { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderSearchListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/searchList 接口的响应。</para>\n    /// </summary>\n    public class OrderSearchListResponse : DouyinShopResponse<OrderSearchListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public abstract class OrderBase\n                    {\n                        public static class Types\n                        {\n                            public class PostAddress\n                            {\n                                public static class Types\n                                {\n                                    public class Area\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置地区 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public int Id { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置地区名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置省份信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                public Types.Area Province { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public Types.Area City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                                public Types.Area District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置街道信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                                public Types.Area? Street { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置经过加密的详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"encrypt_detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_detail\")]\n                                public string EncryptedDetail { get; set; } = default!;\n                            }\n\n                            public class PromotionDetail\n                            {\n                                public static class Types\n                                {\n                                    public class DiscountDetail\n                                    {\n                                        public static class Types\n                                        {\n                                            public class Coupon\n                                            {\n                                                public static class Types\n                                                {\n                                                    public class ShareDiscountCost\n                                                    {\n                                                        /// <summary>\n                                                        /// 获取或设置平台承担金额（单位：分）。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"platform_cost\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_cost\")]\n                                                        public int PlatformCost { get; set; }\n\n                                                        /// <summary>\n                                                        /// 获取或设置商家承担金额（单位：分）。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"shop_cost\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_cost\")]\n                                                        public int ShopCost { get; set; }\n                                                    }\n                                                }\n\n                                                /// <summary>\n                                                /// 获取或设置优惠券 ID。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n                                                public long CouponId { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置优惠券类型。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"coupon_type\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_type\")]\n                                                public int CouponType { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置券批次 ID。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                                                public string CouponMetaId { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置优惠金额（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"coupon_amount\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_amount\")]\n                                                public int CouponAmount { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置券名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                                                public string CouponName { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置成本分摊信息。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"share_discount_cost\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"share_discount_cost\")]\n                                                public Types.ShareDiscountCost? ShareDiscountCost { get; set; }\n                                            }\n\n                                            public class FullDiscount\n                                            {\n                                                public static class Types\n                                                {\n                                                    public class ShareDiscountCost : Coupon.Types.ShareDiscountCost\n                                                    {\n                                                    }\n                                                }\n\n                                                /// <summary>\n                                                /// 获取或设置活动 ID。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                                                public long CampaignId { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置活动类型。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_type\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_type\")]\n                                                public int CampaignType { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置活动子类型。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_sub_type\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_sub_type\")]\n                                                public int CampaignSubType { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置活动金额（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_amount\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_amount\")]\n                                                public int CampaignAmount { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置活动名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_name\")]\n                                                public string CampaignName { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置成本分摊信息。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"share_discount_cost\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"share_discount_cost\")]\n                                                public Types.ShareDiscountCost? ShareDiscountCost { get; set; }\n                                            }\n\n                                            public class Redpack\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置红包汇总 ID。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"redpack_trans_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"redpack_trans_id\")]\n                                                public string RedpackTransferId { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置红包金额（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"redpack_amount\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"redpack_amount\")]\n                                                public int RedpackAmount { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置优惠总金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                                        public int TotalAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置券优惠金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"coupon_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_amount\")]\n                                        public int CouponAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置活动优惠金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"full_discount_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"full_discount_amount\")]\n                                        public int FullDiscountAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置红包金额（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"redpack_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"redpack_amount\")]\n                                        public int RedpackAmount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置优惠券列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"coupon_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_info\")]\n                                        public Types.Coupon[]? CouponList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置优惠活动列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"full_discount_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"full_discount_info\")]\n                                        public Types.FullDiscount[]? FullDiscountList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置红包列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"redpack_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"redpack_info\")]\n                                        public Types.Redpack[]? RedpackList { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置店铺优惠信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_discount_detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_discount_detail\")]\n                                public Types.DiscountDetail? ShopDiscountDetail { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount_detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_detail\")]\n                                public Types.DiscountDetail? PlatformDiscountDetail { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人优惠信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"kol_discount_detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"kol_discount_detail\")]\n                                public Types.DiscountDetail? KOLDiscountDetail { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置字节小程序的 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单层级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_level\")]\n                        public int OrderLevel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"biz\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"biz\")]\n                        public int BusinessType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务来源描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"biz_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"biz_desc\")]\n                        public string BusinessTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                        public int OrderType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单类型描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_type_desc\")]\n                        public string OrderTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置交易类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trade_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type\")]\n                        public int TradeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置交易类型描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trade_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type_desc\")]\n                        public string TradeTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public int OrderStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status_desc\")]\n                        public string OrderStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主流程状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"main_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"main_status\")]\n                        public int MainStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置主流程状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"main_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"main_status_desc\")]\n                        public string MainStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下单端类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"b_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"b_type\")]\n                        public int BillType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下单端描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"b_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"b_type_desc\")]\n                        public string BillTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下单场景。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_b_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_b_type\")]\n                        public int? SubBillType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下单场景描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_b_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_b_type_desc\")]\n                        public string? SubBillTypeDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单过期时间（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_expire_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_expire_time\")]\n                        public int OrderExpireTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public long? PayTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置完成时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"finish_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"finish_time\")]\n                        public long? FinishTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下单时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n                        public string? CancelReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                        public int PayType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置渠道支付订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"channel_payment_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"channel_payment_no\")]\n                        public string? ChannelPaymentNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_amount\")]\n                        public int OrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        public int PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快递费金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                        public int PostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快递费原价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_origin_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_origin_amount\")]\n                        public int PostOriginAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快递费优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_promotion_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_promotion_amount\")]\n                        public int PostPromotionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费险金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_insurance_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_insurance_amount\")]\n                        public int PostInsuranceAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置改价金额变化量（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"modify_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"modify_amount\")]\n                        public int ModifyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置改价运费金额变化量（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"modify_post_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"modify_post_amount\")]\n                        public int ModifyPostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_amount\")]\n                        public int PromotionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单优惠详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_detail\")]\n                        public Types.PromotionDetail? PromotionDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_shop_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_shop_amount\")]\n                        public int PromotionShopAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_platform_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_platform_amount\")]\n                        public int PromotionPlatformAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单优惠商家承担部分金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_cost_amount\")]\n                        public int ShopCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单优惠平台承担部分金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_cost_amount\")]\n                        public int PlatformCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_talent_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_talent_amount\")]\n                        public int PromotionTalentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_pay_amount\")]\n                        public int PromotionPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置经过加密的收件人电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypt_post_tel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_post_tel\")]\n                        public string? EncryptedPostPhoneNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置经过加密的收件人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypt_post_receiver\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_post_receiver\")]\n                        public string? EncryptedPostReceiver { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收件人地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_addr\")]\n                        public Types.PostAddress? PostAddress { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预计发货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exp_ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exp_ship_time\")]\n                        public long? ExpectedShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ship_time\")]\n                        public long? ShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置红包优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_redpack_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_redpack_amount\")]\n                        public int PromotionRedpackAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台红包优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_redpack_platform_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_redpack_platform_amount\")]\n                        public int PromotionRedpackPlatformAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人红包优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_redpack_talent_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_redpack_talent_amount\")]\n                        public int PromotionRedpackTalentAmount { get; set; }\n                    }\n\n                    public class ShopOrder : OrderBase\n                    {\n                        public static new class Types\n                        {\n                            public class Logistics\n                            {\n                                public static class Types\n                                {\n                                    public class Product\n                                    {\n                                        public static class Types\n                                        {\n                                            public class Specification\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置规格名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                                public string Name { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置规格值。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"value\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                                public string Value { get; set; } = default!;\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                        public long ProductId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品 ID 字符串。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_id_str\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id_str\")]\n                                        public string ProductIdString { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                        public string ProductName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品数量。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_count\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_count\")]\n                                        public int ProductCount { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商家 SKU 编码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"outer_sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"outer_sku_id\")]\n                                        public string OuterSKUId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                        public long SKUId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品价格（单位：分）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                        public int Price { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置规格列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_specs\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_specs\")]\n                                        public Types.Specification[] SpecificationList { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品单 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_order_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_id\")]\n                                        public string SKUOrderId { get; set; } = default!;\n                                    }\n\n                                    public class AddedService\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置标签 Key。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"key\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                                        public string Key { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置物流服务名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                        public string Text { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置抖音大学介绍 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"help_doc\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"help_doc\")]\n                                        public string HelpDocumentationUrl { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置业务跳转 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                        public string Url { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tracking_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_no\")]\n                                public string LogisticsNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置物流公司。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"company\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                                public string Company { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置物流公司名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                                public string CompanyName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置发货时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ship_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ship_time\")]\n                                public long? ShipTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置包裹单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_id\")]\n                                public string? DeliveryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_info\")]\n                                public Types.Product[] ProductList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置增值服务列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"added_services\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"added_services\")]\n                                public Types.AddedService[]? AddedServiceList { get; set; }\n                            }\n\n                            public class OrderPhase\n                            {\n                                /// <summary>\n                                /// 获取或设置阶段单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_order_id\")]\n                                public string PhaseOpenId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置总阶段数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_phase\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_phase\")]\n                                public int TotalPhase { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置当前阶段。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"current_phase\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"current_phase\")]\n                                public int CurrentPhase { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段状态描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"current_phase_status_desc\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"current_phase_status_desc\")]\n                                public string CurrentPhaseStatusDescription { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置是否支付成功。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_success\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_success\")]\n                                public bool IsPaySucceessful { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_id\")]\n                                public string SKUOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置活动 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                                public long CampaignId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_payable_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_payable_price\")]\n                                public int PhasePayablePrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段支付类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_pay_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_pay_type\")]\n                                public int PhasePayType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段开启支付时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_open_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_open_time\")]\n                                public long PhaseOpenTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段支付成功时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_pay_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_pay_time\")]\n                                public long? PhasePayTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段关闭时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_close_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_close_time\")]\n                                public long? PhaseCloseTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置渠道支付订单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"channel_payment_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"channel_payment_no\")]\n                                public string? ChannelPaymentNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单总金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_order_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_order_amount\")]\n                                public int PhaseOrderAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单订单金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_sum_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_sum_amount\")]\n                                public int PhaseSumAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单运费金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_post_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_post_amount\")]\n                                public int PhasePostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单实际支付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_pay_amount\")]\n                                public int PhasePayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单总优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_promotion_amount\")]\n                                public int PhasePromotionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 单价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_price\")]\n                                public int SKUPrice { get; set; }\n                            }\n\n                            public class UserIdentification\n                            {\n                                /// <summary>\n                                /// 获取或设置经过加密的用户证件号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"encrypt_id_card_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_id_card_no\")]\n                                public string? EncryptedIdCardNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置经过加密的用户证件姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"encrypt_id_card_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_id_card_name\")]\n                                public string? EncryptedIdCardName { get; set; }\n                            }\n\n                            public class ShopOrderTag\n                            {\n                                /// <summary>\n                                /// 获取或设置标签 Key。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"key\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                                public string Key { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置标签说明。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                public string Text { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置帮助文档 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"help_doc\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"help_doc\")]\n                                public string HelpDocumentationUrl { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                        public string ShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置买家留言。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_words\")]\n                        public string? BuyerWords { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_words\")]\n                        public string? SellerWords { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预约发货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appointment_ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appointment_ship_time\")]\n                        public long? AppointmentShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_info\")]\n                        public Types.Logistics[] LogisticsList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_order_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_order_list\")]\n                        public SKUOrder[] SKUOrderList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家订单标记。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_remark_stars\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_remark_stars\")]\n                        public int SellerRemarkStars { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户加密串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"doudian_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"doudian_open_id\")]\n                        public string DoudianOpenid { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品序列号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"serial_number_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"serial_number_list\")]\n                        public string[] SerialNumberList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置定金预售阶段单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_phase_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_phase_list\")]\n                        public Types.OrderPhase[]? OrderPhaseList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户证件信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_id_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_id_info\")]\n                        public Types.UserIdentification? UserIdentification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺单标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_order_tag_ui\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_tag_ui\")]\n                        public Types.ShopOrderTag[]? ShopOrderTagList { get; set; }\n                    }\n\n                    public class SKUOrder : OrderBase\n                    {\n                        public static new class Types\n                        {\n                            public class SKUSpecification : ShopOrder.Types.Logistics.Types.Product.Types.Specification\n                            {\n                            }\n\n                            public class Inventory\n                            {\n                                /// <summary>\n                                /// 获取或设置仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                                public long WarehouseId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置外部仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                                public string OutWarehouseId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                                public int InventoryType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存类型描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"inventory_type_desc\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type_desc\")]\n                                public string InventoryTypeDescription { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存变更数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                                public int Count { get; set; }\n                            }\n\n                            public class Aftersale\n                            {\n                                /// <summary>\n                                /// 获取或设置售后状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_status\")]\n                                public int AftersaleStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售后类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_sale_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_type\")]\n                                public int AftersaleType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                                public int RefundStatus { get; set; }\n                            }\n\n                            public class AccountList\n                            {\n                                /// <summary>\n                                /// 获取或设置账号列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_info\")]\n                                public AccountItem[] Items { get; set; } = default!;\n                            }\n\n                            public class AccountItem\n                            {\n                                /// <summary>\n                                /// 获取或设置经过加密的账号 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"encrypt_account_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_account_id\")]\n                                public string EncryptedAccountId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置账号名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                                public string AccountName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置账号类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"account_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int AccountType { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_order_id\")]\n                        public string ParentOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置流量来源类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"send_pay\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"send_pay\")]\n                        public int SendPayType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置流量来源描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"send_pay_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"send_pay_desc\")]\n                        public string SendPayTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下单来源类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"theme_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"theme_type\")]\n                        public int? ThemeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下单来源来源描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"theme_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"theme_type_desc\")]\n                        public string? ThemeTypeDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播主播 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author_id\")]\n                        public long? AuthorId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播主播名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author_name\")]\n                        public string? AuthorName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                        public long? RoomId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置内容 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content_id\")]\n                        public long? ContetnId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public long? VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置流量来源 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n                        public long? OriginId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cid\")]\n                        public long? CreativeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置鲁班广告落地页 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_id\")]\n                        public long? PageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 C 端流量来源来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"c_biz\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"c_biz\")]\n                        public int ConsumerBusinessType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 C 端流量来源来源描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"c_biz_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"c_biz_desc\")]\n                        public string ConsumerBusinessTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU Code。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string SKUCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置物流收货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_receipt_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_receipt_time\")]\n                        public long? LogisticsReceiptTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户确认收货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"confirm_receipt_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"confirm_receipt_time\")]\n                        public long? ConfirmReceiptTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_type\")]\n                        public int GoodsType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public long? OutProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_pic\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_pic\")]\n                        public string? ProductPictureUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public long SKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public long? OutSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 规格列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec\")]\n                        public Types.SKUSpecification[] SKUSpecificationList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                        public int FirstCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                        public int SecondCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                        public int ThirdCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置四级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fourth_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fourth_cid\")]\n                        public int FourthCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置赠品绑定类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"given_product_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"given_product_type\")]\n                        public string? GivenProductType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置绑定的主品 SKU 单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"master_sku_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"master_sku_order_id\")]\n                        public string? MasterSKUOrderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置供应商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                        public string? SupplierId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存扣减方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reduce_stock_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reduce_stock_type\")]\n                        public int ReductStockType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存扣减方式描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reduce_stock_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reduce_stock_type_desc\")]\n                        public string ReductStockTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品现价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_amount\")]\n                        public int OriginAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否包税。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_tax\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_tax\")]\n                        public bool HasTax { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单商品数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_num\")]\n                        public int ItemNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品现总价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sum_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sum_amount\")]\n                        public int SumAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品来源平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"source_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"source_platform\")]\n                        public string? SourcePlatform { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评价类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_comment\")]\n                        public int CommentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预售类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_sale_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_sale_type\")]\n                        public int? PresellType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置邮寄类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_type\")]\n                        public int? ReceiveType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_list\")]\n                        public Types.Inventory[]? InventoryList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售后信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_sale_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_info\")]\n                        public Types.Aftersale? Aftersale { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置账号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_list\")]\n                        public Types.AccountList? AccountList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_env_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_env_type\")]\n                        public string? AdEnvironmentType { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_order_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_list\")]\n                public Types.ShopOrder[] ShopOrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int PageSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderUpdateOrderAmountRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/updateOrderAmount 接口的请求。</para>\n    /// </summary>\n    public class OrderUpdateOrderAmountRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Detail\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置扣减金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int DiscountAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置改价订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public IList<Types.Order> OrderList { get; set; } = new List<Types.Order>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n        public string ParentOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置改价明细信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_detail\")]\n        public Types.Detail Detail { get; set; } = new Types.Detail();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderUpdateOrderAmountResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/updateOrderAmount 接口的响应。</para>\n    /// </summary>\n    public class OrderUpdateOrderAmountResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderUpdatePostAmountRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/updatePostAmount 接口的请求。</para>\n    /// </summary>\n    public class OrderUpdatePostAmountRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置主订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n        public string ParentOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运费金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n        public int PostAmount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/OrderUpdatePostAmountResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/updatePostAmount 接口的响应。</para>\n    /// </summary>\n    public class OrderUpdatePostAmountResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderGetServiceListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getServiceList 接口的请求。</para>\n    /// </summary>\n    public class OrderGetServiceListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long? StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long? EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string? ServiceId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order\")]\n        public string? SortBy { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string? SortField { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderGetServiceListResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getServiceList 接口的响应。</para>\n    /// </summary>\n    public class OrderGetServiceListResponse : DouyinShopResponse<OrderGetServiceListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Service\n                    {\n                        /// <summary>\n                        /// 获取或设置服务请求 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public long Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务请求类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                        public int ServiceType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务单详情。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public string Detail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置操作状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status\")]\n                        public int OperateStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置操作状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_status_desc\")]\n                        public string OperateStatusDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家答复内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply\")]\n                        public string? ReplyDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家答复时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? ReplyTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset UpdateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务更新时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Service[] ServiceList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderReplyServiceRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/replyService 接口的请求。</para>\n    /// </summary>\n    public class OrderReplyServiceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置服务请求 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n        public long Id { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家答复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reply\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reply\")]\n        public string ReplyDetail { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回复凭证 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"evidence\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"evidence\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        public IList<string>? EvidenceUrlList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderReplyServiceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/replyService 接口的响应。</para>\n    /// </summary>\n    public class OrderReplyServiceResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderServiceDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/serviceDetail 接口的请求。</para>\n    /// </summary>\n    public class OrderServiceDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置服务单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string ServiceId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Service/OrderServiceDetailResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/serviceDetail 接口的响应。</para>\n    /// </summary>\n    public class OrderServiceDetailResponse : DouyinShopResponse<OrderServiceDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Service : OrderGetServiceListResponse.Types.Data.Types.Service\n                    {\n                        /// <summary>\n                        /// 获取或设置首次回复时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_reply_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_reply_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? FirstReplyTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置操作状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_reject\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_reject\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool IsRejected { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_detail\")]\n                        public string? RejectDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? RejectTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否需要上传凭证。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"evidence_required\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"evidence_required\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool RequireEvidence { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置凭证 DEMO URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"proof_demo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"proof_demo\")]\n                        public string? ProofDemoUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img_list\")]\n                        public string[]? ImageUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expiration_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expiration_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset ExpireTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关闭原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"close_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"close_detail\")]\n                        public string? CloseDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关闭时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"close_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"close_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? CloseTime { get; set; }\n                    }\n\n                    public class Log\n                    {\n                        /// <summary>\n                        /// 获取或设置操作者名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operate_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operate_name\")]\n                        public string OperatorName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置处理时效。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"deal_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"deal_time\")]\n                        public string DealTime { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置日志类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_log_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_log_type\")]\n                        public int ServiceLogType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务单详情。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_detail\")]\n                        public string ServiceDetail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置回复内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_detail\")]\n                        public string? ReplyDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_detail\")]\n                        public string? RejectDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关闭原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"close_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"close_detail\")]\n                        public string? CloseDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img_list\")]\n                        public string[]? ImageUrlList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public Types.Service Service { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置日志记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logs\")]\n                public Types.Log[] Logs { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderDownloadSettleItemToShopRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/downloadSettleItemToShop 接口的请求。</para>\n    /// </summary>\n    public class OrderDownloadSettleItemToShopRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置筛选时间类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"time_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n        public int TimeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_id\")]\n        public string? BillId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算账户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_type\")]\n        public int? FlowType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderDownloadSettleItemToShopResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/downloadSettleItemToShop 接口的响应。</para>\n    /// </summary>\n    public class OrderDownloadSettleItemToShopResponse : DouyinShopResponse<OrderDownloadSettleItemToShopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置返回编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string ReturnCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置返回信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_msg\")]\n                public string? ReturnMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置下载 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"download_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"download_id\")]\n                public string? DownloadId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderDownloadToShopRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/downloadToShop 接口的请求。</para>\n    /// </summary>\n    public class OrderDownloadToShopRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置生成的下载 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_id\")]\n        public string DownloadId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderDownloadToShopResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/downloadToShop 接口的响应。</para>\n    /// </summary>\n    public class OrderDownloadToShopResponse : DouyinShopResponse<OrderDownloadToShopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置返回编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string ReturnCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置返回信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_msg\")]\n                public string? ReturnMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置下载链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string? DownloadUrl { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderGetSettleBillDetailRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getSettleBillDetail 接口的请求。</para>\n    /// </summary>\n    public class OrderGetSettleBillDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置筛选时间类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"time_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n        public int TimeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算账户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_type\")]\n        public int? FlowType { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; } = 0;\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：20</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 20;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderGetSettleBillDetailResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/getSettleBillDetail 接口的响应。</para>\n    /// </summary>\n    public class OrderGetSettleBillDetailResponse : DouyinShopResponse<OrderGetSettleBillDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Bill\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                        public string ShopOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置子订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置下单时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset OrderTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_count\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int ProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"request_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"request_no\")]\n                        public string RequestNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置阶段单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phase_order_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phase_order_no\")]\n                        public string? PhaseOrderNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置阶段数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phase_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phase_cnt\")]\n                        public int PhaseCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置阶段 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phase_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phase_id\")]\n                        public int PhaseId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算账户类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trade_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int TradeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算状态描述描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trade_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type_desc\")]\n                        public string TradeTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算账户类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int PayType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算账户类型描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type_desc\")]\n                        public string PayTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置业务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"flow_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"flow_type\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int FlowType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置业务类型描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"flow_type_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"flow_type_desc\")]\n                        public string FlowTypeDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset SettleTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总收入（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_income\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_income\")]\n                        public int TotalIncome { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总支出（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_outcome\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_outcome\")]\n                        public int TotalOutcome { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收益（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"profit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"profit\")]\n                        public int Profit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际结算金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                        public int SettleAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际补贴金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_subsidy_amount\")]\n                        public int SubsidyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单总价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                        public int TotalOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品总价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_goods_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_goods_amount\")]\n                        public int TotalGoodsAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"post_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"post_amount\")]\n                        public int PostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"real_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"real_pay_amount\")]\n                        public int ActualPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单实付应结（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settled_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settled_pay_amount\")]\n                        public int SettledPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台券补贴金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_coupon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_coupon\")]\n                        public int PlatformCouponAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人券补贴（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"author_coupon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"author_coupon\")]\n                        public int AuthorCouponAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_promotion\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_promotion\")]\n                        public int PayPromotionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际平台补贴金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_platform_coupon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_platform_coupon\")]\n                        public int ActualPlatformCouponAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际达人券补贴金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_author_coupon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_author_coupon\")]\n                        public int ActualAuthorCouponAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际支付补贴金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_pay_promotion\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_pay_promotion\")]\n                        public int ActualPayPromotionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_coupon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_coupon\")]\n                        public int ShopCouponAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台服务费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_service_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_service_fee\")]\n                        public int PlatformServiceFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单退款金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund\")]\n                        public int OrderRefund { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission\")]\n                        public int AuthorCommission { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置“好好学习”渠道费用（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"good_learn_channel_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"good_learn_channel_fee\")]\n                        public int GoodLearnChannelFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置招商服务费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"colonel_service_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"colonel_service_fee\")]\n                        public int ColonelServiceFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退佣失败垫付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_refund_loss\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_refund_loss\")]\n                        public int ShopRefundLoss { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string ReturnCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置返回信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code_msg\")]\n                public string? ReturnMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置账单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Bill[] BillList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_cnt\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_cnt\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int PageSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderSettleRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/settle 接口的请求。</para>\n    /// </summary>\n    public class OrderSettleRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置筛选时间类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"time_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n        public int TimeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询开始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n        public DateTimeOffset EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算账户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_type\")]\n        public int? FlowType { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Order/Settle/OrderSettleResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/settle 接口的响应。</para>\n    /// </summary>\n    public class OrderSettleResponse : DouyinShopResponse<OrderSettleResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Bill\n                    {\n                        public static class Types\n                        {\n                            public class Order\n                            {\n                                /// <summary>\n                                /// 获取或设置店铺订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shop_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shop_order_id\")]\n                                public string ShopOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置子订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单创建时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset CreateTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_order_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_order_no\")]\n                                public string? PhaseOrderNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_cnt\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_cnt\")]\n                                public int PhaseCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置阶段 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phase_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phase_id\")]\n                                public int PhaseId { get; set; }\n                            }\n\n                            public class Settlement\n                            {\n                                /// <summary>\n                                /// 获取或设置结算时间。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settle_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settle_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                                public DateTimeOffset SettleTime { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置结算账户类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int PayType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置业务类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"flow_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"flow_type\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int FlowType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际结算金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                                public int SettleAmount { get; set; }\n                            }\n\n                            public class Income\n                            {\n                                /// <summary>\n                                /// 获取或设置实际支付金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                                public int PayAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台券补贴金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_coupon\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_coupon\")]\n                                public int PlatformCouponAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付优惠金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pay_promotion_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pay_promotion_amount\")]\n                                public int PayPromotionAmount { get; set; }\n                            }\n\n                            public class Outcome\n                            {\n                                /// <summary>\n                                /// 获取或设置订单退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_refund\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_refund\")]\n                                public int OrderRefund { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台服务费（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_service_fee\")]\n                                public int PlatformServiceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置达人佣金（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"author_commission\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"author_commission\")]\n                                public int AuthorCommission { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置“好好学习”渠道费用（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"good_learn_channel_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"good_learn_channel_fee\")]\n                                public int GoodLearnChannelFee { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_info\")]\n                        public Types.Order Order { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_info\")]\n                        public Types.Settlement Settlement { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收入信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"income_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"income_info\")]\n                        public Types.Income? Income { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支出信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"outcome_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"outcome_info\")]\n                        public Types.Outcome? Outcome { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置账单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Bill[] BillList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeBatchGetOrderCodeByShopRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/batchGetOrderCodeByShop 接口的请求。</para>\n    /// </summary>\n    public class OrderCodeBatchGetOrderCodeByShopRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<long> OrderIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeBatchGetOrderCodeByShopResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/batchGetOrderCodeByShop 接口的响应。</para>\n    /// </summary>\n    public class OrderCodeBatchGetOrderCodeByShopResponse : DouyinShopResponse<OrderCodeBatchGetOrderCodeByShopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n                        public string? OrderCode { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单码结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"batch_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"batch_data\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置送检方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                public int DeliveryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置出仓方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ship_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ship_type\")]\n                public int ShipType { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeDownloadOrderCodeByShopRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/downloadOrderCodeByShop 接口的请求。</para>\n    /// </summary>\n    public class OrderCodeDownloadOrderCodeByShopRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeDownloadOrderCodeByShopResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/downloadOrderCodeByShop 接口的响应。</para>\n    /// </summary>\n    public class OrderCodeDownloadOrderCodeByShopResponse : DouyinShopResponse<OrderCodeDownloadOrderCodeByShopResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_success\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_success\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"error_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"error_desc\")]\n                public string? ErrorDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置送检方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                public int DeliveryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置出仓方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ship_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ship_type\")]\n                public int ShipType { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n                public string? OrderCode { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeERPShopBindOrderCodeRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/erpShopBindOrderCode 接口的请求。</para>\n    /// </summary>\n    public class OrderCodeERPShopBindOrderCodeRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Order\n            {\n                public static class Types\n                {\n                    public class Detail\n                    {\n                        /// <summary>\n                        /// 获取或设置该订单购买的商品对应平台的 SKUId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"combo_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"combo_id\")]\n                        public long ComboId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_qty\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_qty\")]\n                        public int Quantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 条形码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_barcode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_barcode\")]\n                        public string? SKUBarCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品唯一标识编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unique_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unique_code\")]\n                        public string? UniqueCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置批次属性 01。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lot01\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lot01\")]\n                        public string? Lot01 { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]\n                public string OrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置订单码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_code\")]\n                public string? OrderCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置运单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                public string? LogisticsNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流公司 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_id\")]\n                public int? LogisticsCompanyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_detail\")]\n                public IList<Types.Detail> DetailList { get; set; } = new List<Types.Detail>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商家包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_package_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_package_id\")]\n        public long ShopPackageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置送检方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n        public int DeliveryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置出仓方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ship_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ship_type\")]\n        public int ShipType { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_list\")]\n        public IList<Types.Order> OrderList { get; set; } = new List<Types.Order>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/OrderCode/OrderCodeERPShopBindOrderCodeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /orderCode/erpShopBindOrderCode 接口的响应。</para>\n    /// </summary>\n    public class OrderCodeERPShopBindOrderCodeResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductAddV2Request.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/addV2 接口的请求。</para>\n    /// </summary>\n    public class ProductAddV2Request : DouyinShopRequest\n    {\n        public class Types\n        {\n            public class Specification\n            {\n                /// <summary>\n                /// 获取或设置规格属性。\n                /// </summary>\n                [Newtonsoft.Json.JsonIgnore]\n                [System.Text.Json.Serialization.JsonIgnore]\n                public string Name { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置规格值列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonIgnore]\n                [System.Text.Json.Serialization.JsonIgnore]\n                public IList<string> Values { get; set; } = new List<string>();\n            }\n\n            public class SpecificationPrice\n            {\n                /// <summary>\n                /// 获取或设置外部 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public long? OutSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 商家编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"outer_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"outer_sku_id\")]\n                public string? OuterSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU Code。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string SKUCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置一级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name1\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name1\")]\n                public string SpecificationDetailName1 { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置二级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name2\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name2\")]\n                public string SpecificationDetailName2 { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置三级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name3\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name3\")]\n                public string SpecificationDetailName3 { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                public int StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n                public int StepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置供应商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                public string? SupplierId { get; set; }\n            }\n\n            public class Qualification\n            {\n                public static class Types\n                {\n                    public class Attachment\n                    {\n                        /// <summary>\n                        /// 获取或设置附件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                        public int MediaType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附件 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string Url { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 Key。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_key\")]\n                public string Key { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_name\")]\n                public string Name { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置附件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_attachments\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_attachments\")]\n                public IList<Types.Attachment> AttachmentList { get; set; } = new List<Types.Attachment>();\n            }\n        }\n\n        internal static class Converters\n        {\n            internal class NewtonsoftJsonQulificationListConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.Qualification>?>\n            {\n            }\n\n            internal class SystemTextJsonQulificationListConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.Qualification>?>\n            {\n            }\n\n            internal class NewtonsoftJsonSpecificationListConverter : Newtonsoft.Json.JsonConverter<IList<Types.Specification>?>\n            {\n                private const char SEPARATOR = '^';\n                private const char SEPARATOR_NAME = '|';\n                private const char SEPARATOR_VALUE = ',';\n\n                public override bool CanRead\n                {\n                    get { return true; }\n                }\n\n                public override bool CanWrite\n                {\n                    get { return true; }\n                }\n\n                public override IList<Types.Specification>? ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, IList<Types.Specification>? existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer)\n                {\n                    if (reader.TokenType == Newtonsoft.Json.JsonToken.Null)\n                    {\n                        return existingValue;\n                    }\n                    else if (reader.TokenType == Newtonsoft.Json.JsonToken.String)\n                    {\n                        string? value = serializer.Deserialize<string>(reader);\n                        if (value == null)\n                            return existingValue;\n\n                        return value\n                            .Split(SEPARATOR)\n                            .Select(e =>\n                            {\n                                string[] arr = e.Split(SEPARATOR_NAME);\n                                return new Types.Specification()\n                                {\n                                    Name = arr[0],\n                                    Values = arr.Length >= 2 ? arr[1].Split(SEPARATOR_VALUE).ToList() : new List<string>()\n                                };\n                            })\n                            .ToList();\n                    }\n\n                    throw new Newtonsoft.Json.JsonReaderException();\n                }\n\n                public override void WriteJson(Newtonsoft.Json.JsonWriter writer, IList<Types.Specification>? value, Newtonsoft.Json.JsonSerializer serializer)\n                {\n                    if (value != null)\n                        writer.WriteValue(string.Join(SEPARATOR.ToString(), value.Select(e => $\"{e.Name}{SEPARATOR_NAME}{string.Join(SEPARATOR_VALUE.ToString(), e.Values)}\")));\n                    else\n                        writer.WriteNull();\n                }\n            }\n\n            internal class SystemTextJsonSpecificationListConverter : System.Text.Json.Serialization.JsonConverter<IList<Types.Specification>?>\n            {\n                private const char SEPARATOR = '^';\n                private const char SEPARATOR_NAME = '|';\n                private const char SEPARATOR_VALUE = ',';\n\n                public override IList<Types.Specification>? Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)\n                {\n                    if (reader.TokenType == System.Text.Json.JsonTokenType.Null)\n                    {\n                        return null;\n                    }\n                    else if (reader.TokenType == System.Text.Json.JsonTokenType.String)\n                    {\n                        string? value = reader.GetString();\n                        if (value == null)\n                            return null;\n\n                        return value\n                            .Split(SEPARATOR)\n                            .Select(e =>\n                            {\n                                string[] arr = e.Split(SEPARATOR_NAME);\n                                return new Types.Specification()\n                                {\n                                    Name = arr[0],\n                                    Values = arr.Length >= 2 ? arr[1].Split(SEPARATOR_VALUE).ToList() : new List<string>()\n                                };\n                            })\n                            .ToList();\n                    }\n\n                    throw new System.Text.Json.JsonException();\n                }\n\n                public override void Write(System.Text.Json.Utf8JsonWriter writer, IList<Types.Specification>? value, System.Text.Json.JsonSerializerOptions options)\n                {\n                    if (value != null)\n                        writer.WriteStringValue(string.Join(SEPARATOR.ToString(), value.Select(e => $\"{e.Name}{SEPARATOR_NAME}{string.Join(SEPARATOR_VALUE.ToString(), e.Values)}\")));\n                    else\n                        writer.WriteNullValue();\n                }\n            }\n\n            internal class NewtonsoftJsonSpecificationPriceListConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.SpecificationPrice>?>\n            {\n            }\n\n            internal class SystemTextJsonSpecificationPriceListConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.SpecificationPrice>?>\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long? OutProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部商品编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"outer_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"outer_product_id\")]\n        public string? OuterProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置详情 HTML。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置划线价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"market_price\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int MarketPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置售价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"discount_price\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"discount_price\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int DiscountPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置客服手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n        public string MobileNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置叶子类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_leaf_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_leaf_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? CategoryLeafId { get; set; }\n\n        /// <summary>\n        /// 获取或设置一级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? FirstCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置二级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? SecondCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置三级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? ThirdCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置支持的支付方式类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品主图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pic\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pic\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        public IList<string> PictureUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置商品属性。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_format\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_format\")]\n        public string ProductFormat { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商家推荐语。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recommend_remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recommend_remark\")]\n        public string? RecommendRemark { get; set; }\n\n        /// <summary>\n        /// 获取或设置减库存类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reduce_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reduce_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int ReduceType { get; set; }\n\n        /// <summary>\n        /// 获取或设置同店推荐商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"assoc_ids\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"assoc_ids\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        public IList<string>? AssociateProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运费模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"freight_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"freight_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int FreightId { get; set; }\n\n        /// <summary>\n        /// 获取或设置重量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int Weight { get; set; }\n\n        /// <summary>\n        /// 获取或设置重量单位类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight_unit\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight_unit\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int WeightUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置承诺发货时间（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_delay_day\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_delay_day\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int DeliveryDelayDay { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售模式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? PresellType { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售发货时间（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_delay\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_delay\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? PresellDelay { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? PresellEndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置 7 天无理由退货类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supply_7day_return\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supply_7day_return\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int Supply7DayReturnType { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置质检报告 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"quality_report\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"quality_report\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? QualityReportUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置品类资质 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_quality\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_quality\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? ClassQualificationUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品资质列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"quality_list\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonQulificationListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"quality_list\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonQulificationListConverter))]\n        public IList<Types.Qualification>? QualificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置规格名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_name\")]\n        public string? SpecificationName { get; set; }\n\n        /// <summary>\n        /// 获取或设置规格列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"specs\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonSpecificationListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"specs\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonSpecificationListConverter))]\n        public IList<Types.Specification> SpecificationList { get; set; } = new List<Types.Specification>();\n\n        /// <summary>\n        /// 获取或设置规格详情列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_prices\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonSpecificationPriceListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_prices\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonSpecificationPriceListConverter))]\n        public IList<Types.SpecificationPrice> SpecificationPriceList { get; set; } = new List<Types.SpecificationPrice>();\n\n        /// <summary>\n        /// 获取或设置规格图片 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_pic\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_pic\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? SpecificationPictureUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最多限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"maximum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"maximum_per_order\")]\n        public int? MaximumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最少购买件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_per_order\")]\n        public int? MinimumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每个用户累计限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"limit_per_buyer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"limit_per_buyer\")]\n        public int? LimitPerBuyer { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否提审。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"commit\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"commit\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n        public bool IsCommitting { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductAddV2Response.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/addV2 接口的响应。</para>\n    /// </summary>\n    public class ProductAddV2Response : DouyinShopResponse<ProductAddV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU\n                    {\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public long SKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                        public long OutSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 商家编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"outer_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"outer_sku_id\")]\n                        public string OuterSKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU Code。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string SKUCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置一级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id1\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id1\")]\n                        public long SpecificationDetailId1 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id2\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id2\")]\n                        public long SpecificationDetailId2 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id3\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id3\")]\n                        public long SpecificationDetailId3 { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n                public long OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部商品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"outer_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"outer_product_id\")]\n                public string OuterProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                public DateTimeOffset CreateTime { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductDeleteRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/del 接口的请求。</para>\n    /// </summary>\n    public class ProductDeleteRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductDeleteResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/del 接口的响应。</para>\n    /// </summary>\n    public class ProductDeleteResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/detail 接口的请求。</para>\n    /// </summary>\n    public class ProductDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否读取草稿数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"show_draft\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"show_draft\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualNullableBooleanConverter))]\n        public bool? RequireShowDraft { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductDetailResponse.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/detail 接口的响应。</para>\n    /// </summary>\n    public class ProductDetailResponse : DouyinShopResponse<ProductDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                        public int FirstCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                        public int SecondCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                        public int ThirdCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置四级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fourth_cid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fourth_cid\")]\n                        public int ForthCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_cname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_cname\")]\n                        public string? FirstCategoryName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_cname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_cname\")]\n                        public string? SecondCategoryName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_cname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_cname\")]\n                        public string? ThirdCategoryName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置四级类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fourth_cname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fourth_cname\")]\n                        public string? ForthCategoryName { get; set; }\n                    }\n\n                    public class SpecificationPicture\n                    {\n                        /// <summary>\n                        /// 获取或设置规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id\")]\n                        public long SpecificationDetailId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pic\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pic\")]\n                        public string PictureUrl { get; set; } = default!;\n                    }\n\n                    public class SpecificationPrice\n                    {\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public long SKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                        public long OutSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 商家编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"outer_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"outer_sku_id\")]\n                        public string OuterSKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU Code。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string SKUCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_type\")]\n                        public int SKUType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_ids\")]\n                        public long[] SpecificationDetailId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置一级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id1\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id1\")]\n                        public long SpecificationDetailId1 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id2\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id2\")]\n                        public long SpecificationDetailId2 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_detail_id3\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id3\")]\n                        public long SpecificationDetailId3 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public int Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算价格（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_price\")]\n                        public int SettlementPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                        public int StockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置阶梯库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n                        public int StepStockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prom_stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prom_stock_num\")]\n                        public int PromotionStockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动阶梯库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prom_step_stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prom_step_stock_num\")]\n                        public int PromotionStepStockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置锁定库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lock_stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lock_stock_num\")]\n                        public int LockStockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置锁定阶梯库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lock_step_stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lock_step_stock_num\")]\n                        public int LockStepStockNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置区域仓库存信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stock_num_map\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stock_num_map\")]\n                        public IDictionary<string, int>? StockMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置供应商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                        public string? SupplierId { get; set; }\n                    }\n\n                    public class Specification\n                    {\n                        /// <summary>\n                        /// 获取或设置 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public long Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上级 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pid\")]\n                        public long ParentID { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_id\")]\n                        public long SpecificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是子节点。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool IsLeaf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置子节点。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"values\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"values\")]\n                        public Specification[]? Values { get; set; }\n                    }\n\n                    public class Logistics\n                    {\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customs_clear_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customs_clear_type\")]\n                        public int CustomsClearType { get; set; }\n\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"origin_region_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"origin_region_id\")]\n                        public int OriginRegionId { get; set; }\n\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"source_region_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"source_region_id\")]\n                        public int SourceRegionId { get; set; }\n\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_region_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_region_id\")]\n                        public int BrandRegionId { get; set; }\n\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_payer\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_payer\")]\n                        public int TaxPayer { get; set; }\n\n                        /// <summary>\n                        ///\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_weight_qty\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_weight_qty\")]\n                        public int NetWeightQuantity { get; set; }\n                    }\n\n                    public class Qualification\n                    {\n                        public static class Types\n                        {\n                            public class Attachment\n                            {\n                                /// <summary>\n                                /// 获取或设置附件类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                                public int MediaType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置附件 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 Key。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quality_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quality_key\")]\n                        public string Key { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quality_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quality_name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置附件列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quality_attachments\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quality_attachments\")]\n                        public Types.Attachment[] AttachmentList { get; set; } = default!;\n                    }\n\n                    public class AftersaleService\n                    {\n                        /// <summary>\n                        /// 获取或设置 7 天无理由退货类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supply_7day_return\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supply_7day_return\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public int Supply7DayReturnType { get; set; }\n                    }\n                }\n\n                internal static class Converters\n                {\n                    internal class NewtonsoftJsonAftersaleServiceConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<Types.AftersaleService?>\n                    {\n                    }\n\n                    internal class SystemTextJsonAftersaleServiceConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<Types.AftersaleService?>\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID 字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id_str\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id_str\")]\n                public string ProductIdString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置外部商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n                public long OutProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部商品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"outer_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"outer_product_id\")]\n                public string OuterProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置详情 HTML。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置划线价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                public int MarketPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置售价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_price\")]\n                public int DiscountPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置上下架状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"check_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"check_status\")]\n                public int CheckStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置客服手机号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置规格 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_id\")]\n                public long SpecificationId { get; set; }\n\n                /// <summary>\n                /// 获取或设置规格列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"specs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"specs\")]\n                public Types.Specification[] SpecificationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置规格图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_pics\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_pics\")]\n                public Types.SpecificationPicture[] SpecificationPictureList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置规格详情列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_prices\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_prices\")]\n                public Types.SpecificationPrice[] SpecificationPriceList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置一级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                public int FirstCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                public int SecondCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                public int ThirdCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置类目信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_detail\")]\n                public Types.Category? Category { get; set; }\n\n                /// <summary>\n                /// 获取或设置支持的支付方式类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                public int PayType { get; set; }\n\n                /// <summary>\n                /// 获取或设置预售类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"presell_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"presell_type\")]\n                public int PresellType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家推荐语。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"recommend_remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"recommend_remark\")]\n                public string RecommendRemark { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扩展字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品头图 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"img\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"img\")]\n                public string ImageUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品主图 URL 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pic\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pic\")]\n                public string[] PictureUrlList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品属性。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_format\")]\n                public string ProductFormat { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置每笔订单最多限购件数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"maximum_per_order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"maximum_per_order\")]\n                public int MaximumPerOrder { get; set; }\n\n                /// <summary>\n                /// 获取或设置每笔订单最少购买件数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"minimum_per_order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"minimum_per_order\")]\n                public int MinimumPerOrder { get; set; }\n\n                /// <summary>\n                /// 获取或设置每个用户累计限购件数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"limit_per_buyer\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"limit_per_buyer\")]\n                public int LimitPerBuyer { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品资质列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_list\")]\n                public Types.Qualification[] QualificationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置物流信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_info\")]\n                public Types.Logistics? Logistics { get; set; }\n\n                /// <summary>\n                /// 获取或设置售后服务信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"after_sale_service\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonAftersaleServiceConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"after_sale_service\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonAftersaleServiceConverter))]\n                public Types.AftersaleService? AftersaleService { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是组套商品的子商品。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_sub_product\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_sub_product\")]\n                public bool IsSubProduct { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                public DateTimeOffset CreateTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                public DateTimeOffset UpdateTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置草稿状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"draft_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"draft_status\")]\n                public int DraftStatue { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductEditBuyerLimitRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/editBuyerLimit 接口的请求。</para>\n    /// </summary>\n    public class ProductEditBuyerLimitRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最多限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"maximum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"maximum_per_order\")]\n        public int? MaximumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最少购买件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_per_order\")]\n        public int? MinimumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每个用户累计限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"limit_per_buyer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"limit_per_buyer\")]\n        public int? LimitPerBuyer { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductEditBuyerLimitResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/editBuyerLimit 接口的响应。</para>\n    /// </summary>\n    public class ProductEditBuyerLimitResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductEditV2Request.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/editV2 接口的请求。</para>\n    /// </summary>\n    public class ProductEditV2Request : DouyinShopRequest\n    {\n        public class Types\n        {\n            public class Specification : ProductAddV2Request.Types.Specification\n            {\n            }\n\n            public class SpecificationPrice : ProductAddV2Request.Types.SpecificationPrice\n            {\n            }\n\n            public class Qualification : ProductAddV2Request.Types.Qualification\n            {\n            }\n        }\n\n        internal static class Converters\n        {\n            internal class NewtonsoftJsonQulificationListConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.Qualification>?>\n            {\n            }\n\n            internal class SystemTextJsonQulificationListConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.Qualification>?>\n            {\n            }\n\n            internal class NewtonsoftJsonSpecificationListConverter : Newtonsoft.Json.JsonConverter<IList<Types.Specification>?>\n            {\n                private const char SEPARATOR = '^';\n                private const char SEPARATOR_NAME = '|';\n                private const char SEPARATOR_VALUE = ',';\n\n                public override bool CanRead\n                {\n                    get { return true; }\n                }\n\n                public override bool CanWrite\n                {\n                    get { return true; }\n                }\n\n                public override IList<Types.Specification>? ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, IList<Types.Specification>? existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer)\n                {\n                    if (reader.TokenType == Newtonsoft.Json.JsonToken.Null)\n                    {\n                        return existingValue;\n                    }\n                    else if (reader.TokenType == Newtonsoft.Json.JsonToken.String)\n                    {\n                        string? value = serializer.Deserialize<string>(reader);\n                        if (value == null)\n                            return existingValue;\n\n                        return value\n                            .Split(SEPARATOR)\n                            .Select(e =>\n                            {\n                                string[] arr = e.Split(SEPARATOR_NAME);\n                                return new Types.Specification()\n                                {\n                                    Name = arr[0],\n                                    Values = arr.Length >= 2 ? arr[1].Split(SEPARATOR_VALUE).ToList() : new List<string>()\n                                };\n                            })\n                            .ToList();\n                    }\n\n                    throw new Newtonsoft.Json.JsonReaderException();\n                }\n\n                public override void WriteJson(Newtonsoft.Json.JsonWriter writer, IList<Types.Specification>? value, Newtonsoft.Json.JsonSerializer serializer)\n                {\n                    if (value != null)\n                        writer.WriteValue(string.Join(SEPARATOR.ToString(), value.Select(e => $\"{e.Name}{SEPARATOR_NAME}{string.Join(SEPARATOR_VALUE.ToString(), e.Values)}\")));\n                    else\n                        writer.WriteNull();\n                }\n            }\n\n            internal class SystemTextJsonSpecificationListConverter : System.Text.Json.Serialization.JsonConverter<IList<Types.Specification>?>\n            {\n                private const char SEPARATOR = '^';\n                private const char SEPARATOR_NAME = '|';\n                private const char SEPARATOR_VALUE = ',';\n\n                public override IList<Types.Specification>? Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)\n                {\n                    if (reader.TokenType == System.Text.Json.JsonTokenType.Null)\n                    {\n                        return null;\n                    }\n                    else if (reader.TokenType == System.Text.Json.JsonTokenType.String)\n                    {\n                        string? value = reader.GetString();\n                        if (value == null)\n                            return null;\n\n                        return value\n                            .Split(SEPARATOR)\n                            .Select(e =>\n                            {\n                                string[] arr = e.Split(SEPARATOR_NAME);\n                                return new Types.Specification()\n                                {\n                                    Name = arr[0],\n                                    Values = arr.Length >= 2 ? arr[1].Split(SEPARATOR_VALUE).ToList() : new List<string>()\n                                };\n                            })\n                            .ToList();\n                    }\n\n                    throw new System.Text.Json.JsonException();\n                }\n\n                public override void Write(System.Text.Json.Utf8JsonWriter writer, IList<Types.Specification>? value, System.Text.Json.JsonSerializerOptions options)\n                {\n                    if (value != null)\n                        writer.WriteStringValue(string.Join(SEPARATOR.ToString(), value.Select(e => $\"{e.Name}{SEPARATOR_NAME}{string.Join(SEPARATOR_VALUE.ToString(), e.Values)}\")));\n                    else\n                        writer.WriteNullValue();\n                }\n            }\n\n            internal class NewtonsoftJsonSpecificationPriceListConverter : Newtonsoft.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.SpecificationPrice>?>\n            {\n            }\n\n            internal class SystemTextJsonSpecificationPriceListConverter : System.Text.Json.Converters.TextualObjectInJsonFormatConverterBase<IList<Types.SpecificationPrice>?>\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部商品编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"outer_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"outer_product_id\")]\n        public string? OuterProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? Name { get; set; }\n\n        /// <summary>\n        /// 获取或设置详情 HTML。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置划线价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"market_price\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? MarketPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置售价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"discount_price\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"discount_price\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? DiscountPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置客服手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n        public string? MobileNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置叶子类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_leaf_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_leaf_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? CategoryLeafId { get; set; }\n\n        /// <summary>\n        /// 获取或设置一级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? FirstCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置二级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? SecondCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置三级类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? ThirdCategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置支持的支付方式类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? PayType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品主图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pic\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pic\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        public IList<string>? PictureUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_format\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_format\")]\n        public string? ProductFormat { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家推荐语。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recommend_remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recommend_remark\")]\n        public string? RecommendRemark { get; set; }\n\n        /// <summary>\n        /// 获取或设置减库存类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reduce_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reduce_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? ReduceType { get; set; }\n\n        /// <summary>\n        /// 获取或设置同店推荐商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"assoc_ids\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"assoc_ids\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithPipeSplitConverter))]\n        public IList<string>? AssociateProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运费模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"freight_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"freight_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? FreightId { get; set; }\n\n        /// <summary>\n        /// 获取或设置重量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? Weight { get; set; }\n\n        /// <summary>\n        /// 获取或设置重量单位类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight_unit\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight_unit\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? WeightUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置承诺发货时间（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_delay_day\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_delay_day\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? DeliveryDelayDay { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售模式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_type\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? PresellType { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售发货时间（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_delay\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_delay\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? PresellDelay { get; set; }\n\n        /// <summary>\n        /// 获取或设置预售结束时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"presell_end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"presell_end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n        public DateTimeOffset? PresellEndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置 7 天无理由退货类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supply_7day_return\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supply_7day_return\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? Supply7DayReturnType { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置质检报告 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"quality_report\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"quality_report\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? QualityReportUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置品类资质 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_quality\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_quality\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? ClassQualificationUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品资质列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"quality_list\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonQulificationListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"quality_list\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonQulificationListConverter))]\n        public IList<Types.Qualification>? QualificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置规格名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_name\")]\n        public string? SpecificationName { get; set; }\n\n        /// <summary>\n        /// 获取或设置规格列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"specs\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonSpecificationListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"specs\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonSpecificationListConverter))]\n        public IList<Types.Specification> SpecificationList { get; set; } = new List<Types.Specification>();\n\n        /// <summary>\n        /// 获取或设置规格详情列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_prices\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Converters.NewtonsoftJsonSpecificationPriceListConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_prices\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(Converters.SystemTextJsonSpecificationPriceListConverter))]\n        public IList<Types.SpecificationPrice> SpecificationPriceList { get; set; } = new List<Types.SpecificationPrice>();\n\n        /// <summary>\n        /// 获取或设置规格图片 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spec_pic\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spec_pic\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n        public IList<string>? SpecificationPictureUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最多限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"maximum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"maximum_per_order\")]\n        public int? MaximumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每笔订单最少购买件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_per_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_per_order\")]\n        public int? MinimumPerOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置每个用户累计限购件数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"limit_per_buyer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"limit_per_buyer\")]\n        public int? LimitPerBuyer { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否提审。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"commit\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"commit\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n        public bool IsCommitting { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductEditV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/editV2 接口的响应。</para>\n    /// </summary>\n    public class ProductEditV2Response : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductGetCategoryPropertyRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/getCateProperty 接口的请求。</para>\n    /// </summary>\n    public class ProductGetCategoryPropertyRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置叶子类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_leaf_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualIntegerConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_leaf_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public int CategoryLeafId { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n        public string? Version { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductGetCategoryPropertyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/getCateProperty 接口的响应。</para>\n    /// </summary>\n    public class ProductGetCategoryPropertyResponse : DouyinShopResponse<ProductGetCategoryPropertyResponse.Types.Data[]>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Option\n                    {\n                        /// <summary>\n                        /// 获取或设置选项名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置选项值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public string Value { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_id\")]\n                public int PropertyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_name\")]\n                public string PropertyName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置属性类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public string Type { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否必填。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"required\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"required\")]\n                public bool IsRequired { get; set; }\n\n                /// <summary>\n                /// 获取或设置选项列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"options\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"options\")]\n                public Types.Option[]? OptionList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductListV2Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/listV2 接口的请求。</para>\n    /// </summary>\n    public class ProductListV2Request : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品上下架状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"check_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"check_status\")]\n        public int? CheckStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        public int? ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间区间开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long? CreateStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间区间结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long? CreateEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间区间开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_start_time\")]\n        public long? UpdateStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间区间结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_end_time\")]\n        public long? UpdateEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductListV2Response.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/listV2 接口的响应。</para>\n    /// </summary>\n    public class ProductListV2Response : DouyinShopResponse<ProductListV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class Category : ProductDetailResponse.Types.Data.Types.Category\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_product_id\")]\n                        public long OutProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部商品编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"outer_product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"outer_product_id\")]\n                        public string OuterProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详情 HTML。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                        public int ProductType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置划线价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"market_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n                        public int MarketPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置售价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_price\")]\n                        public int DiscountPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上下架状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"check_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"check_status\")]\n                        public int CheckStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客服手机号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                        public string? MobileNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置规格 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spec_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spec_id\")]\n                        public long SpecificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置类目信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_detail\")]\n                        public Types.Category? Category { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金比例（范围：0～100）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cos_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cos_ratio\")]\n                        public double COSRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支持的支付方式类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_type\")]\n                        public int PayType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家推荐语。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recommend_remark\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recommend_remark\")]\n                        public string RecommendRemark { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置扩展字段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品头图 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img\")]\n                        public string ImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是组套商品。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_package_product\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_package_product\")]\n                        public bool IsPackageProduct { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关联的组套主商品 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_product_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_product_list\")]\n                        public string[]? PackageProductIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关联的组套子商品 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_product_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_product_list\")]\n                        public string[]? SubProductIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.UnixTimestampDateTimeOffsetConverter))]\n                        public DateTimeOffset UpdateTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置翻页每页数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int PageSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductSetOfflineRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/setOffline 接口的请求。</para>\n    /// </summary>\n    public class ProductSetOfflineRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductSetOfflineResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/setOffline 接口的响应。</para>\n    /// </summary>\n    public class ProductSetOfflineResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductSetOnlineRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/setOnline 接口的请求。</para>\n    /// </summary>\n    public class ProductSetOnlineRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/ProductSetOnlineResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/setOnline 接口的响应。</para>\n    /// </summary>\n    public class ProductSetOnlineResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityDetail 接口的请求。</para>\n    /// </summary>\n    public class ProductQualityDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long ProductId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityDetailResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityDetail 接口的响应。</para>\n    /// </summary>\n    public class ProductQualityDetailResponse : DouyinShopResponse<ProductQualityDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Problem\n                    {\n                        /// <summary>\n                        /// 获取或设置字段 Key。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"field_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"field_key\")]\n                        public string FieldKey { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置字段名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"field_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"field_name\")]\n                        public string FieldName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置问题 Key。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"problem_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"problem_key\")]\n                        public int ProblemKey { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置问题名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"problem_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"problem_name\")]\n                        public string ProblemName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置问题类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"problem_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"problem_type\")]\n                        public int ProblemType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置问题建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"suggestion\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"suggestion\")]\n                        public string Suggestion { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                public string ProductName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置可优化问题项列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"field_problem\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"field_problem\")]\n                public Types.Problem[] ProblemList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityList 接口的请求。</para>\n    /// </summary>\n    public class ProductQualityListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n        public string? ProductName { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public int? TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string? SortBy { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityList 接口的响应。</para>\n    /// </summary>\n    public class ProductQualityListResponse : DouyinShopResponse<ProductQualityListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Quality\n                    {\n                        public static class Types\n                        {\n                            public class ProblemTypeDistribution\n                            {\n                                /// <summary>\n                                /// 获取或设置优化项具体名字。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type_name\")]\n                                public string TypeName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置具体问题数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n                                public int Count { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置待优化项数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"problem_num_to_improve\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"problem_num_to_improve\")]\n                        public int ProblemToImproveTotalCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置问题类型分布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"problem_type_distribution\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"problem_type_distribution\")]\n                        public Types.ProblemTypeDistribution[]? ProblemTypeDistributionList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品达标状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"meet_standard\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"meet_standard\")]\n                        public int MeetStandard { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品基础分。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"base_score\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"base_score\")]\n                        public int BaseScore { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品质量列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quality_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quality_list\")]\n                public Types.Quality[] QualityList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺待优化商品总量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityTaskRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityTask 接口的请求。</para>\n    /// </summary>\n    public class ProductQualityTaskRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置是否只返回简要信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brief_only\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brief_only\")]\n        public bool? IsBriefOnly { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Product/Quality/ProductQualityTaskResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/qualityTask 接口的响应。</para>\n    /// </summary>\n    public class ProductQualityTaskResponse : DouyinShopResponse<ProductQualityTaskResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProblemTypeDistribution\n                    {\n                        /// <summary>\n                        /// 获取或设置优化项代号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type_key\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type_key\")]\n                        public int TypeKey { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优化项具体名字。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type_name\")]\n                        public string TypeName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置具体问题数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"num\")]\n                        public int Count { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public int TaskId { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n                public int TaskStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置总共需要诊断的商品数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_num_total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_num_total\")]\n                public int ProductTotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置已经诊断过的商品数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_num_finished\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_num_finished\")]\n                public int ProductFinishedCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置待优化商品数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_num_to_improve_total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_num_to_improve_total\")]\n                public int? ProductToImproveTotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置可优化项总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"problem_num_total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"problem_num_total\")]\n                public int? ProblemTotalNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置待优化项数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"problem_num_to_improve\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"problem_num_to_improve\")]\n                public int? ProblemToImproveTotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务完成时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_finish_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_finish_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                public DateTimeOffset? TaskFinishTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置问题类型分布。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"problem_type_distribution\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"problem_type_distribution\")]\n                public Types.ProblemTypeDistribution[]? ProblemTypeDistributionList { get; set; }\n\n                /// <summary>\n                /// 获取或设置达标率（范围：0～100）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"standard_rate\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"standard_rate\")]\n                public double StandardRate { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否达标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_standard\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_standard\")]\n                public bool IsStandard { get; set; }\n\n                /// <summary>\n                /// 获取或设置达标商品数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"meet_standard_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"meet_standard_num\")]\n                public int MeetStandardNumber { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Promise/PromiseSetSKUShipTimeRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promise/setSkuShipTime 接口的请求。</para>\n    /// </summary>\n    public class PromiseSetSKUShipTimeRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Rule\n            {\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public long SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部仓库 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                public string OutWarehouseId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置预售类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pre_sell_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pre_sell_type\")]\n                public int PreSellType { get; set; }\n\n                /// <summary>\n                /// 获取或设置延迟发货天数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delay_day\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delay_day\")]\n                public int DelayDay { get; set; }\n\n                /// <summary>\n                /// 获取或设置预售截止时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pre_sell_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pre_sell_end_time\")]\n                public long PreSellEndTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置发货时效规则列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rules\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rules\")]\n        public IList<Types.Rule> RuleList { get; set; } = new List<Types.Rule>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Promise/PromiseSetSKUShipTimeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promise/setSkuShipTime 接口的响应。</para>\n    /// </summary>\n    public class PromiseSetSKUShipTimeResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleApplyChangePriceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/applyChangePrice 接口的请求。</para>\n    /// </summary>\n    public class RecycleApplyChangePriceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置价格（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n        public int Price { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleApplyChangePriceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/applyChangePrice 接口的响应。</para>\n    /// </summary>\n    public class RecycleApplyChangePriceResponse : DouyinShopResponse<RecycleApplyChangePriceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置错误代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                public int ErrorNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string ErrorMessage { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleBuyerGetOrderDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/buyerGetOrderDetail 接口的请求。</para>\n    /// </summary>\n    public class RecycleBuyerGetOrderDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleBuyerGetOrderDetailResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/buyerGetOrderDetail 接口的响应。</para>\n    /// </summary>\n    public class RecycleBuyerGetOrderDetailResponse : DouyinShopResponse<RecycleBuyerGetOrderDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ClueOrder : RecycleBuyerGetOrderListResponse.Types.ClueOrder\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置线索单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public Types.ClueOrder ClueOrder { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleBuyerGetOrderListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/buyerGetOrderList 接口的请求。</para>\n    /// </summary>\n    public class RecycleBuyerGetOrderListRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleBuyerGetOrderListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/buyerGetOrderList 接口的响应。</para>\n    /// </summary>\n    public class RecycleBuyerGetOrderListResponse : DouyinShopResponse<RecycleBuyerGetOrderListResponse.Types.ClueOrder[]>\n    {\n        public static class Types\n        {\n            public class ClueOrder\n            {\n                /// <summary>\n                /// 获取或设置线索单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n                public string ClueOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置线索 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"clue_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"clue_id\")]\n                public string ClueId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"clue_order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_status\")]\n                public int ClueOrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置字节小程序的 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下单来源类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"theme_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"theme_type\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ThemeType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                public string ProductName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_pic\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_pic\")]\n                public string? ProductPictureUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku\")]\n                public string SKU { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置购买渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"purchase_way\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"purchase_way\")]\n                public int PurchaseWay { get; set; }\n\n                /// <summary>\n                /// 获取或设置购买凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"proof\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"proof\")]\n                public string? Proof { get; set; }\n\n                /// <summary>\n                /// 获取或设置成色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"vintage\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"vintage\")]\n                public string Vintage { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置品类名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                public string CategoryName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置品牌名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_name\")]\n                public string BrandName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置系列名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"series_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"series_name\")]\n                public string SeriesName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置型号名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"model_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"model_name\")]\n                public string ModelName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notes\")]\n                public string? Notes { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                public string? LogisticsNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄出方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sent_way\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? SendWay { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄出时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sent_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sent_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? SendTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的收件人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_shop_name\")]\n                public string? EncryptedShopName { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的收件人地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_shop_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_shop_address\")]\n                public string? EncryptedShopAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的收件人电话号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_shop_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_shop_phone\")]\n                public string? EncryptedShopPhoneNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的发件人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_user_name\")]\n                public string? EncryptedUserName { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的发件人地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_user_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_user_address\")]\n                public string? EncryptedUserAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置经过加密的发件人电话号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypt_user_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypt_user_phone\")]\n                public string? EncryptedUserPhoneNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单关闭时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"close_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"close_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? CloseTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置估价时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price_create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price_create_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PriceCreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置估价确认时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price_confirm_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price_confirm_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PriceConfirmTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置回收价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"recycle_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"recycle_price\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? RecryclePrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台服务费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"recycle_commission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"recycle_commission\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? RecrycleCommission { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄卖价（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consignment_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consignment_price\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ConsignmentPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家服务费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consignment_fee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consignment_fee\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ConsignmentFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台服务费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consignment_commission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consignment_commission\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ConsignmentCommission { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄售周期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consignment_period\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consignment_period\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ConsignmentPeriod { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄售开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_consignment_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_consignment_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? ConsignmentTimstamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置成交类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"knockdown_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"knockdown_type\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? KnockdownType { get; set; }\n\n                /// <summary>\n                /// 获取或设置成交时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"knockdown_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"knockdown_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? KnockdownTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置终止时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"termination_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"termination_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? TerminationTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置终止方。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"termination_side\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"termination_side\")]\n                public string? TerminationSide { get; set; }\n\n                /// <summary>\n                /// 获取或设置终止原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"termination_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"termination_reason\")]\n                public string? TerminationReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置退件物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reverse_logistics_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reverse_logistics_code\")]\n                public string? ReverseLogisticsNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleChangePriceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/changePrice 接口的请求。</para>\n    /// </summary>\n    public class RecycleChangePriceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回收价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recycle_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recycle_price\")]\n        public int? RecyclePrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置寄售价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consignment_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consignment_price\")]\n        public int? ConsignmentPrice { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleChangePriceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/changePrice 接口的响应。</para>\n    /// </summary>\n    public class RecycleChangePriceResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleConfirmReceiveRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/confirmReceive 接口的请求。</para>\n    /// </summary>\n    public class RecycleConfirmReceiveRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleConfirmReceiveResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/confirmReceive 接口的响应。</para>\n    /// </summary>\n    public class RecycleConfirmReceiveResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleCreatePriceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/createPrice 接口的请求。</para>\n    /// </summary>\n    public class RecycleCreatePriceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回收价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recycle_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recycle_price\")]\n        public int? RecyclePrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置寄售价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consignment_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consignment_price\")]\n        public int? ConsignmentPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否同意。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_agree\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_agree\")]\n        public bool IsAgreed { get; set; }\n\n        /// <summary>\n        /// 获取或设置拒绝理由类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refuse_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refuse_reason\")]\n        public int? RefuseReasonType { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置地址 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address_id\")]\n        public int? AddressId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleCreatePriceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/createPrice 接口的响应。</para>\n    /// </summary>\n    public class RecycleCreatePriceResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleLogisticsBackRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/logisticsBack 接口的请求。</para>\n    /// </summary>\n    public class RecycleLogisticsBackRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_code\")]\n        public string LogisticsCompanyCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流公司名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n        public string LogisticsCompanyName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleLogisticsBackResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/logisticsBack 接口的响应。</para>\n    /// </summary>\n    public class RecycleLogisticsBackResponse : DouyinShopResponse<RecycleLogisticsBackResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否成功。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualBooleanConverter))]\n                public bool IsSuccessful { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public int? ErrorNumber { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleQualityTestingResultRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/qualityTestingResult 接口的请求。</para>\n    /// </summary>\n    public class RecycleQualityTestingResultRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回收价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"recycle_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"recycle_price\")]\n        public int? RecyclePrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置寄售价（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consignment_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consignment_price\")]\n        public int? ConsignmentPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否通过。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_passed\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_passed\")]\n        public bool IsPassed { get; set; }\n\n        /// <summary>\n        /// 获取或设置不通过理由类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"failed_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"failed_reason\")]\n        public int? FailedReasonType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleQualityTestingResultResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/qualityTestingResult 接口的响应。</para>\n    /// </summary>\n    public class RecycleQualityTestingResultResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleSellSucceedRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/sellSucceed 接口的请求。</para>\n    /// </summary>\n    public class RecycleSellSucceedRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置线索单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"clue_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"clue_order_id\")]\n        public string ClueOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Recycle/RecycleSellSucceedResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /recycle/sellSucceed 接口的响应。</para>\n    /// </summary>\n    public class RecycleSellSucceedResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUDetailRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/detail 接口的请求。</para>\n    /// </summary>\n    public class SKUDetailRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 SKU ID。与字段 <see cref=\"SKUCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualNullableLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long? SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU Code。与字段 <see cref=\"SKUId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? SKUCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUDetailResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/detail 接口的响应。</para>\n    /// </summary>\n    public class SKUDetailResponse : DouyinShopResponse<SKUDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : SKUListResponse.Types.SKU\n            {\n                public static class Types\n                {\n                    public class CustomsReport\n                    {\n                        /// <summary>\n                        /// 获取或设置海关代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hs_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hs_code\")]\n                        public string HSCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置法定第一计量数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_measure_qty\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_measure_qty\")]\n                        public int FirstMeasureQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法定第二计量数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_measure_qty\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_measure_qty\")]\n                        public int SecondMeasureQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法定第一计量单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_measure_unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_measure_unit\")]\n                        public string FirstMeasureUnit { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置法定第二计量单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_measure_unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_measure_unit\")]\n                        public string SecondMeasureUnit { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售卖单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string Unit { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"report_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"report_name\")]\n                        public string ReportName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"report_brand_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"report_brand_name\")]\n                        public string ReportBrandName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用途。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"usage\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"usage\")]\n                        public string Usage { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置规格型号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"g_model\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"g_model\")]\n                        public string Model { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置条形码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bar_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bar_code\")]\n                        public string BarCode { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置海关申报要素列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"customs_report_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"customs_report_info\")]\n                public Types.CustomsReport[]? CustomsReportList { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓中的发货时效或库存字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ship_rule_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ship_rule_map\")]\n                public IDictionary<string, int>? ShipRuleMap { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUEditCodeRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/editCode 接口的请求。</para>\n    /// </summary>\n    public class SKUEditCodeRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string SKUCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUEditCodeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/editCode 接口的响应。</para>\n    /// </summary>\n    public class SKUEditCodeResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUEditPriceRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/editPrice 接口的请求。</para>\n    /// </summary>\n    public class SKUEditPriceRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置价格（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n        public int Price { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUEditPriceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/editPrice 接口的响应。</para>\n    /// </summary>\n    public class SKUEditPriceResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/list 接口的请求。</para>\n    /// </summary>\n    public class SKUListRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUListResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/list 接口的响应。</para>\n    /// </summary>\n    public class SKUListResponse : DouyinShopResponse<SKUListResponse.Types.SKU[]>\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public long SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                public long OutSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU Code。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string SKUCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_type\")]\n                public int SKUType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID 字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id_str\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id_str\")]\n                public string ProductIdString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置规格组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_id\")]\n                public int SpecificationId { get; set; }\n\n                /// <summary>\n                /// 获取或设置一级规格 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_id1\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id1\")]\n                public long SpecificationDetailId1 { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级规格 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_id2\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id2\")]\n                public long SpecificationDetailId2 { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级规格 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_id3\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_id3\")]\n                public long SpecificationDetailId3 { get; set; }\n\n                /// <summary>\n                /// 获取或设置一级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name1\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name1\")]\n                public string SpecificationDetailName1 { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置二级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name2\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name2\")]\n                public string SpecificationDetailName2 { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置三级规格名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spec_detail_name3\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spec_detail_name3\")]\n                public string SpecificationDetailName3 { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                public int? StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n                public int? StepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置预占库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_stock_num\")]\n                public int? PreholdStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯预占库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_step_stock_num\")]\n                public int? PreholdStepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prom_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prom_stock_num\")]\n                public int? PromotionStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prom_step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prom_step_stock_num\")]\n                public int? PromotionStepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_map\")]\n                public IDictionary<string, int>? StockMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓预占库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_stock_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_stock_map\")]\n                public IDictionary<string, int>? PreholdStockMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置供应商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringReadOnlyConverter))]\n                public string? SupplierId { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUStockNumberRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/stockNum 接口的请求。</para>\n    /// </summary>\n    public class SKUStockNumberRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 SKU ID。与字段 <see cref=\"SKUCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        public long? SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU Code。与字段 <see cref=\"SKUId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? SKUCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部仓 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string? OutWarehouseId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUStockNumberResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/stockNum 接口的响应。</para>\n    /// </summary>\n    public class SKUStockNumberResponse : DouyinShopResponse<SKUStockNumberResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public long SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_sku_id\")]\n                public long OutSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU Code。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public string SKUCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_type\")]\n                public int SKUType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                public int? StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n                public int? StepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置预占库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_stock_num\")]\n                public int? PreholdStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯预占库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_step_stock_num\")]\n                public int? PreholdStepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prom_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prom_stock_num\")]\n                public int? PromotionStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prom_step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prom_step_stock_num\")]\n                public int? PromotionStepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_num_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_num_map\")]\n                public IDictionary<string, int>? StockMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓预占库存信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prehold_stock_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prehold_stock_map\")]\n                public IDictionary<string, int>? PreholdStockMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域仓中的发货时效或库存字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ship_rule_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ship_rule_map\")]\n                public IDictionary<string, int>? ShipRuleMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置普通库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"normal_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"normal_stock_num\")]\n                public int NormalStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_stock_num\")]\n                public int ChannelStockNumber { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUSyncStockBatchRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/syncStockBatch 接口的请求。</para>\n    /// </summary>\n    public class SKUSyncStockBatchRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class SyncSKU\n            {\n                public static class Types\n                {\n                    public class Stock\n                    {\n                        /// <summary>\n                        /// 获取或设置外部仓 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                        public string OutWarehouseId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置仓库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                        public int StockNumber { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public long SKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_type\")]\n                public int SKUType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n                public int? StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶梯库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n                public int? StepStockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置区域库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_map\")]\n                public List<Types.Stock>? StockList { get; set; }\n\n                /// <summary>\n                /// 获取或设置供应商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalStringConverter))]\n                public string? SupplierId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"idempotent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"idempotent_id\")]\n        public string? IdempotentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"incremental\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"incremental\")]\n        public bool IsIncremental { get; set; }\n\n        /// <summary>\n        /// 获取或设置需同步的 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_sync_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_sync_list\")]\n        public IList<Types.SyncSKU> SyncSKUList { get; set; } = new List<Types.SyncSKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUSyncStockBatchResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/syncStockBatch 接口的响应。</para>\n    /// </summary>\n    public class SKUSyncStockBatchResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUSyncStockRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/syncStock 接口的请求。</para>\n    /// </summary>\n    public class SKUSyncStockRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long SKUId { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部仓 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string? OutWarehouseId { get; set; }\n\n        /// <summary>\n        /// 获取或设置库存。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_num\")]\n        public int? StockNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置阶梯库存。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"step_stock_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"step_stock_num\")]\n        public int? StepStockNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"idempotent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"idempotent_id\")]\n        public string? IdempotentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置幂等请求编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"incremental\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"incremental\")]\n        public bool IsIncremental { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SKU/SKUSyncStockResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sku/syncStock 接口的响应。</para>\n    /// </summary>\n    public class SKUSyncStockResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUAddShopSPURequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/addShopSpu 接口的请求。</para>\n    /// </summary>\n    public class SPUAddShopSPURequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Property\n            {\n                /// <summary>\n                /// 获取或设置属性 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_id\")]\n                public int PropertyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性值 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                public int ValueId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性值名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value_name\")]\n                public string? ValueName { get; set; }\n\n                /// <summary>\n                /// 获取或设置父属性值 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"parent_value_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"parent_value_id\")]\n                public int? ParentValueId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性层级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                public int? Level { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 SPU 名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_name\")]\n        public string SPUName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置产品编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"upc_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"upc_code\")]\n        public string? UPC { get; set; }\n\n        /// <summary>\n        /// 获取或设置类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public int CategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public int BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"property_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"property_infos\")]\n        public IList<Types.Property> PropertyList { get; set; } = new List<Types.Property>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUAddShopSPUResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/addShopSpu 接口的响应。</para>\n    /// </summary>\n    public class SPUAddShopSPUResponse : DouyinShopResponse<SPUAddShopSPUResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 SPU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public long SPUId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetKeyPropertyByCategoryIdRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getKeyPropertyByCid 接口的请求。</para>\n    /// </summary>\n    public class SPUGetKeyPropertyByCategoryIdRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public int CategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetKeyPropertyByCategoryIdResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getKeyPropertyByCid 接口的响应。</para>\n    /// </summary>\n    public class SPUGetKeyPropertyByCategoryIdResponse : DouyinShopResponse<SPUGetKeyPropertyByCategoryIdResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Property\n                    {\n                        /// <summary>\n                        /// 获取或设置关联属性值 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rel_value_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rel_value_id\")]\n                        public int RelatedValueId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_id\")]\n                        public int PropertyId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_name\")]\n                        public string PropertyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性值 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                        public int ValueId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_name\")]\n                        public string ValueName { get; set; } = default!;\n                    }\n\n                    public class Brand : Property\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_info\")]\n                public Types.Property[] PropertyList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置品牌列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_info\")]\n                public Types.Brand[] BrandList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetSPUInformationBySPUIdRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getSpuInfoBySpuId 接口的请求。</para>\n    /// </summary>\n    public class SPUGetSPUInformationBySPUIdRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 SPU ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n        public long SPUId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetSPUInformationBySPUIdResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getSpuInfoBySpuId 接口的响应。</para>\n    /// </summary>\n    public class SPUGetSPUInformationBySPUIdResponse : DouyinShopResponse<SPUGetSPUInformationBySPUIdResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SPU\n                    {\n                        /// <summary>\n                        /// 获取或设置 SPU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_id\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualLongConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public long SPUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SPU 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_name\")]\n                        public string SPUName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置产品编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"upc_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"upc_code\")]\n                        public string UPC { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        public int CategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置品牌 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n                        public int BrandId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置在线状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"op_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"op_status\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularNullableDateTimeOffsetConverter))]\n                        public DateTimeOffset? AuditTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))]\n                        public DateTimeOffset UpdateTime { get; set; }\n                    }\n\n                    public class SPUProperty\n                    {\n                        public static class Types\n                        {\n                            public class SPUPropertyValue\n                            {\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                                public int ValueId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性值名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_name\")]\n                                public string ValueName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值别名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_alias\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_alias\")]\n                                public string ValueAlias { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_id\")]\n                        public int PropertyId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_name\")]\n                        public string PropertyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int PropertyType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性别名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_alias\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_alias\")]\n                        public string PropertyAlias { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性值列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spu_property_value_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spu_property_value_info\")]\n                        public Types.SPUPropertyValue[] PropertyValueList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SPU 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_info\")]\n                public Types.SPU SPU { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SPU 属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spu_property_infos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spu_property_infos\")]\n                public Types.SPUProperty[] SPUPropertyList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetSPUTemplateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getSpuTpl 接口的请求。</para>\n    /// </summary>\n    public class SPUGetSPUTemplateRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public int CategoryId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/SPU/SPUGetSPUTemplateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /spu/getSpuTpl 接口的响应。</para>\n    /// </summary>\n    public class SPUGetSPUTemplateResponse : DouyinShopResponse<SPUGetSPUTemplateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PropertyFormat\n                    {\n                        public static class Types\n                        {\n                            public class Option\n                            {\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                                public int ValueId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性值名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值顺序。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sequence\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sequence\")]\n                                public int Sequence { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置属性名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置选项列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"options\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"options\")]\n                        public Types.Option[]? OptionList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否必填。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"require\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"require\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                        public bool IsRequired { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        public int CategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置多选最大选项。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"multi_select_max\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"multi_select_max\")]\n                        public int? MultiSelectMaximum { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_id\")]\n                        public int PropertyId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"property_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"property_type\")]\n                        public int PropertyType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性顺序。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sequence\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sequence\")]\n                        public int Sequence { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_format\")]\n                public Types.PropertyFormat[] PropertyFormatList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Shop/ShopBandListRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /shop/brandList 接口的请求。</para>\n    /// </summary>\n    public class ShopBandListRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Shop/ShopBandListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /shop/brandList 接口的响应。</para>\n    /// </summary>\n    public class ShopBandListResponse : DouyinShopResponse<ShopBandListResponse.Types.Brand[]>\n    {\n        public static class Types\n        {\n            public class Brand\n            {\n                /// <summary>\n                /// 获取或设置品牌 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int BrandId { get; set; }\n\n                /// <summary>\n                /// 获取或设置中文名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_chinese_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_chinese_name\")]\n                public string ChineseName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置英文名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_english_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_english_name\")]\n                public string EnglishName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商标注册号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_reg_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_reg_num\")]\n                public string RegisterNumber { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Shop/ShopGetShopCategoryRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /shop/getShopCategory 接口的请求。</para>\n    /// </summary>\n    public class ShopGetShopCategoryRequest : DouyinShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Shop/ShopGetShopCategoryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /shop/getShopCategory 接口的响应。</para>\n    /// </summary>\n    public class ShopGetShopCategoryResponse : DouyinShopResponse<ShopGetShopCategoryResponse.Types.Category[]>\n    {\n        public static class Types\n        {\n            public class Category\n            {\n                /// <summary>\n                /// 获取或设置类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int CategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置类目级别。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                public int Level { get; set; }\n\n                /// <summary>\n                /// 获取或设置父类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                public int? ParentCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是叶子节点。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                public bool IsLeaf { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否有效。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                public bool IsEnabled { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Storage/StorageNotifySaleReturnStatusRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /storage/notifySaleReturnStatus 接口的请求。</para>\n    /// </summary>\n    public class StorageNotifySaleReturnStatusRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logistics_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_no\")]\n        public string LogisticsNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置务商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"vendor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"vendor\")]\n        public string VendorCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务发生时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        public long OccurrenceTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public string? Reason { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Storage/StorageNotifySaleReturnStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /storage/notifySaleReturnStatus 接口的响应。</para>\n    /// </summary>\n    public class StorageNotifySaleReturnStatusResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Token/TokenCreateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /token/create 接口的请求。</para>\n    /// </summary>\n    public class TokenCreateRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置授权 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string Code { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置授权类型。\n        /// <para>默认值：authorization_self</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"authorization_self\";\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int? ShopId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Token/TokenCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /token/create 接口的响应。</para>\n    /// </summary>\n    public class TokenCreateResponse : DouyinShopResponse<TokenCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置调用 API 的凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权作用域。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scope\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n                public string Scope { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置刷新 AccessToken 的令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int? ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string? ShopName { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Token/TokenRefreshRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /token/refresh 接口的请求。</para>\n    /// </summary>\n    public class TokenRefreshRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置授权类型。\n        /// <para>默认值：refresh_token</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置刷新 AccessToken 的令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Token/TokenRefreshResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /token/refresh 接口的响应。</para>\n    /// </summary>\n    public class TokenRefreshResponse : DouyinShopResponse<TokenRefreshResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : TokenCreateResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseAdjustInventoryRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/adjustInventory 接口的请求。</para>\n    /// </summary>\n    public class WarehouseAdjustInventoryRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class AdjustDetail\n            {\n                public static class Types\n                {\n                    public class AdjustItem\n                    {\n                        /// <summary>\n                        /// 获取或设置库存类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                        public int InventoryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                        public int InventoryStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置批次号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"batch_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"batch_no\")]\n                        public string? BatchNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单据类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjust_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_type\")]\n                        public int AdjustType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置调整数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjust_qty\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_qty\")]\n                        public int AdjustQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置生产时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                        public long? ProductTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过期时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                        public long? ExpireTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string LineNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置平台货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置 ERP 商品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n                public string? ERPSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置货主编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_id\")]\n                public string? OwnerId { get; set; }\n\n                /// <summary>\n                /// 获取或设置货主名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_name\")]\n                public string? OwnerName { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int? ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"adjust_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"adjust_list\")]\n                public IList<Types.AdjustItem>? AdjustList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置库存调整单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inventory_adjust_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_adjust_no\")]\n        public string InventoryAdjustNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置调整原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_reason\")]\n        public string AdjustReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置调整时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_time\")]\n        public long AdjustTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string Remark { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置调整明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"details\")]\n        public IList<Types.AdjustDetail>? AdjustDetailList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseAdjustInventoryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/adjustInventory 接口的响应。</para>\n    /// </summary>\n    public class WarehouseAdjustInventoryResponse : DouyinShopResponse<WarehouseAdjustInventoryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置错误码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                public int ErrorNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置错误描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string? ErrorMessage { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseCreateBatchRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/createBatch 接口的请求。</para>\n    /// </summary>\n    public class WarehouseCreateBatchRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class OutWarehouse\n            {\n                /// <summary>\n                /// 获取或设置外部仓库 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                public string OutWarehouseId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置仓库名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置仓库介绍。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"intro\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n                public string Introduction { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部仓库列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_list\")]\n        public IList<Types.OutWarehouse> OutWarehouseList { get; set; } = new List<Types.OutWarehouse>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseCreateBatchResponse.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/createBatch 接口的响应。</para>\n    /// </summary>\n    public class WarehouseCreateBatchResponse : DouyinShopResponse<IDictionary<string, bool>>\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseCreateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/create 接口的请求。</para>\n    /// </summary>\n    public class WarehouseCreateRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string OutWarehouseId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n        public string Introduction { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/create 接口的响应。</para>\n    /// </summary>\n    public class WarehouseCreateResponse : DouyinShopResponse<long>\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseEditRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/edit 接口的请求。</para>\n    /// </summary>\n    public class WarehouseEditRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string OutWarehouseId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n        public string Introduction { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseEditResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/edit 接口的响应。</para>\n    /// </summary>\n    public class WarehouseEditResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseInformationRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/info 接口的请求。</para>\n    /// </summary>\n    public class WarehouseInformationRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string OutWarehouseId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseInformationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/info 接口的响应。</para>\n    /// </summary>\n    public class WarehouseInformationResponse : DouyinShopResponse<WarehouseInformationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : WarehouseListResponse.Types.Data.Types.Warehouse\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/list 接口的请求。</para>\n    /// </summary>\n    public class WarehouseListRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address : WarehouseSetAddressRequest.Types.Address\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string? OutWarehouseId { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部仓库 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_ids\")]\n        public IList<string>? OutWarehouseIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置仓库名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_name\")]\n        public string? WarehouseName { get; set; }\n\n        /// <summary>\n        /// 获取或设置仓库地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n        public Types.Address? Address { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置翻页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// <para>默认值：desc</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rank\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n        public string SortBy { get; set; } = \"desc\";\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// <para>默认值：create_time</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_by\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_by\")]\n        public string SortField { get; set; } = \"create_time\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/list 接口的响应。</para>\n    /// </summary>\n    public class WarehouseListResponse : DouyinShopResponse<WarehouseListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warehouse\n                    {\n                        public static class Types\n                        {\n                            public class Address : WarehouseSetAddressRequest.Types.Address\n                            {\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置更新时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                                public long UpdateTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                        public long WarehouseId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                        public string OutWarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"intro\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n                        public string Introduction { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库地址列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n                        public Types.Address[]? AddressList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置仓库列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warehouses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warehouses\")]\n                public Types.Warehouse[] WarehouseList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseRemoveAddressRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/removeAddr 接口的请求。</para>\n    /// </summary>\n    public class WarehouseRemoveAddressRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address : WarehouseSetAddressRequest.Types.Address\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string OutWarehouseId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseRemoveAddressResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/removeAddr 接口的响应。</para>\n    /// </summary>\n    public class WarehouseRemoveAddressResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetAddressBatchRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setAddrBatch 接口的请求。</para>\n    /// </summary>\n    public class WarehouseSetAddressBatchRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class OutWarehouse\n            {\n                public static class Types\n                {\n                    public class Address : WarehouseSetAddressRequest.Types.Address\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置外部仓库 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n                public string OutWarehouseId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置仓库地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n                public Types.Address Address { get; set; } = new Types.Address();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部仓库列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_list\")]\n        public IList<Types.OutWarehouse> OutWarehouseList { get; set; } = new List<Types.OutWarehouse>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetAddressBatchResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setAddrBatch 接口的响应。</para>\n    /// </summary>\n    public class WarehouseSetAddressBatchResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetAddressRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setAddr 接口的请求。</para>\n    /// </summary>\n    public class WarehouseSetAddressRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置一级地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr_id1\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr_id1\")]\n                public int AddressId1 { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr_id2\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr_id2\")]\n                public int? AddressId2 { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr_id3\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr_id3\")]\n                public int? AddressId3 { get; set; }\n\n                /// <summary>\n                /// 获取或设置四级地址 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"addr_id4\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"addr_id4\")]\n                public int? AddressId4 { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置外部仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_warehouse_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_warehouse_id\")]\n        public string OutWarehouseId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetAddressResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setAddr 接口的响应。</para>\n    /// </summary>\n    public class WarehouseSetAddressResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetPriorityRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setPriority 接口的请求。</para>\n    /// </summary>\n    public class WarehouseSetPriorityRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Address : WarehouseSetAddressRequest.Types.Address\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置仓库地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"addr\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n\n        /// <summary>\n        /// 获取或设置外部仓库优先级字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"priorities\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"priorities\")]\n        public IDictionary<string, int> OutWarehousePriorityMap { get; set; } = new Dictionary<string, int>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Warehouse/WarehouseSetPriorityResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /warehouse/setPriority 接口的响应。</para>\n    /// </summary>\n    public class WarehouseSetPriorityResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncCancelOutboundOrderToBusinessRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/cancelOutboundOrderToB 接口的请求。</para>\n    /// </summary>\n    public class YuncCancelOutboundOrderToBusinessRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 ERP 出库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"erp_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"erp_order_no\")]\n        public string ERPOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n        public int? OperateType { get; set; }\n\n        /// <summary>\n        /// 获取或设置\t操作标记。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_tag\")]\n        public int? CancelTag { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public string? CancelReason { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncCancelOutboundOrderToBusinessResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/cancelOutboundOrderToB 接口的响应。</para>\n    /// </summary>\n    public class YuncCancelOutboundOrderToBusinessResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncCreateOutboundOrderToBusinessRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/createOutboundOrderToB 接口的请求。</para>\n    /// </summary>\n    public class YuncCreateOutboundOrderToBusinessRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Sender\n            {\n                /// <summary>\n                /// 获取或设置省份编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n                public string? ProvinceCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? ProvinceName { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n                public string? CityCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? CityName { get; set; }\n\n                /// <summary>\n                /// 获取或设置区县编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district_code\")]\n                public string? DistrictCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置区县名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                public string? DistrictName { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_code\")]\n                public int? StreetCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                public string? StreetName { get; set; }\n\n                /// <summary>\n                /// 获取或设置详细地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                public string? Detail { get; set; }\n\n                /// <summary>\n                /// 获取或设置姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string? Name { get; set; }\n\n                /// <summary>\n                /// 获取或设置手机号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n                public string? MobileNumber { get; set; }\n            }\n\n            public class Receiver : Sender\n            {\n            }\n\n            public class OrderLine\n            {\n                /// <summary>\n                /// 获取或设置出库单行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string LineNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置库存类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                public int InventoryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                public int InventoryStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置 ERP SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n                public string ERPSKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置 SKU 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                public string? SKUName { get; set; }\n\n                /// <summary>\n                /// 获取或设置条形码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"barcode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"barcode\")]\n                public string? BarCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                public string? CategoryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expected_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expected_qty\")]\n                public int ExpectedQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置批次号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"batch_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"batch_code\")]\n                public string? BatchNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置生产时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                public long? ProduceTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                public long? ExpireTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n        public string? ShopName { get; set; }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置出库仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置入库仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"in_warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"in_warehouse_code\")]\n        public string? InWarehouseCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_mode\")]\n        public int DeliveryMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置 ERP 出库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"erp_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"erp_order_no\")]\n        public string ERPOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置应发数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expected_qty\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expected_qty\")]\n        public int ExpectedQuantity { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单来源平台编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_platform_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_platform_code\")]\n        public string? SourcePlatformCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单来源平台名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_platform_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_platform_name\")]\n        public string? SourcePlatformName { get; set; }\n\n        /// <summary>\n        /// 获取或设置前台订单下单时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_time\")]\n        public long OrderTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家审单时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"review_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"review_time\")]\n        public long ReviewTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递公司编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"express_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"express_code\")]\n        public string? LogisticsCompanyCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递公司名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"express_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"express_name\")]\n        public string? LogisticsCompanyName { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否保价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_insure\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_insure\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsInsured { get; set; }\n\n        /// <summary>\n        /// 获取或设置保价金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"insure_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"insure_amount\")]\n        public int? InsureAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递产品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"express_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"express_product_id\")]\n        public string? LogisticsProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置快递产品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"express_product_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"express_product_name\")]\n        public string? LogisticsProductName { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许合单。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"allow_merge\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"allow_merge\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? AllowMerge { get; set; }\n\n        /// <summary>\n        /// 获取或设置发货人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sender_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sender_info\")]\n        public Types.Sender? Sender { get; set; }\n\n        /// <summary>\n        /// 获取或设置收货人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"receiver_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"receiver_info\")]\n        public Types.Receiver? Receiver { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置买家备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_message\")]\n        public string? BuyerMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置卖家备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"seller_message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"seller_message\")]\n        public string? SellerMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置扩展字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extend\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_details\")]\n        public IList<Types.OrderLine>? OrderLineList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncCreateOutboundOrderToBusinessResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/createOutboundOrderToB 接口的响应。</para>\n    /// </summary>\n    public class YuncCreateOutboundOrderToBusinessResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPCargoSinglePushRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpCargoSinglePush 接口的请求。</para>\n    /// </summary>\n    public class YuncERPCargoSinglePushRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class ExtendedProperty\n            {\n                /// <summary>\n                /// 获取或设置属性 Key ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prop_key_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prop_key_id\")]\n                public int? KeyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性 Key。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prop_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prop_key\")]\n                public string? Key { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性值 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prop_val_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prop_val_id\")]\n                public int? ValueId { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prop_val\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prop_val\")]\n                public string? Valud { get; set; }\n            }\n\n            public class SKUProperty : ExtendedProperty\n            {\n            }\n\n            public class Category\n            {\n                /// <summary>\n                /// 获取或设置一级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_cid\")]\n                public int? FirstCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置一级类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_cname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_cname\")]\n                public string? FirstCategoryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_cid\")]\n                public int? SecondCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_cname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_cname\")]\n                public string? SecondCategoryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_cid\")]\n                public int? ThirdCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_cname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_cname\")]\n                public string? ThirdCategoryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置四级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fourth_cid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fourth_cid\")]\n                public int? FourthCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置四级类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fourth_cname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fourth_cname\")]\n                public string? FourthCategoryName { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 ERP SKU Id。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n        public string ERPSKUId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置货品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cargo_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cargo_name\")]\n        public string CargoName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置货品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cargo_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cargo_desc\")]\n        public string? CargoDescription { get; set; }\n\n        /// <summary>\n        /// 获取或设置货品英文名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"english_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"english_name\")]\n        public string? CargoEnglishName { get; set; }\n\n        /// <summary>\n        /// 获取或设置计量单位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_unit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_unit\")]\n        public string? StockUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置长度单位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"length_unit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"length_unit\")]\n        public string? LengthUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置长度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"length\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n        public double? Length { get; set; }\n\n        /// <summary>\n        /// 获取或设置宽度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"width\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n        public double? Width { get; set; }\n\n        /// <summary>\n        /// 获取或设置高度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"height\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n        public double? Height { get; set; }\n\n        /// <summary>\n        /// 获取或设置重量单位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight_unit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight_unit\")]\n        public string? WeightUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置毛重。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gross_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gross_weight\")]\n        public double? GrossWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置净重。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"net_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"net_weight\")]\n        public double? NetWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置货币单位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"currency_unit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"currency_unit\")]\n        public string? CurrencyUnit { get; set; }\n\n        /// <summary>\n        /// 获取或设置市场价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"market_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"market_price\")]\n        public double? MarketPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置采购价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supply_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supply_price\")]\n        public double? SupplyPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置零售价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"retail_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"retail_price\")]\n        public double? RetailPrice { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否航空禁运品。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_embargo\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_embargo\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsEmargo { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否是否易碎品。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_fragile\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_fragile\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsFragile { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否大件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_large\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_large\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsLarge { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否贵重品。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_precious\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_precious\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsPrecious { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否效期管理。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_need_valid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_need_valid\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsNeedValid { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否液体。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_liquid\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_liquid\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsLiquid { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否危险品。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_hazardous\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_hazardous\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsHazardous { get; set; }\n\n        /// <summary>\n        /// 获取或设置有效期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"period_of_validity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"period_of_validity\")]\n        public int? PeriodOfValidity { get; set; }\n\n        /// <summary>\n        /// 获取或设置禁售期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"period_of_forbid_sale\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"period_of_forbid_sale\")]\n        public int? PeriodOfForbidSale { get; set; }\n\n        /// <summary>\n        /// 获取或设置禁收期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"period_of_forbid_take\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"period_of_forbid_take\")]\n        public int? PeriodOfForbidTake { get; set; }\n\n        /// <summary>\n        /// 获取或设置临期预警天数（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"period_of_warning\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"period_of_warning\")]\n        public int? PeriodOfWarning { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否批次管理。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_need_batch\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_need_batch\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsNeedBatch { get; set; }\n\n        /// <summary>\n        /// 获取或设置批次类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"batch_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"batch_type\")]\n        public int? BatchType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否强批次管理。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_must_batch\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalNullableBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_must_batch\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalNullableBooleanConverter))]\n        public bool? IsMatchBatch { get; set; }\n\n        /// <summary>\n        /// 获取或设置配件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"accessory_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"accessory_info\")]\n        public string? AccessoryInformation { get; set; }\n\n        /// <summary>\n        /// 获取或设置产地。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin_address\")]\n        public string? OriginAddress { get; set; }\n\n        /// <summary>\n        /// 获取或设置税率字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tax_rate\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tax_rate\")]\n        public string? TaxRateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输温度字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_temp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_temp\")]\n        public string? DeliveryTemperatureString { get; set; }\n\n        /// <summary>\n        /// 获取或设置存储温度字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"storage_temp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"storage_temp\")]\n        public string? StorageTemperatureString { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_code\")]\n        public string? BrandCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_name\")]\n        public string? BrandName { get; set; }\n\n        /// <summary>\n        /// 获取或设置货品图片 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"picture\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"picture\")]\n        public string? PictureUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置类目 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public int? CategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置类目名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n        public string? CategoryName { get; set; }\n\n        /// <summary>\n        /// 获取或设置类目详细信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_detail\")]\n        public Types.Category? Category { get; set; }\n\n        /// <summary>\n        /// 获取或设置条形码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"barcode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"barcode\")]\n        public IList<string>? BarCodeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置扩展描述属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"props_extends\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"props_extends\")]\n        public IList<Types.ExtendedProperty>? ExtendedPropertyList { get; set; }\n\n        /// <summary>\n        /// 获取或设置销售规格属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_props\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_props\")]\n        public IList<Types.SKUProperty>? SKUPropertyList { get; set; }\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPCargoSinglePushResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpCargoSinglePush 接口的响应。</para>\n    /// </summary>\n    public class YuncERPCargoSinglePushResponse : DouyinShopResponse<YuncERPCargoSinglePushResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 ERP SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n                public string ERPSKUId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPInboundCancelRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpInboundCancel 接口的请求。</para>\n    /// </summary>\n    public class YuncERPInboundCancelRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置入库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_order_no\")]\n        public string BusinessOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_type\")]\n        public int ActionType { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public string CancelReason { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPInboundCancelResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpInboundCancel 接口的响应。</para>\n    /// </summary>\n    public class YuncERPInboundCancelResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPInboundCreateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpInboundCreate 接口的请求。</para>\n    /// </summary>\n    public class YuncERPInboundCreateRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class OrderLine\n            {\n                /// <summary>\n                /// 获取或设置入库单行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string LineNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置入库单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biz_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biz_order_no\")]\n                public string BusinessOrderNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置库存类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                public int InventoryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                public int InventoryStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置 ERP SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n                public string ERPSKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置预计收货数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expect_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expect_qty\")]\n                public int ExpectedQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置条形码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_batch_assigned\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.NumericalBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_batch_assigned\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]\n                public bool IsBatchAssigned { get; set; }\n\n                /// <summary>\n                /// 获取或设置序列号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sn_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sn_list\")]\n                public IList<string>? SerialNumberList { get; set; }\n\n                /// <summary>\n                /// 获取或设置币种。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                public string? Currency { get; set; }\n\n                /// <summary>\n                /// 获取或设置采购价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"purchase_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"purchase_price\")]\n                public int? PurchasePrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置批次号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"batch_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"batch_code\")]\n                public string? BatchNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置生产时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                public long? ProduceTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                public long? ExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extend\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n                public string? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置出库仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_mode\")]\n        public int DeliveryMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置入库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_order_no\")]\n        public string BusinessOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_type\")]\n        public int ActionType { get; set; }\n\n        /// <summary>\n        /// 获取或设置计划到达时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"plan_arr_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"plan_arr_time\")]\n        public long? PlanArrivalTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置最晚到达时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"late_arr_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"late_arr_time\")]\n        public long? LateArrivalTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置供应商编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_code\")]\n        public string? SupplierCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置供应商名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_name\")]\n        public string? SupplierName { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送扩展字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_extend\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_extend\")]\n        public string? DeliveryExtra { get; set; }\n\n        /// <summary>\n        /// 获取或设置扩展字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extend\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_details\")]\n        public IList<Types.OrderLine>? OrderLineList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncERPInboundCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/erpInboundCreate 接口的响应。</para>\n    /// </summary>\n    public class YuncERPInboundCreateResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncShopWarehouseRefQueryRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/shopWarehouseRefQuery 接口的请求。</para>\n    /// </summary>\n    public class YuncShopWarehouseRefQueryRequest : DouyinShopRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int ShopId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/ERP/YuncShopWarehouseRefQueryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/shopWarehouseRefQuery 接口的响应。</para>\n    /// </summary>\n    public class YuncShopWarehouseRefQueryResponse : DouyinShopResponse<YuncShopWarehouseRefQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warehouse\n                    {\n                        /// <summary>\n                        /// 获取或设置仓库编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n                        public string WarehouseCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_name\")]\n                        public string WarehouseName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置仓库列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warehouse_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_list\")]\n                public Types.Warehouse[] WarehouseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncAdjustInventoryRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/adjustInventory 接口的请求。</para>\n    /// </summary>\n    public class YuncAdjustInventoryRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Detail\n            {\n                public static class Types\n                {\n                    public class Adjustment\n                    {\n                        /// <summary>\n                        /// 获取或设置库存类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                        public int InventoryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                        public int InventoryStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置调整类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjust_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_type\")]\n                        public int AdjustType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置调整数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"batch_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"batch_no\")]\n                        public int AdjustQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置批次号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"batch_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"batch_no\")]\n                        public string? BatchNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置生产时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                        public long? ProduceTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过期时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                        public long? ExpireTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string LineNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public string CargoCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置 ERP SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"erp_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"erp_sku_id\")]\n                public string? ERPSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                public int? ShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置货主编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_code\")]\n                public string OwnerCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置货主名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_name\")]\n                public string? OwnerName { get; set; }\n\n                /// <summary>\n                /// 获取或设置调整列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"adjust_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"adjust_list\")]\n                public IList<Types.Adjustment> AdjustmentList { get; set; } = new List<Types.Adjustment>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置\t库存调整单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inventory_adjust_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_adjust_no\")]\n        public string InventoryAdjustNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置调整原因类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_reason\")]\n        public int AdjustReasonType { get; set; }\n\n        /// <summary>\n        /// 获取或设置调整时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_time\")]\n        public long AdjustTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n        public string? Remark { get; set; }\n\n        /// <summary>\n        /// 获取或设置调整明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"details\")]\n        public List<Types.Detail>? DetailList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncAdjustInventoryResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/adjustInventory 接口的响应。</para>\n    /// </summary>\n    public class YuncAdjustInventoryResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncPushOutboundFeedbackRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/pushOutboundFeedback 接口的请求。</para>\n    /// </summary>\n    public class YuncPushOutboundFeedbackRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Package\n            {\n                public static class Types\n                {\n                    public class Logistics\n                    {\n                        /// <summary>\n                        /// 获取或设置物流公司编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_code\")]\n                        public string? LogisticsCompanyCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_no\")]\n                        public string? LogisticsNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_mode\")]\n                        public int? DeliveryMode { get; set; }\n                    }\n\n                    public class PackageItem\n                    {\n                        /// <summary>\n                        /// 获取或设置货品编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                        public int? CargoCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置货品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cargo_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cargo_name\")]\n                        public string? CargoName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置包装单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string? Unit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                        public int? InventoryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int? Quantity { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_no\")]\n                public string? PackageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置长度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"length\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n                public int? Length { get; set; }\n\n                /// <summary>\n                /// 获取或设置宽度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int? Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置高度（单位：厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int? Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置体积（单位：立方厘米）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"volume\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"volume\")]\n                public int? Volume { get; set; }\n\n                /// <summary>\n                /// 获取或设置重量（单位：克）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                public int? Weight { get; set; }\n\n                /// <summary>\n                /// 获取或设置打包时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"packed_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"packed_time\")]\n                public long? PackTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置发货时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_time\")]\n                public long? ShipTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long? CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logistics\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logistics\")]\n                public Types.Logistics? Logistics { get; set; }\n\n                /// <summary>\n                /// 获取或设置货品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_items\")]\n                public IList<Types.PackageItem>? PackageItemList { get; set; }\n            }\n\n            public class OrderLine\n            {\n                /// <summary>\n                /// 获取或设置出库单行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string? LineNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置货品编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_code\")]\n                public int? CargoCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置货品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cargo_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cargo_name\")]\n                public string? CargoName { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                public int? InventoryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                public int? InventoryStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置实际发货数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipped_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipped_qty\")]\n                public int? ShipQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置序列号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sn_list\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sn_list\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n                public IList<string>? SerialNumberList { get; set; }\n\n                /// <summary>\n                /// 获取或设置批次号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"batch_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"batch_code\")]\n                public string? BatchNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置生产时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                public long? ProduceTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                public long? ExpireTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置出库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"outbound_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"outbound_order_no\")]\n        public string? OutboundOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n        public int? EventType { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_description\")]\n        public string? EventDescription { get; set; }\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string? WarehouseCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置扩展字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extend\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置单据变化的流水号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"slip_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"slip_no\")]\n        public string? SlipNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件发生时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"occurrence_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"occurrence_time\")]\n        public long? OccurrenceTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置货主编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"owner_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"owner_code\")]\n        public string? OwnerCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_infos\")]\n        public List<Types.Package>? PackageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_lines\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_lines\")]\n        public List<Types.OrderLine>? OrderLineList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncPushOutboundFeedbackResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/pushOutboundFeedback 接口的响应。</para>\n    /// </summary>\n    public class YuncPushOutboundFeedbackResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncWMSInboundCallbackRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/wmsInboundCallback 接口的请求。</para>\n    /// </summary>\n    public class YuncWMSInboundCallbackRequest : DouyinShopRequest\n    {\n        public static class Types\n        {\n            public class Detail\n            {\n                /// <summary>\n                /// 获取或设置入库单行号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_no\")]\n                public string LineNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置入库单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inbound_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inbound_order_no\")]\n                public string InboundOrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置库存类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                public int InventoryType { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_status\")]\n                public int InventoryStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置累计实收数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_qty\")]\n                public int TotalQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置本次实收数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"received_qty\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"received_qty\")]\n                public int ReceivedQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置序列号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sn_list\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sn_list\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]\n                public IList<string>? SerialNumberList { get; set; }\n\n                /// <summary>\n                /// 获取或设置货主编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"owner_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"owner_code\")]\n                public string OwnerCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置批次号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"batch_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"batch_code\")]\n                public string? BatchNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置生产时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_date\")]\n                public long? ProduceTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_date\")]\n                public long? ExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置扩展字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extend\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extend\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置备注。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string? Remark { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置单据类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public string OrderType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置入库单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inbound_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inbound_order_no\")]\n        public string InboundOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置仓库编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_code\")]\n        public string WarehouseCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operator\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operator\")]\n        public string Operator { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operate_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operate_time\")]\n        public long OperateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reamrk\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reamrk\")]\n        public string? Reamrk { get; set; }\n\n        /// <summary>\n        /// 获取或设置明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"details\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"details\")]\n        public List<Types.Detail>? DetailList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Models/Yunc/WMS/YuncWMSInboundCallbackResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /yunc/wmsInboundCallback 接口的响应。</para>\n    /// </summary>\n    public class YuncWMSInboundCallbackResponse : DouyinShopResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.DouyinShop\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.DouyinShop.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.DouyinShop) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n基于 `Flurl.Http` 的抖店开放平台 HTTP API SDK。\n\n---\n\n### 【功能特性】\n\n-   基于抖店开放平台 API 封装。\n-   支持商家自研、软件服务商两种模式。\n-   请求时自动生成签名，无需开发者手动干预。\n-   提供了抖店开放平台 API 所需的 MD5、HMAC-SHA-256 等算法工具类。\n-   提供了解析回调通知事件等扩展方法。\n\n---\n\n### 【开发文档】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)。\n\n---\n\n### 【更新日志】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md)。\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/SKIT.FlurlHttpClient.ByteDance.DouyinShop.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n\t\t<TargetFrameworks>net461; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>8.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.DouyinShop</PackageId>\n\t\t<PackageIcon>LOGO.png</PackageIcon>\n\t\t<PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance Douyin DouyinShop 字节 字节跳动 头条 今日头条 抖店 抖音小店 抖音放心购 抖音今日特卖 放心购 今日特卖</PackageTags>\n        <Version>0.0.0</Version>\n        <Description>基于 Flurl.Http 的抖店开放平台 API 客户端，支持商家自研、软件服务商模式，支持店铺管理、素材中心、商品管理、库存管理、订单管理、物流发货、售后退款、保险管理、账单管理、代发代打、跨境物流、卡券管理、仓库作业、精选联盟、回收寄卖、BIC 质检、BTAS 质检等功能。</Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n        <GenerateDocumentationFile>true</GenerateDocumentationFile>\n        <IncludeSymbols>true</IncludeSymbols>\n        <SymbolPackageFormat>snupkg</SymbolPackageFormat>\n    </PropertyGroup>\n\n\t<PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n\t\t<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n\t\t<Deterministic>true</Deterministic>\n\t\t<EmbedUntrackedSources>true</EmbedUntrackedSources>\n\t\t<GenerateDocumentationFile>true</GenerateDocumentationFile>\n\t\t<IncludeSymbols>true</IncludeSymbols>\n\t\t<SymbolPackageFormat>snupkg</SymbolPackageFormat>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n\t\t<None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n\t</ItemGroup>\n\n    <ItemGroup>\n        <Reference Include=\"System.Web\" Condition=\"'$(TargetFramework)' == 'net461'\" />\n    </ItemGroup>\n\n\t<ItemGroup>\n\t\t<PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"2.6.0\" />\n\t</ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Settings/Credentials.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinShopClientOptions.AppKey\"/> 的副本。\n        /// </summary>\n        public string AppKey { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinShopClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        internal Credentials(DouyinShopClientOptions options)\n        {\n            if (options == null) throw new ArgumentNullException(nameof(options));\n\n            AppKey = options.AppKey;\n            AppSecret = options.AppSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Utilities/HMACUtility.cs",
    "content": "﻿using System;\nusing System.Security.Cryptography;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Utilities\n{\n    /// <summary>\n    /// HMAC 算法工具类。\n    /// </summary>\n    public static class HMACUtility\n    {\n        /// <summary>\n        /// 获取 HMAC-SHA-256 消息认证码。\n        /// </summary>\n        /// <param name=\"secretBytes\">密钥字节数组。</param>\n        /// <param name=\"msgBytes\">信息字节数组。</param>\n        /// <returns>消息认证码字节数组。</returns>\n        public static byte[] HashWithSHA256(byte[] secretBytes, byte[] msgBytes)\n        {\n            if (secretBytes == null) throw new ArgumentNullException(nameof(secretBytes));\n            if (msgBytes == null) throw new ArgumentNullException(nameof(msgBytes));\n\n            using HMAC hmac = new HMACSHA256(secretBytes);\n            return hmac.ComputeHash(msgBytes);\n        }\n\n        /// <summary>\n        /// 获取 HMAC-SHA-256 消息认证码。\n        /// </summary>\n        /// <param name=\"secret\">密钥。</param>\n        /// <param name=\"message\">文本信息。</param>\n        /// <returns>消息认证码。</returns>\n        public static string HashWithSHA256(string secret, string message)\n        {\n            if (secret == null) throw new ArgumentNullException(nameof(secret));\n            if (message == null) throw new ArgumentNullException(nameof(message));\n\n            byte[] secretBytes = Encoding.UTF8.GetBytes(secret);\n            byte[] msgBytes = Encoding.UTF8.GetBytes(message);\n            byte[] hashBytes = HashWithSHA256(secretBytes, msgBytes);\n            return BitConverter.ToString(hashBytes).Replace(\"-\", \"\");\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Utilities/Internal/FileHttpContentBuilder.cs",
    "content": "﻿using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Web;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Utilities\n{\n    internal static class FileHttpContentBuilder\n    {\n        public static MultipartFormDataContent Build(string fileName, byte[] fileBytes, string fileContentType, string formDataName)\n        {\n            return Build(fileName: fileName, fileBytes: fileBytes, fileContentType: fileContentType, formDataName: formDataName, (_) => { });\n        }\n\n        public static MultipartFormDataContent Build(string fileName, byte[] fileBytes, string fileContentType, string formDataName, Action<HttpContent> configureFileHttpContent)\n        {\n            if (fileName == null) throw new ArgumentNullException(nameof(fileName));\n            if (formDataName == null) throw new ArgumentNullException(nameof(formDataName));\n            if (configureFileHttpContent == null) throw new ArgumentNullException(nameof(configureFileHttpContent));\n\n            fileName = fileName.Replace(\"\\\"\", \"\");\n            fileBytes = fileBytes ?? Array.Empty<byte>();\n            fileContentType = string.IsNullOrEmpty(fileContentType) ? \"application/octet-stream\" : fileContentType;\n            formDataName = formDataName.Replace(\"\\\"\", \"\");\n\n            ByteArrayContent fileContent = new ByteArrayContent(fileBytes);\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(fileContentType);\n            configureFileHttpContent(fileContent);\n\n            string boundary = \"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\");\n            MultipartFormDataContent httpContent = new MultipartFormDataContent(boundary);\n            httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse($\"multipart/form-data; boundary={boundary}\");\n            httpContent.Add(fileContent, $\"\\\"{formDataName}\\\"\", $\"\\\"{HttpUtility.UrlEncode(fileName)}\\\"\");\n            return httpContent;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Utilities/Internal/JsonUtility.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Utilities\n{\n    internal static class JsonUtility\n    {\n        private class MarshalJObjectConverter : JsonConverter\n        {\n            public override bool CanConvert(Type objectType)\n            {\n                return objectType == typeof(JObject);\n            }\n\n            public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)\n            {\n                writer.WriteStartObject();\n\n                var jObject = (JObject)value!;\n                var props = jObject.Properties().OrderBy(i => i.Name).ToList();\n                foreach (var prop in props)\n                {\n                    writer.WritePropertyName(prop.Name);\n                    serializer.Serialize(writer, prop.Value);\n                }\n\n                writer.WriteEndObject();\n            }\n\n            public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)\n            {\n                return serializer.Deserialize(reader, objectType) ?? existingValue;\n            }\n        }\n\n        private class MarshalJValueConverter : JsonConverter\n        {\n            public override bool CanConvert(Type objectType)\n            {\n                return objectType == typeof(JValue);\n            }\n\n            public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)\n            {\n                var jVal = (JValue)value!;\n                if (jVal.Type == JTokenType.Float ||\n                    jVal.Type == JTokenType.String)\n                {\n                    double d;\n\n                    if (jVal.Type == JTokenType.String)\n                    {\n                        if (!double.TryParse(jVal.Value?.ToString(), out d))\n                        {\n                            writer.WriteValue(value);\n                            return;\n                        }\n                    }\n                    else\n                    {\n                        d = Convert.ToDouble(jVal.Value);\n                    }\n\n                    long i = (long)d;\n                    if (Math.Abs(i - d) < double.Epsilon)\n                    {\n                        writer.WriteValue(i);\n                        return;\n                    }\n                }\n\n                writer.WriteValue(value);\n            }\n\n            public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)\n            {\n                return serializer.Deserialize(reader, objectType) ?? existingValue;\n            }\n        }\n\n        internal static string Format(string json)\n        {\n            // 1. 确保所有层级上 Key 的有序性\n            // 2. 确保所有数值不带多余的小数点（即 1.0 → 1）\n\n            if (string.IsNullOrEmpty(json))\n                return string.Empty;\n\n            var jObject = JsonConvert.DeserializeObject(json);\n            var settings = new JsonSerializerSettings();\n            settings.Converters = new List<JsonConverter> { new MarshalJObjectConverter(), new MarshalJValueConverter() };\n            return JsonConvert.SerializeObject(jObject, Formatting.None, settings);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.DouyinShop/Utilities/MD5Utility.cs",
    "content": "﻿using System;\nusing System.Security.Cryptography;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.Utilities\n{\n    /// <summary>\n    /// MD5 算法工具类。\n    /// </summary>\n    public static class MD5Utility\n    {\n        /// <summary>\n        /// 获取 MD5 信息摘要。\n        /// </summary>\n        /// <param name=\"bytes\">信息字节数组。</param>\n        /// <returns>信息摘要字节数组。</returns>\n        public static byte[] Hash(byte[] bytes)\n        {\n            if (bytes == null) throw new ArgumentNullException(nameof(bytes));\n\n            using MD5 md5 = MD5.Create();\n            return md5.ComputeHash(bytes);\n        }\n\n        /// <summary>\n        /// 获取 MD5 信息摘要。\n        /// </summary>\n        /// <param name=\"message\">文本信息。</param>\n        /// <returns>信息摘要。</returns>\n        public static string Hash(string message)\n        {\n            if (message == null) throw new ArgumentNullException(nameof(message));\n\n            byte[] msgBytes = Encoding.UTF8.GetBytes(message);\n            byte[] hashBytes = Hash(msgBytes);\n            return BitConverter.ToString(hashBytes).Replace(\"-\", \"\");\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Converters/[Internal]/Newtonsoft.Json/DateTimeOffset/CstDateTimeOffsetConverter.cs",
    "content": "namespace Newtonsoft.Json.Converters.Internal\n{\n    internal class CstDateTimeOffsetConverter : Common.FormattedDateTimeOffsetConverterBase\n    {\n        protected override string FormatString => \"yyyy-MM-dd HH:mm:ss zzz CST\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Converters/[Internal]/System.Text.Json/DateTimeOffset/CstDateTimeOffsetConverter.cs",
    "content": "namespace System.Text.Json.Serialization.Internal\n{\n    internal class CstDateTimeOffsetConverter : Common.FormattedDateTimeOffsetConverterBase\n    {\n        protected override string FormatString => \"yyyy-MM-dd HH:mm:ss zzz CST\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 一个抖音小程序 API HTTP 客户端。\n    /// </summary>\n    public class DouyinMicroAppClient : CommonClientBase, ICommonClient\n    {\n        public readonly string _BASEURL_LEGACY;\n\n        /// <summary>\n        /// 获取当前客户端使用的抖音小程序凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinMicroAppClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinMicroAppClient(DouyinMicroAppClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinMicroAppClient(DouyinMicroAppClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? DouyinMicroAppEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n\n            _BASEURL_LEGACY = options.EndpointForLegacy ?? DouyinMicroAppEndpoints.LEGACY_DEFAULT;\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinMicroAppRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinMicroAppClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinMicroAppClientBuilder : ICommonClientBuilder<DouyinMicroAppClient>\n    {\n        private readonly DouyinMicroAppClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinMicroAppClientBuilder(DouyinMicroAppClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinMicroAppClient> ICommonClientBuilder<DouyinMicroAppClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppClient> ICommonClientBuilder<DouyinMicroAppClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppClient> ICommonClientBuilder<DouyinMicroAppClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinMicroAppClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinMicroAppClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinMicroAppClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinMicroAppClient Build()\n        {\n            DouyinMicroAppClient client = _disposeClient.HasValue\n                ? new DouyinMicroAppClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinMicroAppClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinMicroAppClientBuilder\n    {\n        public static DouyinMicroAppClientBuilder Create(DouyinMicroAppClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinMicroAppClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinMicroAppClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinMicroAppClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = DouyinMicroAppEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序旧版 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppEndpoints.LEGACY_DEFAULT\"/></para>\n        /// </summary>\n        public string EndpointForLegacy { get; set; } = DouyinMicroAppEndpoints.LEGACY_DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppId。\n        /// </summary>\n        public string AppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppSecret。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音服务器推送的 Token。\n        /// </summary>\n        public string? PushToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音服务器推送的 EncodingAESKey。\n        /// </summary>\n        public string? PushEncodingAESKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序应用密钥版本号。\n        /// <para>默认值：\"1\"</para>\n        /// </summary>\n        public string? AppKeyVersion { get; set; } = \"1\";\n\n        /// <summary>\n        /// 获取或设置抖音小程序应用私钥。\n        /// </summary>\n        public string? AppPrivateKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置用于担保支付请求签名的密钥。\n        /// </summary>\n        public string? ECPaySalt { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 抖音小程序 API 接口域名。\n    /// </summary>\n    public static class DouyinMicroAppEndpoints\n    {\n        /// <summary>\n        /// 默认域名。\n        /// </summary>\n        public const string DEFAULT = \"https://open.douyin.com\";\n\n        /// <summary>\n        /// 小游戏域名。\n        /// </summary>\n        public const string MINIGAME = \"https://minigame.zijieapi.com/mgplatform\";\n\n        /// <summary>\n        /// 旧版接口默认域名。\n        /// </summary>\n        public const string LEGACY_DEFAULT = \"https://developer.toutiao.com\";\n\n        /// <summary>\n        /// 旧版接口沙盒环境域名。\n        /// </summary>\n        public const string LEGACY_SANGBOX = \"https://open-sandbox.douyin.com\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 表示抖音小程序 API 消息推送事件的基类。\n    /// </summary>\n    [Newtonsoft.Json.JsonObject]\n    [System.Xml.Serialization.XmlRoot(\"xml\")]\n    public class DouyinMicroAppEvent : ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置消息接收方账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ToUserName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ToUserName\")]\n        [System.Xml.Serialization.XmlElement(\"ToUserName\", IsNullable = true)]\n        public virtual string? ToUserName { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息发送方账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"FromUserName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"FromUserName\")]\n        [System.Xml.Serialization.XmlElement(\"FromUserName\", IsNullable = true)]\n        public virtual string? FromUserName { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"MsgType\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"MsgType\")]\n        [System.Xml.Serialization.XmlElement(\"MsgType\", IsNullable = true)]\n        public virtual string? MessageType { get; set; }\n\n        /// <summary>\n        /// 获取或设置消息创建时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"CreateTime\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"CreateTime\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        [System.Xml.Serialization.XmlElement(\"CreateTime\")]\n        public virtual long CreateTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppException.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 当调用抖音小程序 API 出错时引发的异常。\n    /// </summary>\n    public class DouyinMicroAppException : CommonException\n    {\n        /// <inheritdoc/>\n        public DouyinMicroAppException()\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinMicroAppException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public DouyinMicroAppException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 抖音小程序 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音小程序的 AccessToken/ClientToken/BusinessToken。\n        /// <para>\n        /// 注意：部分第三方平台的接口中该字段表示授权方的 AuthorizerAccessToken。\n        /// </para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/DouyinMicroAppResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    /// <summary>\n    /// 抖音小程序 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public virtual int ErrorNumber { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_tips\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_tips\")]\n        public virtual string? ErrorTips { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        public virtual string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音小程序 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorNumber\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Events/Message/ImageMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Events\n{\n    /// <summary>\n    /// <para>表示 image 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/message-push-customer-service ]]>\n    /// </para>\n    /// </summary>\n    public class ImageMessageEvent : DouyinMicroAppEvent\n    {\n        /// <summary>\n        /// 获取或设置图片 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"PicUrl\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"PicUrl\")]\n        [System.Xml.Serialization.XmlElement(\"PicUrl\")]\n        public string PictureUrl { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Events/Message/TextMessageEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Events\n{\n    /// <summary>\n    /// <para>表示 text 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/message-push-customer-service ]]>\n    /// </para>\n    /// </summary>\n    public class TextMessageEvent : DouyinMicroAppEvent\n    {\n        /// <summary>\n        /// 获取或设置消息内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"Content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"Content\")]\n        [System.Xml.Serialization.XmlElement(\"Content\")]\n        public string Content { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 一个抖音小程序服务商平台 API HTTP 客户端。\n    /// </summary>\n    public class DouyinMicroAppOpenApiClient : CommonClientBase, ICommonClient\n    {\n        public readonly string _BASEURL_LEGACY;\n\n        /// <summary>\n        /// 获取当前客户端使用的抖音小程序凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinMicroAppOpenApiClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinMicroAppOpenApiClient(DouyinMicroAppOpenApiClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinMicroAppOpenApiClient(DouyinMicroAppOpenApiClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoints ?? DouyinMicroAppOpenApiEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n\n            _BASEURL_LEGACY = options.EndpointForLegacy ?? DouyinMicroAppEndpoints.LEGACY_DEFAULT;\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinMicroAppOpenApiRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            if (request.ComponentAppId is null)\n            {\n                request.ComponentAppId = Credentials.ComponentAppId;\n            }\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppOpenApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppOpenApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinMicroAppOpenApiClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinMicroAppOpenApiClientBuilder : ICommonClientBuilder<DouyinMicroAppOpenApiClient>\n    {\n        private readonly DouyinMicroAppOpenApiClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinMicroAppOpenApiClientBuilder(DouyinMicroAppOpenApiClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinMicroAppOpenApiClient> ICommonClientBuilder<DouyinMicroAppOpenApiClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppOpenApiClient> ICommonClientBuilder<DouyinMicroAppOpenApiClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppOpenApiClient> ICommonClientBuilder<DouyinMicroAppOpenApiClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinMicroAppOpenApiClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinMicroAppOpenApiClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinMicroAppOpenApiClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinMicroAppOpenApiClient Build()\n        {\n            DouyinMicroAppOpenApiClient client = _disposeClient.HasValue\n                ? new DouyinMicroAppOpenApiClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinMicroAppOpenApiClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinMicroAppOpenApiClientBuilder\n    {\n        public static DouyinMicroAppOpenApiClientBuilder Create(DouyinMicroAppOpenApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinMicroAppOpenApiClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinMicroAppOpenApiClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinMicroAppOpenApiClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音小程序服务商平台 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppOpenApiEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoints { get; set; } = DouyinMicroAppOpenApiEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序服务商平台旧版 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppOpenApiEndpoints.LEGACY_DEFAULT\"/></para>\n        /// </summary>\n        public string EndpointForLegacy { get; set; } = DouyinMicroAppOpenApiEndpoints.LEGACY_DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序服务商 AppId。\n        /// </summary>\n        public string ComponentAppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序服务商 AppSecret。\n        /// </summary>\n        public string ComponentAppSecret { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置头条服务器推送的 Token。\n        /// </summary>\n        public string? PushToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置头条服务器推送的 EncodingAESKey。\n        /// </summary>\n        public string? PushEncodingAESKey { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 抖音小程序服务商平台 API 接口域名。\n    /// </summary>\n    public static class DouyinMicroAppOpenApiEndpoints\n    {\n        /// <summary>\n        /// 默认域名。\n        /// </summary>\n        public const string DEFAULT = \"https://open.douyin.com/api\";\n\n        /// <summary>\n        /// 旧版接口服务商平台接口域名。\n        /// </summary>\n        public const string LEGACY_DEFAULT = \"https://open.microapp.bytedance.com/openapi\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 表示抖音小程序服务商平台 API 消息推送事件的基类。\n    /// </summary>\n    public class DouyinMicroAppOpenApiEvent : ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置第三方平台 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"TpAppId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"TpAppId\")]\n        [System.Xml.Serialization.XmlElement(\"TpAppId\", IsNullable = true)]\n        public virtual string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppId\")]\n        [System.Xml.Serialization.XmlElement(\"AppId\", IsNullable = true)]\n        public virtual string? AuthorizerAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"Event\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"Event\")]\n        [System.Xml.Serialization.XmlElement(\"Event\", IsNullable = true)]\n        public virtual string? Event { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件产生时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventTime\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventTime\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        [System.Xml.Serialization.XmlElement(\"EventTime\", IsNullable = true)]\n        public virtual string? EventTimeString { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 抖音小程序服务商平台 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppOpenApiRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音小程序第三方 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppOpenApiClient\"/> 时的 <see cref=\"DouyinMicroAppOpenApiClientOptions.ComponentAppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序第三方的 AccessToken。\n        /// <para>注意：v1、v2 版的 ComponentAccessToken 不可混用。</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? ComponentAccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序授权方 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AuthorizerAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序授权方的 AccessToken。\n        /// <para>注意：v1、v2 版的 AuthorizerAccessToken 不可混用。</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AuthorizerAccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/DouyinMicroAppOpenApiResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    /// <summary>\n    /// 抖音小程序服务商平台 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppOpenApiResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public virtual int ErrorNumber { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        public virtual string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音小程序 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorNumber\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/Auth/ComponentAuthorizedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.AUTHORIZED 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/notify ]]>\n    /// </para>\n    /// </summary>\n    public class ComponentAuthorizedEvent : DouyinMicroAppOpenApiEvent\n    {\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AuthorizationCode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AuthorizationCode\")]\n        [System.Xml.Serialization.XmlElement(\"AuthorizationCode\")]\n        public string AuthorizationCode { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置授权码有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AuthorizationCodeExpiresIn\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AuthorizationCodeExpiresIn\")]\n        [System.Xml.Serialization.XmlElement(\"AuthorizationCodeExpiresIn\")]\n        public long AuthorizationCodeExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppName\")]\n        [System.Xml.Serialization.XmlElement(\"AppName\", IsNullable = true)]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序图标路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppIcon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppIcon\")]\n        [System.Xml.Serialization.XmlElement(\"AppIcon\", IsNullable = true)]\n        public string? AppIconPath { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序公司主体名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"CompanyName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"CompanyName\")]\n        [System.Xml.Serialization.XmlElement(\"CompanyName\", IsNullable = true)]\n        public string? CompanyName { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序超管掩码邮箱。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppSuperAdminEmail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppSuperAdminEmail\")]\n        [System.Xml.Serialization.XmlElement(\"AppSuperAdminEmail\", IsNullable = true)]\n        public string? SuperAdminEmail { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序超管掩码手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppSuperAdminMobile\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppSuperAdminMobile\")]\n        [System.Xml.Serialization.XmlElement(\"AppSuperAdminMobile\", IsNullable = true)]\n        public string? SuperAdminMobileNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/Auth/ComponentPushTicketEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 PUSH.Ticket 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/componentticket ]]>\n    /// </para>\n    /// </summary>\n    public class ComponentPushTicketEvent : DouyinMicroAppOpenApiEvent\n    {\n        /// <summary>\n        /// 获取或设置消息发送方账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"FromUserName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"FromUserName\")]\n        [System.Xml.Serialization.XmlElement(\"FromUserName\")]\n        public string FromUserName { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"MsgType\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"MsgType\")]\n        [System.Xml.Serialization.XmlElement(\"MsgType\")]\n        public string MessageType { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置验证票据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"Ticket\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"Ticket\")]\n        [System.Xml.Serialization.XmlElement(\"Ticket\")]\n        public string Ticket { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置票据生成时间字符串（格式：yyyy-MM-dd HH:mm:ss）\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"CreateTime\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"CreateTime\")]\n        [System.Xml.Serialization.XmlElement(\"CreateTime\")]\n        public string CreateTimeString { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/Auth/ComponentUnauthorizedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.UNAUTHORIZED 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/notify ]]>\n    /// </para>\n    /// </summary>\n    public class ComponentUnauthorizedEvent : DouyinMicroAppOpenApiEvent\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/Auth/ComponentUpdateAuthorizedEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.UPDATE_AUTHORIZED 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/notify ]]>\n    /// </para>\n    /// </summary>\n    public class ComponentUpdateAuthorizedEvent : DouyinMicroAppOpenApiEvent\n    {\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AuthorizationCode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AuthorizationCode\")]\n        [System.Xml.Serialization.XmlElement(\"AuthorizationCode\")]\n        public string AuthorizationCode { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置授权码有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AuthorizationCodeExpiresIn\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AuthorizationCodeExpiresIn\")]\n        [System.Xml.Serialization.XmlElement(\"AuthorizationCodeExpiresIn\")]\n        public long AuthorizationCodeExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/AppNameResetEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APP_NAME_RESET_NOTIFICATION 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-name ]]>\n    /// </para>\n    /// </summary>\n    public class AppNameResetEvent : DouyinMicroAppOpenApiEvent\n    {\n        /// <summary>\n        /// 获取或设置名称重置通知。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AppNameResetNotification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AppNameResetNotification\")]\n        [System.Xml.Serialization.XmlElement(\"AppNameResetNotification\")]\n        public string AppNameResetNotification { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/ModifyAppCategoryEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.MODIFY_APP_CATEGORY 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/add-category ]]> <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/supply-category ]]>\n    /// </para>\n    /// </summary>\n    public class ModifyAppCategoryEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ModifyResult\n            {\n                /// <summary>\n                /// 获取或设置类目 ID 字符串（以逗号分隔）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                [System.Xml.Serialization.XmlElement(\"category\")]\n                public string CategoryIdString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置类目名称字符串（以短横线分隔）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryName\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryName\")]\n                [System.Xml.Serialization.XmlElement(\"categoryName\")]\n                public string CategoryNameString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置修改结果列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ModifyAppCategoryResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ModifyAppCategoryResults\")]\n        [System.Xml.Serialization.XmlElement(\"ModifyAppCategoryResults\", Type = typeof(Types.ModifyResult))]\n        public Types.ModifyResult[] ModifyResultList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/ModifyAppIconEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.MODIFY_APP_ICON 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-icon ]]>\n    /// </para>\n    /// </summary>\n    public class ModifyAppIconEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ModifyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置修改结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ModifyAppIconResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ModifyAppIconResults\")]\n        [System.Xml.Serialization.XmlElement(\"ModifyAppIconResults\")]\n        public Types.ModifyResult ModifyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/ModifyAppIntroductionEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.MODIFY_APP_INTRO 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-intro ]]>\n    /// </para>\n    /// </summary>\n    public class ModifyAppIntroductionEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ModifyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置修改结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ModifyAppIntroResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ModifyAppIntroResults\")]\n        [System.Xml.Serialization.XmlElement(\"ModifyAppIntroResults\")]\n        public Types.ModifyResult ModifyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/ModifyAppNameEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.MODIFY_APP_NAME 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-name ]]>\n    /// </para>\n    /// </summary>\n    public class ModifyAppNameEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ModifyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核建议。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advice\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                [System.Xml.Serialization.XmlElement(\"advice\", IsNullable = true)]\n                public string? AuditAdvice { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置修改结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ModifyAppNameResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ModifyAppNameResults\")]\n        [System.Xml.Serialization.XmlElement(\"ModifyAppNameResults\")]\n        public Types.ModifyResult ModifyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppManagement/PackageAuditEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.PACKAGE_AUDIT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/audit-code ]]>\n    /// </para>\n    /// </summary>\n    public class PackageAuditEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class AuditResult\n            {\n                public static class Types\n                {\n                    public class AuditDetail\n                    {\n                        public static class Types\n                        {\n                            public class ModifyGuide\n                            {\n                                /// <summary>\n                                /// 获取或设置修改指引名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                [System.Xml.Serialization.XmlElement(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置修改指引链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"link\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"link\")]\n                                [System.Xml.Serialization.XmlElement(\"link\")]\n                                public string LinkUrl { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        [System.Xml.Serialization.XmlElement(\"reason\")]\n                        public string RejectReason { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置附件 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detailFile\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detailFile\")]\n                        [System.Xml.Serialization.XmlElement(\"detailFile\", IsNullable = true)]\n                        public string? FileUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"modifyGuide\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"modifyGuide\")]\n                        [System.Xml.Serialization.XmlElement(\"modifyGuide\", IsNullable = true)]\n                        public Types.ModifyGuide? ModifyGuide { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置宿主端英文简称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hostName\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hostName\")]\n                [System.Xml.Serialization.XmlElement(\"hostName\")]\n                public string HostName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置拒绝原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", Type = typeof(string), IsNullable = true)]\n                public string[]? RejectReasonList { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核详细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auditDetail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auditDetail\")]\n                [System.Xml.Serialization.XmlElement(\"auditDetail\", Type = typeof(Types.AuditDetail), IsNullable = true)]\n                public Types.AuditDetail[]? AuditDetailList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置审核结果列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"AuditResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"AuditResults\")]\n        [System.Xml.Serialization.XmlElement(\"AuditResults\", Type = typeof(Types.AuditResult))]\n        public Types.AuditResult[] AuditResultList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/AliasAuditResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.ALIAS_AUDIT_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/alias-search-tag ]]>\n    /// </para>\n    /// </summary>\n    public class AliasAuditResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置别名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alias\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alias\")]\n                [System.Xml.Serialization.XmlElement(\"alias\")]\n                public string Alias { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ApplyCapabilityEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APPLY_CAPACITY 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/video-talent-mount ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/jump-live-room-capacity ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/live-room-status-capacity ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/rt-video-flow-capacity ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/page-layout-custom-capacity ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/capcut-video-template-capacity ]]>\n    /// </para>\n    /// </summary>\n    public class ApplyCapabilityEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置挂载能力标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"capacity_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"capacity_key\")]\n                [System.Xml.Serialization.XmlElement(\"capacity_key\")]\n                public string CapacityKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ApplyLiveCapabilityEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APPLY_LIVE_CAPABILITY 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/live-application ]]>\n    /// </para>\n    /// </summary>\n    public class ApplyLiveCapabilityEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ApplyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置申请结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ApplyLiveCapabilityResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ApplyLiveCapabilityResults\")]\n        [System.Xml.Serialization.XmlElement(\"ApplyLiveCapabilityResults\")]\n        public Types.ApplyResult ApplyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ApplyPhoneNumberCapabilityEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APPLY_PHONE_NUMBER_CAPABILITY 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/phone-number-application ]]>\n    /// </para>\n    /// </summary>\n    public class ApplyPhoneNumberCapabilityEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ApplyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置申请结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ApplyPhoneNumberCapabilityResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ApplyPhoneNumberCapabilityResults\")]\n        [System.Xml.Serialization.XmlElement(\"ApplyPhoneNumberCapabilityResults\")]\n        public Types.ApplyResult ApplyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ApplyShareTemplateEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APPLY_SHARE_TEMPLATE 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/addShareTpl ]]> <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/modifyShareTpl ]]>\n    /// </para>\n    /// </summary>\n    public class ApplyShareTemplateEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ApplyResult\n            {\n                /// <summary>\n                /// 获取或设置模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"templateId\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"templateId\")]\n                [System.Xml.Serialization.XmlElement(\"templateId\")]\n                public string TemplateId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置申请结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ApplyShareTemplateResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ApplyShareTemplateResults\")]\n        [System.Xml.Serialization.XmlElement(\"ApplyShareTemplateResults\")]\n        public Types.ApplyResult ApplyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ApplyVideoCapabilityEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.APPLY_VIDEO_CAPABILITY 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/video-application ]]>\n    /// </para>\n    /// </summary>\n    public class ApplyVideoCapabilityEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class ApplyResult\n            {\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置申请结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ApplyVideoCapabilityResults\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ApplyVideoCapabilityResults\")]\n        [System.Xml.Serialization.XmlElement(\"ApplyVideoCapabilityResults\")]\n        public Types.ApplyResult ApplyResult { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/AwemePermissionAuditResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.AWEME_PERMISSION_AUDIT_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/all/douyin ]]>\n    /// </para>\n    /// </summary>\n    public class AwemePermissionAuditResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置权限 Key。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"permission_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"permission_key\")]\n                [System.Xml.Serialization.XmlElement(\"permission_key\")]\n                public string PermissionKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason_list\")]\n                [System.Xml.Serialization.XmlElement(\"reject_reason_list\", Type = typeof(string), IsNullable = true)]\n                public string[]? RejectReasonList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/AwemeVideoKeywordAuditResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.AWEME_VIDEO_KEYWORD_AUDIT_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/all/aweme-video-keyword ]]>\n    /// </para>\n    /// </summary>\n    public class AwemeVideoKeywordAuditResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置关键词。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"keyword\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n                [System.Xml.Serialization.XmlElement(\"keyword\")]\n                public string Keyword { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason_list\")]\n                [System.Xml.Serialization.XmlElement(\"reject_reason_list\", Type = typeof(string), IsNullable = true)]\n                public string[]? RejectReasonList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/BindAwemeUserEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.BIND_AWEME_USER 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/follow-aweme ]]>\n    /// </para>\n    /// </summary>\n    public class BindAwemeUserEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置绑定类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                [System.Xml.Serialization.XmlElement(\"type\")]\n                public string BindType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n                [System.Xml.Serialization.XmlElement(\"aweme_id\")]\n                public string AwemeId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音号昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                [System.Xml.Serialization.XmlElement(\"user_name\")]\n                public string UserName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置绑定状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n                [System.Xml.Serialization.XmlElement(\"bind_status\")]\n                public int BindStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/CreateSubscribeNotificationTemplateResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.CREATE_SUBSCRIBE_NOTIFICATION_TEMPLATE_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/subscribe-notification-template ]]>\n    /// </para>\n    /// </summary>\n    public class CreateSubscribeNotificationTemplateResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置模板标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                [System.Xml.Serialization.XmlElement(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置关键字列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n                [System.Xml.Serialization.XmlElement(\"keyword_list\", Type = typeof(string))]\n                public string[] KeywordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason_list\")]\n                [System.Xml.Serialization.XmlElement(\"reject_reason_list\", Type = typeof(string), IsNullable = true)]\n                public string[]? RejectReasonList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/ScopeQuotaAuditResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.SCOPE_QUOTA_AUDIT_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/all/scope-quota ]]>\n    /// </para>\n    /// </summary>\n    public class ScopeQuotaAuditResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置作用域。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scope\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n                [System.Xml.Serialization.XmlElement(\"scope\")]\n                public string Scope { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置额度生效开始日期（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_date\")]\n                [System.Xml.Serialization.XmlElement(\"start_date\")]\n                public string StartDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置额度生效结束日期（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n                [System.Xml.Serialization.XmlElement(\"end_date\")]\n                public string EndDateString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置申请的额度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_quota\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_quota\")]\n                [System.Xml.Serialization.XmlElement(\"apply_quota\")]\n                public int ApplyQuota { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason_list\")]\n                [System.Xml.Serialization.XmlElement(\"reject_reason_list\", Type = typeof(string), IsNullable = true)]\n                public string[]? RejectReasonList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/SearchTagAuditResultEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.SEARCH_TAG_AUDIT_RESULT 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/alias-search-tag ]]>\n    /// </para>\n    /// </summary>\n    public class SearchTagAuditResultEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置搜索标签。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_tag\")]\n                [System.Xml.Serialization.XmlElement(\"search_tag\")]\n                public string SearchTag { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                [System.Xml.Serialization.XmlElement(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                [System.Xml.Serialization.XmlElement(\"reason\", IsNullable = true)]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Events/MicroAppOperation/SelfMountBindEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\n{\n    /// <summary>\n    /// <para>表示 EVENT.SELT_MOUNT_BIND 事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/self-mount ]]>\n    /// </para>\n    /// </summary>\n    public class SelfMountBindEvent : DouyinMicroAppOpenApiEvent\n    {\n        public static class Types\n        {\n            public class EventContent\n            {\n                /// <summary>\n                /// 获取或设置挂载能力标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"capacity_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"capacity_key\")]\n                [System.Xml.Serialization.XmlElement(\"capacity_key\")]\n                public string CapacityKey { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n                [System.Xml.Serialization.XmlElement(\"aweme_id\")]\n                public string AwemeId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音号昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                [System.Xml.Serialization.XmlElement(\"user_name\")]\n                public string UserName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置绑定状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n                [System.Xml.Serialization.XmlElement(\"bind_status\")]\n                public int BindStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置事件内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"EventContent\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"EventContent\")]\n        [System.Xml.Serialization.XmlElement(\"EventContent\")]\n        public Types.EventContent EventContent { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientEventExtensions.cs",
    "content": "using System;\nusing System.Xml.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// 为 <see cref=\"DouyinMicroAppOpenApiClient\"/> 提供回调通知事件的扩展方法。\n    /// </summary>\n    public static partial class DouyinMicroAppOpenApiClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppOpenApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEventFromJson<TEvent>(this DouyinMicroAppOpenApiClient client, string webhookJson)\n            where TEvent : DouyinMicroAppOpenApiEvent, new()\n        {\n            return InnerDeserializeEventFromJson<TEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppOpenApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static DouyinMicroAppOpenApiEvent DeserializeEventFromJson(this DouyinMicroAppOpenApiClient client, string webhookJson)\n        {\n            return InnerDeserializeEventFromJson<DouyinMicroAppOpenApiEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 XML 反序列化得到 <see cref=\"DouyinMicroAppOpenApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEventFromXml<TEvent>(this DouyinMicroAppOpenApiClient client, string webhookXml)\n            where TEvent : DouyinMicroAppOpenApiEvent, new()\n        {\n            return InnerDeserializeEventFromXml<TEvent>(client, webhookXml);\n        }\n\n        /// <summary>\n        /// <para>从 XML 反序列化得到 <see cref=\"DouyinMicroAppOpenApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static DouyinMicroAppOpenApiEvent DeserializeEventFromXml(this DouyinMicroAppOpenApiClient client, string webhookXml)\n        {\n            return InnerDeserializeEventFromXml<DouyinMicroAppOpenApiEvent>(client, webhookXml);\n        }\n\n        /// <summary>\n        /// <para>验证回调通知事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/overview-guide/smallprogram/encryption ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignatureFromJson(this DouyinMicroAppOpenApiClient client, string webhookJson)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n\n            ErroredResult result;\n\n            try\n            {\n                InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(webhookJson);\n                bool valid = Utilities.DyMsgCryptor.VerifySignature(\n                    sToken: client.Credentials.PushToken!,\n                    sTimestamp: encryptedEvent.TimestampString,\n                    sNonce: encryptedEvent.Nonce,\n                    sMsgEncrypt: encryptedEvent.EncryptedData,\n                    sMsgSign: encryptedEvent.Signature\n                );\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n\n        /// <summary>\n        /// <para>验证回调通知事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/overview-guide/smallprogram/encryption ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignatureFromXml(this DouyinMicroAppOpenApiClient client, string webhookXml)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n\n            ErroredResult result;\n\n            try\n            {\n                XDocument xdoc = XDocument.Parse(webhookXml);\n                bool valid = Utilities.DyMsgCryptor.VerifySignature(\n                    sToken: client.Credentials.PushToken!,\n                    sTimestamp: xdoc.Root!.Element(\"TimeStamp\")!.Value,\n                    sNonce: xdoc.Root!.Element(\"Nonce\")!.Value,\n                    sMsgEncrypt: xdoc.Root!.Element(\"Encrypt\")!.Value,\n                    sMsgSign: xdoc.Root!.Element(\"MsgSignature\")!.Value\n                );\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n    }\n\n    partial class DouyinMicroAppOpenApiClientEventExtensions\n    {\n        private class InnerEncryptedEvent\n        {\n            [Newtonsoft.Json.JsonProperty(\"Encrypt\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"Encrypt\")]\n            [System.Xml.Serialization.XmlElement(\"Encrypt\")]\n            public string EncryptedData { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"TimeStamp\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"TimeStamp\")]\n            [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n            [System.Xml.Serialization.XmlElement(\"TimeStamp\")]\n            public string TimestampString { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"Nonce\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"Nonce\")]\n            [System.Xml.Serialization.XmlElement(\"Nonce\")]\n            public string Nonce { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"MsgSignature\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"MsgSignature\")]\n            [System.Xml.Serialization.XmlElement(\"MsgSignature\")]\n            public string Signature { get; set; } = default!;\n        }\n\n        private static TEvent InnerDeserializeEventFromJson<TEvent>(DouyinMicroAppOpenApiClient client, string webhookJson)\n            where TEvent : DouyinMicroAppOpenApiEvent\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(webhookJson);\n\n            try\n            {\n                if (webhookJson.Contains(\"\\\"Encrypt\\\"\"))\n                {\n                    InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(webhookJson);\n                    webhookJson = Utilities.DyMsgCryptor.AESDecrypt(cipherText: encryptedEvent.EncryptedData, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);\n                }\n\n                return client.JsonSerializer.Deserialize<TEvent>(webhookJson);\n            }\n            catch (DouyinMicroAppException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n\n        private static TEvent InnerDeserializeEventFromXml<TEvent>(DouyinMicroAppOpenApiClient client, string webhookXml)\n            where TEvent : DouyinMicroAppOpenApiEvent\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookXml is null) throw new ArgumentNullException(webhookXml);\n\n            try\n            {\n                if (webhookXml.Contains(\"<Encrypt>\") && webhookXml.Contains(\"</Encrypt>\"))\n                {\n                    if (!Utilities.DyMsgCryptor.TryParseXml(webhookXml, out string encryptedXml))\n                        throw new DouyinMicroAppException(\"Failed to decrypt event data, because the encrypted data is empty.\");\n\n                    webhookXml = Utilities.DyMsgCryptor.AESDecrypt(cipherText: encryptedXml, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);\n                }\n\n                return Utilities.XmlHelper.Deserialize<TEvent>(webhookXml);\n            }\n            catch (DouyinMicroAppException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsBasicInfoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsBasicInfoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v2/basic_info/get_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/info-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoGetInfoV2Response> ExecuteOpenAppsBasicInfoGetInfoV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoGetInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v2\", \"basic_info\", \"get_info\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoGetInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v2/basic_info/check_app_name 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/check-name-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoCheckAppNameV2Response> ExecuteOpenAppsBasicInfoCheckAppNameV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoCheckAppNameV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v2\", \"basic_info\", \"check_app_name\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoCheckAppNameV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/basic_info/modify_app_name 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-name-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoModifyAppNameV2Response> ExecuteOpenAppsBasicInfoModifyAppNameV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoModifyAppNameV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"basic_info\", \"modify_app_name\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoModifyAppNameV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/basic_info/modify_app_intro 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-intro-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoModifyAppIntroductionV2Response> ExecuteOpenAppsBasicInfoModifyAppIntroductionV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoModifyAppIntroductionV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"basic_info\", \"modify_app_intro\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoModifyAppIntroductionV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/basic_info/modify_app_icon 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-icon-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoModifyAppIconV2Response> ExecuteOpenAppsBasicInfoModifyAppIconV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoModifyAppIconV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"basic_info\", \"modify_app_icon\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoModifyAppIconV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/basic_info/get_qr_code 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/qrcode-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsBasicInfoGetQrcodeV2Response> ExecuteOpenAppsBasicInfoGetQrcodeV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsBasicInfoGetQrcodeV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"basic_info\", \"get_qr_code\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsBasicInfoGetQrcodeV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsCategoryExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsCategoryExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/category/get_all_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/all-categories-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCategoryGetAllCategoriesV1Response> ExecuteOpenAppsCategoryGetAllCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCategoryGetAllCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"category\", \"get_all_categories\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCategoryGetAllCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/category/get_audit_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/category-audit-info-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCategoryGetAuditCategoriesV1Response> ExecuteOpenAppsCategoryGetAuditCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCategoryGetAuditCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"category\", \"get_audit_categories\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCategoryGetAuditCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/category/add_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/add-category-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCategoryAddCategoriesV1Response> ExecuteOpenAppsCategoryAddCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCategoryAddCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"category\", \"add_categories\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCategoryAddCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/category/del_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/delete-category-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCategoryDeleteCategoriesV1Response> ExecuteOpenAppsCategoryDeleteCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCategoryDeleteCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"category\", \"del_categories\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCategoryDeleteCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/category/supply_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/supply-category-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCategorySupplyCategoriesV1Response> ExecuteOpenAppsCategorySupplyCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCategorySupplyCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"category\", \"supply_categories\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCategorySupplyCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsCreditScoreExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsCreditScoreExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v2/credit_score/get_credit_score 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/credit-score-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsCreditScoreGetCreditScoreV2Response> ExecuteOpenAppsCreditScoreGetCreditScoreV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsCreditScoreGetCreditScoreV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v2\", \"credit_score\", \"get_credit_score\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsCreditScoreGetCreditScoreV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsDomainExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsDomainExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/domain/modify_server_domain 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-domain-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsDomainModifyServerDomainV2Response> ExecuteOpenAppsDomainModifyServerDomainV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsDomainModifyServerDomainV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"domain\", \"modify_server_domain\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsDomainModifyServerDomainV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/domain/modify_webview_domain 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-webview-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsDomainModifyWebviewDomainV2Response> ExecuteOpenAppsDomainModifyWebviewDomainV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsDomainModifyWebviewDomainV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"domain\", \"modify_webview_domain\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsDomainModifyWebviewDomainV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsFileExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppOpenApiClientExecuteAppsFileExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v2/file/upload_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/uploadMaterial-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsFileUploadMaterialV2Response> ExecuteOpenAppsFileUploadMaterialV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsFileUploadMaterialV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + (request.MaterialType == 8 ? \".pdf\" : \".jpg\");\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v2\", \"file\", \"upload_material\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.MaterialType.ToString())), \"material_type\");\n\n            return await client.SendFlurlRequestAsync<Models.OpenAppsFileUploadMaterialV2Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsICPRecordExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppOpenApiClientExecuteAppsICPRecordExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/icp_record/upload_image/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/upload-image ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordUploadImageV1Response> ExecuteOpenAppsICPRecordUploadImageV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordUploadImageV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"icp_record\", \"upload_image/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"image\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.ImageType.ToString())), \"image_type\");\n\n            return await client.SendFlurlRequestAsync<Models.OpenAppsICPRecordUploadImageV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/get_facial_recognition_url/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/get-facial-recognition-url ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordGetFacialRecognitionUrlV1Response> ExecuteOpenAppsICPRecordGetFacialRecognitionUrlV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordGetFacialRecognitionUrlV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"get_facial_recognition_url/\")\n                .SetQueryParam(\"province_code\", request.ProvinceCode)\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordGetFacialRecognitionUrlV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/icp_record/send_facial_recognition_notify/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/send-facial-recognition-notify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordSendFacialRecognitionNotifyV1Response> ExecuteOpenAppsICPRecordSendFacialRecognitionNotifyV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordSendFacialRecognitionNotifyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"icp_record\", \"send_facial_recognition_notify/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordSendFacialRecognitionNotifyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_facial_recognition_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-facial-recognition-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryFacialRecognitionStatusV1Response> ExecuteOpenAppsICPRecordQueryFacialRecognitionStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryFacialRecognitionStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_facial_recognition_status/\")\n                .SetQueryParam(\"facial_recognition_token\", request.FacialRecognitionToken)\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryFacialRecognitionStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_corp_type_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-corp-type-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryCorpTypeListV1Response> ExecuteOpenAppsICPRecordQueryCorpTypeListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryCorpTypeListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_corp_type_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryCorpTypeListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_region_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-region-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryRegionListV1Response> ExecuteOpenAppsICPRecordQueryRegionListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryRegionListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_region_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryRegionListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_incharge_people_credentials_type_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-incharge-people-credentials-type-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Response> ExecuteOpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_incharge_people_credentials_type_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_service_content_type_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-service-content-type-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryServiceContentTypeListV1Response> ExecuteOpenAppsICPRecordQueryServiceContentTypeListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryServiceContentTypeListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_service_content_type_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryServiceContentTypeListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_pre_approval_item_type_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-pre-approval-item-type-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryPreApprovalItemTypeListV1Response> ExecuteOpenAppsICPRecordQueryPreApprovalItemTypeListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryPreApprovalItemTypeListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_pre_approval_item_type_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryPreApprovalItemTypeListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/icp_record/query_record_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/query-record-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordQueryRecordStatusV1Response> ExecuteOpenAppsICPRecordQueryRecordStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordQueryRecordStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"icp_record\", \"query_record_status/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordQueryRecordStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/icp_record/submit_record_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/icp-record/submit-record-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsICPRecordSubmitRecordInfoV1Response> ExecuteOpenAppsICPRecordSubmitRecordInfoV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsICPRecordSubmitRecordInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"icp_record\", \"submit_record_info/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsICPRecordSubmitRecordInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsMicroAppExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsMicroAppExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/microapp/code2session/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/login/code2session-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsMicroAppCode2SessionV1Response> ExecuteOpenAppsMicroAppCode2SessionV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsMicroAppCode2SessionV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"microapp\", \"code2session/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsMicroAppCode2SessionV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsPackageVersionExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsPackageVersionExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/package_version/upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/upload-code-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionUploadV1Response> ExecuteOpenAppsPackageVersionUploadV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"package_version\", \"upload/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/package_version/get_audit_hosts/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/audit-hosts-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionGetAuditHostsV1Response> ExecuteOpenAppsPackageVersionGetAuditHostsV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionGetAuditHostsV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"package_version\", \"get_audit_hosts/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionGetAuditHostsV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/package_version/audit/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/audit-code-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionAuditV1Response> ExecuteOpenAppsPackageVersionAuditV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionAuditV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"package_version\", \"audit/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionAuditV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/package_version/revoke_audit/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/revoke-audit-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionRevokeAuditV1Response> ExecuteOpenAppsPackageVersionRevokeAuditV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionRevokeAuditV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"package_version\", \"revoke_audit/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionRevokeAuditV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/package_version/release/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/release-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionReleaseV1Response> ExecuteOpenAppsPackageVersionReleaseV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionReleaseV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"package_version\", \"release/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionReleaseV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /apps/v1/package_version/rollback/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/rollback-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionRollbackV1Response> ExecuteOpenAppsPackageVersionRollbackV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionRollbackV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"apps\", \"v1\", \"package_version\", \"rollback/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionRollbackV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v1/package_version/versions/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/versions-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsPackageVersionGetVersionsV1Response> ExecuteOpenAppsPackageVersionGetVersionsV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsPackageVersionGetVersionsV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v1\", \"package_version\", \"versions/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsPackageVersionGetVersionsV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteAppsTrialExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteAppsTrialExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /apps/v2/trial/get_trial_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/trial-info-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAppsTrialGetTrialInfoV2Response> ExecuteOpenAppsTrialGetTrialInfoV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAppsTrialGetTrialInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"apps\", \"v2\", \"trial\", \"get_trial_info\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAppsTrialGetTrialInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteLegacyAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteLegacyAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/oauth/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authorizeraccesstoken ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authorizerrefreshtoken ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiOAuthTokenV1Response> ExecuteOpenApiOAuthTokenV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiOAuthTokenV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"oauth\", \"token\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"oauth\", \"token\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"grant_type\", request.GrantType)\n                .SetQueryParam(\"authorization_code\", request.AuthorizationCode)\n                .SetQueryParam(\"authorizer_refresh_token\", request.AuthorizerRefreshToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiOAuthTokenV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/auth/tp/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/componentaccesstoken ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiAuthThirdPartyTokenV1Response> ExecuteOpenApiAuthThirdPartyTokenV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiAuthThirdPartyTokenV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppSecret is null)\n                request.ComponentAppSecret = client.Credentials.ComponentAppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"auth\", \"tp\", \"token\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"auth\", \"tp\", \"token\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_appsecret\", request.ComponentAppSecret)\n                .SetQueryParam(\"component_ticket\", request.ComponentTicket);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiAuthThirdPartyTokenV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v2/auth/pre_auth_code 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/preauthcode ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiAuthPreAuthCodeV2Response> ExecuteOpenApiAuthPreAuthCodeV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiAuthPreAuthCodeV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v2\", \"auth\", \"pre_auth_code\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v2\", \"auth\", \"pre_auth_code\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiAuthPreAuthCodeV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v2/auth/gen_link 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/genlink ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiAuthGenerateLinkV2Response> ExecuteOpenApiAuthGenerateLinkV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiAuthGenerateLinkV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v2\", \"auth\", \"gen_link\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v2\", \"auth\", \"gen_link\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiAuthGenerateLinkV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/auth/retrieve 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/findauthorizationcode ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiAuthRetrieveV1Response> ExecuteOpenApiAuthRetrieveV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiAuthRetrieveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"auth\", \"retrieve\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"auth\", \"retrieve\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"authorization_appid\", request.AuthorizerAppId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiAuthRetrieveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteLegacyMicroAppExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppOpenApiClientExecuteLegacyMicroAppExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/code2session 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/login/code2session ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-04-08 下线。\")]\n        public static async Task<Models.OpenApiMicroAppCode2SessionV1Response> ExecuteOpenApiMicroAppCode2SessionV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppCode2SessionV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"code2session\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"code2session\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken)\n                .SetQueryParam(\"code\", request.Code)\n                .SetQueryParam(\"anonymous_code\", request.AnoymousCode);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppCode2SessionV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/upload_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/uploadMaterial ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppUploadMaterialV1Response> ExecuteOpenApiMicroAppUploadMaterialV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppUploadMaterialV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + (request.MaterialType == 8 ? \".pdf\" : \".jpg\");\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"upload_material\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"upload_material\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.MaterialType.ToString())), \"material_type\");\n\n            return await client.SendFlurlRequestAsync<Models.OpenApiMicroAppUploadMaterialV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region App\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppInfoV1Response> ExecuteOpenApiMicroAppAppInfoV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"info\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/qrcode 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/qrcode ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppQrcodeV1Response> ExecuteOpenApiMicroAppAppQrcodeV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppQrcodeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"qrcode\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"qrcode\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppQrcodeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/check_app_name 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/check-name ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppCheckAppNameV1Response> ExecuteOpenApiMicroAppAppCheckAppNameV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppCheckAppNameV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"check_app_name\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"check_app_name\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken)\n                .SetQueryParam(\"app_name\", request.AppName);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppCheckAppNameV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/modify_app_name 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-name ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppModifyAppNameV1Response> ExecuteOpenApiMicroAppAppModifyAppNameV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppModifyAppNameV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"modify_app_name\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"modify_app_name\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppModifyAppNameV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/modify_app_intro 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-intro ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppModifyAppIntroductionV1Response> ExecuteOpenApiMicroAppAppModifyAppIntroductionV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppModifyAppIntroductionV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"modify_app_intro\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"modify_app_intro\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppModifyAppIntroductionV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/modify_app_icon 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-icon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppModifyAppIconV1Response> ExecuteOpenApiMicroAppAppModifyAppIconV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppModifyAppIconV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"modify_app_icon\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"modify_app_icon\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppModifyAppIconV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/all_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/all-categories ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppAllCategoriesV1Response> ExecuteOpenApiMicroAppAppAllCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppAllCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"all_categories\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"all_categories\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppAllCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/category-audit-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppCategoriesV1Response> ExecuteOpenApiMicroAppAppCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"categories\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"categories\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/add_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/add-category ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppAddCategoriesV1Response> ExecuteOpenApiMicroAppAppAddCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppAddCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"add_categories\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"add_categories\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppAddCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/del_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/delete-category ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppDeleteCategoriesV1Response> ExecuteOpenApiMicroAppAppDeleteCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppDeleteCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"del_categories\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"del_categories\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppDeleteCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/supply_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/supply-category ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppSupplyCategoriesV1Response> ExecuteOpenApiMicroAppAppSupplyCategoriesV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppSupplyCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"supply_categories\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"supply_categories\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppSupplyCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/modify_server_domain 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-domain ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppModifyServerDomainV1Response> ExecuteOpenApiMicroAppAppModifyServerDomainV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppModifyServerDomainV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"modify_server_domain\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"modify_server_domain\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppModifyServerDomainV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/app/modify_webview_domain 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/modify-webview ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppModifyWebviewDomainV1Response> ExecuteOpenApiMicroAppAppModifyWebviewDomainV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppModifyWebviewDomainV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"app\", \"modify_webview_domain\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"modify_webview_domain\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppModifyWebviewDomainV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/quality_rating 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/quality-rating ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2023-10-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppQualityRatingV1Response> ExecuteOpenApiMicroAppAppQualityRatingV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppQualityRatingV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"quality_rating\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"quality_rating\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppQualityRatingV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/app/credit_score 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/credit-score ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiMicroAppAppCreditScoreV1Response> ExecuteOpenApiMicroAppAppCreditScoreV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppAppCreditScoreV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"app\", \"credit_score\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"app\", \"credit_score\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppAppCreditScoreV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Operation\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/operation/video_application_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/video-application-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationVideoApplicationStatusV1Response> ExecuteOpenApiMicroAppOperationVideoApplicationStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationVideoApplicationStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"operation\", \"video_application_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"video_application_status\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationVideoApplicationStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/video_application 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/video-application ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationVideoApplicationV1Response> ExecuteOpenApiMicroAppOperationVideoApplicationV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationVideoApplicationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"video_application\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"video_application\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationVideoApplicationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/operation/live_application_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/live-application-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationLiveApplicationStatusV1Response> ExecuteOpenApiMicroAppOperationLiveApplicationStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationLiveApplicationStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"operation\", \"live_application_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"live_application_status\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationLiveApplicationStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/live_application 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/live-application ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationLiveApplicationV1Response> ExecuteOpenApiMicroAppOperationLiveApplicationV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationLiveApplicationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"live_application\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"live_application\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationLiveApplicationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/operation/phone_number_application_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/phone-number-application-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Response> ExecuteOpenApiMicroAppOperationPhoneNumberApplicationStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"operation\", \"phone_number_application_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"phone_number_application_status\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/phone_number_application 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/phone-number-application ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationPhoneNumberApplicationV1Response> ExecuteOpenApiMicroAppOperationPhoneNumberApplicationV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationPhoneNumberApplicationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"phone_number_application\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"phone_number_application\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationPhoneNumberApplicationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/operation/share_tpl_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/shareTplList ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationShareTemplateListV1Response> ExecuteOpenApiMicroAppOperationShareTemplateListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationShareTemplateListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"operation\", \"share_tpl_list\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"share_tpl_list\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationShareTemplateListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/add_share_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/addShareTpl ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationAddShareTemplateV1Response> ExecuteOpenApiMicroAppOperationAddShareTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationAddShareTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"add_share_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"add_share_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationAddShareTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/modify_share_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/modifyShareTpl ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationModifyShareTemplateV1Response> ExecuteOpenApiMicroAppOperationModifyShareTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationModifyShareTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"modify_share_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"modify_share_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationModifyShareTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/del_share_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/delShareTpl ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationDeleteShareTemplateV1Response> ExecuteOpenApiMicroAppOperationDeleteShareTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationDeleteShareTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"del_share_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"del_share_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationDeleteShareTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/set_default_share_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/setDefaultShareTpl ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationSetDefaultShareTemplateV1Response> ExecuteOpenApiMicroAppOperationSetDefaultShareTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationSetDefaultShareTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"set_default_share_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"set_default_share_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationSetDefaultShareTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/operation/add_shop_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/add-shop-material ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationAddShopMaterialV1Response> ExecuteOpenApiMicroAppOperationAddShopMaterialV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationAddShopMaterialV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"operation\", \"add_shop_material\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"add_shop_material\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationAddShopMaterialV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/operation/query_shop_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/query-shop-material ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiMicroAppOperationQueryShopMaterialV1Response> ExecuteOpenApiMicroAppOperationQueryShopMaterialV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppOperationQueryShopMaterialV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"operation\", \"query_shop_material\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"operation\", \"query_shop_material\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken)\n                .SetQueryParam(\"supplier_ext_id\", request.SupplierExternalId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppOperationQueryShopMaterialV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Package\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/package/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/upload-code ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageUploadV1Response> ExecuteOpenApiMicroAppPackageUploadV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"package\", \"upload\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"upload\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/package/audit_hosts 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/audit-hosts ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageAuditHostsV1Response> ExecuteOpenApiMicroAppPackageAuditHostsV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageAuditHostsV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"package\", \"audit_hosts\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"audit_hosts\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageAuditHostsV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v2/microapp/package/audit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/audit-code ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageAuditV2Response> ExecuteOpenApiMicroAppPackageAuditV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageAuditV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v2\", \"microapp\", \"package\", \"audit\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v2\", \"microapp\", \"package\", \"audit\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageAuditV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/package/revoke_audit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/revoke-audit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageRevokeAuditV1Response> ExecuteOpenApiMicroAppPackageRevokeAuditV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageRevokeAuditV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"package\", \"revoke_audit\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"revoke_audit\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageRevokeAuditV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/package/release 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/release ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageReleaseV1Response> ExecuteOpenApiMicroAppPackageReleaseV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageReleaseV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"package\", \"release\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"release\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageReleaseV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/microapp/package/rollback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/rollback ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageRollbackV1Response> ExecuteOpenApiMicroAppPackageRollbackV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageRollbackV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"microapp\", \"package\", \"rollback\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"rollback\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageRollbackV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/microapp/package/versions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/versions ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n        public static async Task<Models.OpenApiMicroAppPackageVersionsV1Response> ExecuteOpenApiMicroAppPackageVersionsV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiMicroAppPackageVersionsV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"microapp\", \"package\", \"versions\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"microapp\", \"package\", \"versions\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"authorizer_access_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiMicroAppPackageVersionsV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteLegacySettleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteLegacySettleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/settle/pre_check 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/developer-settle/predict-check ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiSettlePreCheckV1Response> ExecuteOpenApiSettlePreCheckV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiSettlePreCheckV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"settle\", \"pre_check\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"settle\", \"pre_check\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiSettlePreCheckV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/settle/apply 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/developer-settle/settle-apply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiSettleApplyV1Response> ExecuteOpenApiSettleApplyV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiSettleApplyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"settle\", \"apply\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"settle\", \"apply\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiSettleApplyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/settle/get_apply_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/developer-settle/get-apply-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiSettleGetApplyStatusV1Response> ExecuteOpenApiSettleGetApplyStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiSettleGetApplyStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"settle\", \"get_apply_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"settle\", \"get_apply_status\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"apply_id\", request.ApplyId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiSettleGetApplyStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteLegacyThirdPartyExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppOpenApiClientExecuteLegacyThirdPartyExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/auth_app_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authapplist ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyAuthAppListV1Response> ExecuteOpenApiThirdPartyAuthAppListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyAuthAppListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"auth_app_list\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"auth_app_list\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyAuthAppListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/tp/upload_pic_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/upload-pic-material ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiThirdPartyUploadPictureMaterialV1Response> ExecuteOpenApiThirdPartyUploadPictureMaterialV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyUploadPictureMaterialV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"tp\", \"upload_pic_material\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"upload_pic_material\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.MaterialType.ToString())), \"material_type\");\n\n            return await client.SendFlurlRequestAsync<Models.OpenApiThirdPartyUploadPictureMaterialV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Domain\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/download/webview_file 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/domain/download ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyDownloadWebviewFileV1Response> ExecuteOpenApiThirdPartyDownloadWebviewFileV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyDownloadWebviewFileV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"download\", \"webview_file\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"download\", \"webview_file\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyDownloadWebviewFileV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region POI\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/tp/poi/supplier/match 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/supplier-match ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOISupplierMatchV1Response> ExecuteOpenApiThirdPartyPOISupplierMatchV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOISupplierMatchV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"tp\", \"poi\", \"supplier\", \"match\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"supplier\", \"match\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOISupplierMatchV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/poi/supplier/query/match_task 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/query-match-task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOISupplierQueryMatchTaskV1Response> ExecuteOpenApiThirdPartyPOISupplierQueryMatchTaskV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOISupplierQueryMatchTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"poi\", \"supplier\", \"query\", \"match_task\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"supplier\", \"query\", \"match_task\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"task_ids\", string.Join(\",\", request.TaskIdList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOISupplierQueryMatchTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/poi/supplier/query/match 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/supplier-query-match ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOISupplierQueryMatchV1Response> ExecuteOpenApiThirdPartyPOISupplierQueryMatchV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOISupplierQueryMatchV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"poi\", \"supplier\", \"query\", \"match\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"supplier\", \"query\", \"match\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"supplier_ext_ids\", string.Join(\",\", request.SupplierExternalIds));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOISupplierQueryMatchV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/tp/poi/supplier/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/supplier-sync ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOISupplierSyncV1Response> ExecuteOpenApiThirdPartyPOISupplierSyncV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOISupplierSyncV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"tp\", \"poi\", \"supplier\", \"sync\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"supplier\", \"sync\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOISupplierSyncV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/poi/supplier/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/supplier-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOISupplierQueryV1Response> ExecuteOpenApiThirdPartyPOISupplierQueryV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOISupplierQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"poi\", \"supplier\", \"query\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"supplier\", \"query\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"supplier_ext_id\", request.SupplierExternalId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOISupplierQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/poi/base/query/amap 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/thirdparty/API/tp/supplier-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenApiThirdPartyPOIBaseQueryAMapV1Response> ExecuteOpenApiThirdPartyPOIBaseQueryAMapV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyPOIBaseQueryAMapV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"poi\", \"base\", \"query\", \"amap\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"poi\", \"base\", \"query\", \"amap\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken)\n                .SetQueryParam(\"amap_id\", request.AMapId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyPOIBaseQueryAMapV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Template\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/template/get_tpl_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/tpl-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiThirdPartyTemplateGetTemplateListV1Response> ExecuteOpenApiThirdPartyTemplateGetTemplateListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyTemplateGetTemplateListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"template\", \"get_tpl_list\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"template\", \"get_tpl_list\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyTemplateGetTemplateListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /v1/tp/template/get_tpl_app_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/tpl-app-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiThirdPartyTemplateGetTemplateAppListV1Response> ExecuteOpenApiThirdPartyTemplateGetTemplateAppListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyTemplateGetTemplateAppListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1\", \"tp\", \"template\", \"get_tpl_app_list\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"template\", \"get_tpl_app_list\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyTemplateGetTemplateAppListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/tp/template/add_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/add ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiThirdPartyTemplateAddTemplateV1Response> ExecuteOpenApiThirdPartyTemplateAddTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyTemplateAddTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"tp\", \"template\", \"add_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"template\", \"add_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyTemplateAddTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /v1/tp/template/del_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/delete ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n        public static async Task<Models.OpenApiThirdPartyTemplateDeleteTemplateV1Response> ExecuteOpenApiThirdPartyTemplateDeleteTemplateV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenApiThirdPartyTemplateDeleteTemplateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"v1\", \"tp\", \"template\", \"del_tpl\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"v1\", \"tp\", \"template\", \"del_tpl\"))\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_access_token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenApiThirdPartyTemplateDeleteTemplateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecutePlatformWebhookExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecutePlatformWebhookExtensions\n    {\n        #region Webhook\n        /// <summary>\n        /// <para>异步调用 [GET] /platform/v1/webhook/reset_secret/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/webhook-reset-secret ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenPlatformWebhookResetSecretV1Response> ExecuteOpenPlatformWebhookResetSecretV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenPlatformWebhookResetSecretV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"platform\", \"v1\", \"webhook\", \"reset_secret/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenPlatformWebhookResetSecretV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /platform/v1/webhook/save_callback_url/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/webhook-save-callbackurl ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenPlatformWebhookSaveCallbackUrlV1Response> ExecuteOpenPlatformWebhookSaveCallbackUrlV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenPlatformWebhookSaveCallbackUrlV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"platform\", \"v1\", \"webhook\", \"save_callback_url/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenPlatformWebhookSaveCallbackUrlV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /platform/v1/webhook/event_status_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/webhook-get-eventlist ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenPlatformWebhookEventStatusListV1Response> ExecuteOpenPlatformWebhookEventStatusListV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenPlatformWebhookEventStatusListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"platform\", \"v1\", \"webhook\", \"event_status_list/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenPlatformWebhookEventStatusListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /platform/v1/webhook/update_event_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/webhook-update-eventstatus ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenPlatformWebhookUpdateEventStatusV1Response> ExecuteOpenPlatformWebhookUpdateEventStatusV1Async(this DouyinMicroAppOpenApiClient client, Models.OpenPlatformWebhookUpdateEventStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"platform\", \"v1\", \"webhook\", \"update_event_status/\")\n                .WithHeader(\"access-token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenPlatformWebhookUpdateEventStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteTpAppAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteTpAppAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /openapi/v2/auth/tp/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/componentaccesstoken-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenAuthThirdPartyTokenV2Response> ExecuteOpenAuthThirdPartyTokenV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenAuthThirdPartyTokenV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppId is null)\n                request.ComponentAppId = client.Credentials.ComponentAppId;\n\n            if (request.ComponentAppSecret is null)\n                request.ComponentAppSecret = client.Credentials.ComponentAppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"openapi\", \"v2\", \"auth\", \"token\")\n                .WithUrl(url => url.RemovePath().AppendPathSegments(\"openapi\", \"v2\", \"auth\", \"token\")) // NOTICE: 特殊入口点\n                .SetQueryParam(\"component_appid\", request.ComponentAppId)\n                .SetQueryParam(\"component_appsecret\", request.ComponentAppSecret)\n                .SetQueryParam(\"component_ticket\", request.ComponentTicket);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenAuthThirdPartyTokenV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /tpapp/v3/auth/gen_link 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/genlink-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppAuthGenerateLinkV3Response> ExecuteOpenTpAppAuthGenerateLinkV3Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppAuthGenerateLinkV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tpapp\", \"v3\", \"auth\", \"gen_link\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppAuthGenerateLinkV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /tpapp/v2/auth/get_auth_token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authorizeraccesstoken-v2 ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authorizerrefreshtoken-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppAuthGetAuthTokenV2Response> ExecuteOpenTpAppAuthGetAuthTokenV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppAuthGetAuthTokenV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"tpapp\", \"v2\", \"auth\", \"get_auth_token\")\n                .SetQueryParam(\"grant_type\", request.GrantType)\n                .SetQueryParam(\"authorization_code\", request.AuthorizationCode)\n                .SetQueryParam(\"authorizer_refresh_token\", request.AuthorizerAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppAuthGetAuthTokenV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /tpapp/v2/auth/retrieve_auth_code 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/findauthorizationcode-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppAuthRetrieveAuthCodeV2Response> ExecuteOpenTpAppAuthRetrieveAuthCodeV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppAuthRetrieveAuthCodeV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tpapp\", \"v2\", \"auth\", \"retrieve_auth_code\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppAuthRetrieveAuthCodeV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /tpapp/v2/auth/get_auth_app_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/authapplist-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppAuthGetAuthAppListV2Response> ExecuteOpenTpAppAuthGetAuthAppListV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppAuthGetAuthAppListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"tpapp\", \"v2\", \"auth\", \"get_auth_app_list\")\n                .SetQueryParam(\"page\", request.PageNumber)\n                .SetQueryParam(\"size\", request.PageSize)\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppAuthGetAuthAppListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteTpAppDomainExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteTpAppDomainExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /tpapp/v2/doamin/get_webview_check_file_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/domain/get-webview-check-file-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppDomainGetWebviewCheckFileInfoV2Response> ExecuteOpenTpAppDomainGetWebviewCheckFileInfoV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppDomainGetWebviewCheckFileInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"tpapp\", \"v2\", \"doamin\", \"get_webview_check_file_info/\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppDomainGetWebviewCheckFileInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteTpAppFileExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppOpenApiClientExecuteTpAppFileExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /tpapp/v2/file/upload_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/upload-pic-material-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppFileUploadMaterialV2Response> ExecuteOpenTpAppFileUploadMaterialV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppFileUploadMaterialV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tpapp\", \"v2\", \"file\", \"upload_material\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.MaterialType.ToString())), \"material_type\");\n\n            return await client.SendFlurlRequestAsync<Models.OpenTpAppFileUploadMaterialV2Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientExecuteTpAppTemplateExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientExecuteTpAppTemplateExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /tpapp/v2/template/get_tpl_app_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/tpl-app-list-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppTemplateGetTemplateAppListV2Response> ExecuteOpenTpAppTemplateGetTemplateAppListV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppTemplateGetTemplateAppListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"tpapp\", \"v2\", \"template\", \"get_tpl_app_list\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppTemplateGetTemplateAppListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /tpapp/v2/template/get_tpl_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/tpl-list-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppTemplateGetTemplateListV2Response> ExecuteOpenTpAppTemplateGetTemplateListV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppTemplateGetTemplateListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"tpapp\", \"v2\", \"template\", \"get_tpl_list\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppTemplateGetTemplateListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /tpapp/v2/template/add_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/add-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppTemplateAddTemplateV2Response> ExecuteOpenTpAppTemplateAddTemplateV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppTemplateAddTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tpapp\", \"v2\", \"template\", \"add_tpl\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppTemplateAddTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /tpapp/v2/template/del_tpl 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/tpl-manage/delete-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OpenTpAppTemplateDeleteTemplateV2Response> ExecuteOpenTpAppTemplateDeleteTemplateV2Async(this DouyinMicroAppOpenApiClient client, Models.OpenTpAppTemplateDeleteTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"tpapp\", \"v2\", \"template\", \"add_tpl\")\n                .WithHeader(\"access-token\", request.ComponentAccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OpenTpAppTemplateDeleteTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Extensions/DouyinMicroAppOpenApiClientParameterExtensions.cs",
    "content": "using Flurl;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public static class DouyinMicroAppOpenApiClientParameterExtensions\n    {\n        private const string BASE_URL = \"https://open.microapp.bytedance.com\";\n\n        /// <summary>\n        /// <para>生成第三方应用服务商授权 URL。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/authorization/createlink ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"preAuthCode\"></param>\n        /// <param name=\"redirectUrl\"></param>\n        /// <returns></returns>\n        public static string GenerateParameterizedUrlForOpenComponentThirdPartyAuthorization(this DouyinMicroAppOpenApiClient client, string preAuthCode, string redirectUrl)\n        {\n            return new Url(BASE_URL)\n                .AppendPathSegments(\"mappconsole\", \"tp\", \"authorization\")\n                .SetQueryParam(\"component_appid\", client.Credentials.ComponentAppId)\n                .SetQueryParam(\"pre_auth_code\", preAuthCode)\n                .SetQueryParam(\"redirect_uri\", redirectUrl)\n                .ToString();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoCheckAppNameV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/basic_info/check_app_name 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoCheckAppNameV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置待检测的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AppName { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoCheckAppNameV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/basic_info/check_app_name 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoCheckAppNameV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoGetInfoV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/basic_info/get_info 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoGetInfoV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoGetInfoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/basic_info/get_info 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoGetInfoV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class NewNameAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_name\")]\n                        public string NewName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_name_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_name_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class NewIntroductionAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_intro\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro\")]\n                        public string NewIntroduction { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_intro_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class NewIconAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon\")]\n                        public string NewIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_icon_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class CategoryAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称（以短横线分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category_name\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n\n                    public class SubjectAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public int SubjectType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置主体名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_name\")]\n                        public string SubjectName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_state\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_state\")]\n                public int AppState { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序简介。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_intro\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_intro\")]\n                public string AppIntroduction { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序图标 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n                public string AppIconUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置新名称审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_name_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_name_audit_info\")]\n                public Types.NewNameAuditInfo? NewNameAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置新简介审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_intro_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_intro_audit_info\")]\n                public Types.NewIntroductionAuditInfo? NewIntroductionAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置新图标审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_icon_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_audit_info\")]\n                public Types.NewIconAuditInfo? NewIconAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务类目审核信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_categories_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_categories_audit_info\")]\n                public Types.CategoryAuditInfo[]? CategoryAuditInfoList { get; set; }\n\n                /// <summary>\n                /// 获取或设置主体审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject_audit_info\")]\n                public Types.SubjectAuditInfo? SubjectAuditInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoGetQrcodeV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/get_qr_code 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoGetQrcodeV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置版本。\n        /// <para>默认值：\"current\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n        public string Version { get; set; } = \"current\";\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string PagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoGetQrcodeV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/get_qr_code 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoGetQrcodeV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置二维码链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qr_code_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qr_code_url\")]\n                public string QrcodeUrl { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppIconV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_icon 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppIconV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序图标路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_icon_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_path\")]\n        public string NewIconPath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppIconV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_icon 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppIconV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppIntroductionV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_intro 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppIntroductionV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro\")]\n        public string NewIntroduction { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppIntroductionV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_intro 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppIntroductionV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppNameV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_name 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppNameV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_name\")]\n        public string NewName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置审核材料路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_file_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_file_path\")]\n        public string? MaterialFilePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsBasicInfo/OpenAppsBasicInfoModifyAppNameV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/basic_info/modify_app_name 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsBasicInfoModifyAppNameV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryAddCategoriesV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/add_categories 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCategoryAddCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class CategoryInfo\n            {\n                public static class Types\n                {\n                    public class Certification\n                    {\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置资质名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置资质文件路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path_list\")]\n                        public IList<string>? FilePathList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                public string CategoryIdString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置服务类目资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_cert\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_cert\")]\n                public IList<Types.Certification>? CertificationList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务类目信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_info\")]\n        public IList<Types.CategoryInfo> CategoryInfoList { get; set; } = new List<Types.CategoryInfo>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryAddCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/add_categories 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCategoryAddCategoriesV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryDeleteCategoriesV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/del_categories 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCategoryDeleteCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n        public IList<string> CategoryIdStringList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryDeleteCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/del_categories 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCategoryDeleteCategoriesV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryGetAllCategoriesV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/category/get_all_categories 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCategoryGetAllCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryGetAllCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/category/get_all_categories 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCategoryGetAllCategoriesV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category\n                    {\n                        public static class Types\n                        {\n                            public class Certification\n                            {\n                                public static class Types\n                                {\n                                    public class Detail\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置资质 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public string Id { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置资质名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置需要的资质汇总列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"relation\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"relation\")]\n                                public string[] RelationList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置需要的资质的详细信息列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                                public Types.Detail[] DetailList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置解释说明。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"explanation\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"explanation\")]\n                                public string Explanation { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置服务类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public int Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目级别。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                        public int Level { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fpid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fpid\")]\n                        public int? FirstCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"spid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"spid\")]\n                        public int? SecondCategoryId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置需要的资质信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certification\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certification\")]\n                        public Types.Certification? Certification { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_list\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryGetAuditCategoriesV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/category/get_audit_categories 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCategoryGetAuditCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategoryGetAuditCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/category/get_audit_categories 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCategoryGetAuditCategoriesV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CategoryAuditInfo\n                    {\n                        public static class Types\n                        {\n                            public class Certification\n                            {\n                                /// <summary>\n                                /// 获取或设置资质 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string Id { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资质名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资质文件路径列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path_list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path_list\")]\n                                public string[]? FilePathList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称字符串（以短横线分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目资质 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_cert_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_cert_ids\")]\n                        public string CertificationIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目资质信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_cert\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_cert\")]\n                        public Types.Certification[] CertificationList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目审核信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_category_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_category_audit_info\")]\n                public Types.CategoryAuditInfo[] CategoryAuditInfoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置剩余修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                public int RemainingTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置本月总共可以修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_change_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_change_limit\")]\n                public int CategoryChangeLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置最多可以设置的服务类目数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_limit\")]\n                public int CategoryTotalLimit { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategorySupplyCategoriesV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/supply_categories 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCategorySupplyCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class CategoryInfo \n            {\n                public static class Types\n                {\n                    public class Certification : OpenAppsCategoryAddCategoriesV1Request.Types.CategoryInfo.Types.Certification\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                public string CategoryIdString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置服务类目资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_cert\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_cert\")]\n                public IList<Types.Certification>? CertificationList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务类目信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_info\")]\n        public IList<Types.CategoryInfo> CategoryInfoList { get; set; } = new List<Types.CategoryInfo>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCategory/OpenAppsCategorySupplyCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/category/supply_categories 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCategorySupplyCategoriesV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCreditScore/OpenAppsCreditScoreGetCreditScoreV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/credit_score/get_credit_score 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsCreditScoreGetCreditScoreV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsCreditScore/OpenAppsCreditScoreGetCreditScoreV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/credit_score/get_credit_score 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsCreditScoreGetCreditScoreV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置信用分分值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credit_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credit_score\")]\n                public int CreditScore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsDomain/OpenAppsDomainModifyServerDomainV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/domain/modify_server_domain 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsDomainModifyServerDomainV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置执行动作。\n        /// <para>默认值：\"get\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = \"get\";\n\n        /// <summary>\n        /// 获取或设置 HTTP 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request\")]\n        public IList<string>? RequestDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 WebSocket 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"socket\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"socket\")]\n        public IList<string>? SocketDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"upload\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"upload\")]\n        public IList<string>? UploadDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download\")]\n        public IList<string>? DownloadDomainList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsDomain/OpenAppsDomainModifyServerDomainV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/domain/modify_server_domain 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsDomainModifyServerDomainV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 HTTP 域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"request\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"request\")]\n                public string[]? RequestDomainList { get; set; }\n\n                /// <summary>\n                /// 获取或设置 WebSocket 域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"socket\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"socket\")]\n                public string[]? SocketDomainList { get; set; }\n\n                /// <summary>\n                /// 获取或设置上传域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"upload\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"upload\")]\n                public string[]? UploadDomainList { get; set; }\n\n                /// <summary>\n                /// 获取或设置下载域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"download\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"download\")]\n                public string[]? DownloadDomainList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data? Data { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsDomain/OpenAppsDomainModifyWebviewDomainV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/domain/modify_webview_domain 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsDomainModifyWebviewDomainV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置执行动作。\n        /// <para>默认值：\"get\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = \"get\";\n\n        /// <summary>\n        /// 获取或设置 Webview 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"webview\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"webview\")]\n        public IList<string>? WebviewDomainList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsDomain/OpenAppsDomainModifyWebviewDomainV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/domain/modify_webview_domain 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsDomainModifyWebviewDomainV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 Webview 域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"webview\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"webview\")]\n                public string[]? WebviewDomainList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data? Data { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsFile/OpenAppsFileUploadMaterialV2Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/file/upload_material 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsFileUploadMaterialV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置上传文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置上传文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsFile/OpenAppsFileUploadMaterialV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v2/file/upload_material 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsFileUploadMaterialV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordGetFacialRecognitionUrlV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/get_facial_recognition_url/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordGetFacialRecognitionUrlV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProvinceCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordGetFacialRecognitionUrlV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/get_facial_recognition_url/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordGetFacialRecognitionUrlV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置人证核验 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"facial_recognition_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"facial_recognition_token\")]\n                public string FacialRecognitionToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置人证核验链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"facial_recognition_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"facial_recognition_url\")]\n                public string FacialRecognitionUrl { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryCorpTypeListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_corp_type_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryCorpTypeListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryCorpTypeListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_corp_type_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryCorpTypeListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CorpTypeInfo\n                    {\n                        public static class Types\n                        {\n                            public class CredentialsTypeInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置证件类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"credentials_type_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_id\")]\n                                public int CredentialsTypeInfoId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置证件类型名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"credentials_type_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_name\")]\n                                public string CredentialsTypeInfoName { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"corp_type_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"corp_type_id\")]\n                        public int CorpTypeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置主体类型名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"corp_type_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"corp_type_name\")]\n                        public string CorpTypeName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置证件类型列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"credentials_type_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_list\")]\n                        public Types.CredentialsTypeInfo[]? CredentialsTypeList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置主体类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"corp_type_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"corp_type_list\")]\n                public Types.CorpTypeInfo[] CorpTypeList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryFacialRecognitionStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_facial_recognition_status/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryFacialRecognitionStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置人证核验 Token。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string FacialRecognitionToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryFacialRecognitionStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_facial_recognition_status/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryFacialRecognitionStatusV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置人证核验状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"facial_recognition_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"facial_recognition_status\")]\n                public int FacialRecognitionStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_incharge_people_credentials_type_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_incharge_people_credentials_type_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CredentialsTypeInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置证件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"credentials_type_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_id\")]\n                        public int CredentialsTypeInfoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置证件类型名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"credentials_type_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_name\")]\n                        public string CredentialsTypeInfoName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置证件类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_type_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type_list\")]\n                public Types.CredentialsTypeInfo[]? CredentialsTypeList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryPreApprovalItemTypeListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_pre_approval_item_type_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryPreApprovalItemTypeListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryPreApprovalItemTypeListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_pre_approval_item_type_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryPreApprovalItemTypeListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PreApprovalItemTypeInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置前置审批类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_approval_item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_item_id\")]\n                        public int PreApprovalItemTypeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置前置审批类型名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_approval_item_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_item_name\")]\n                        public string PreApprovalItemTypeName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置前置审批类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pre_approval_item_type_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_item_type_list\")]\n                public Types.PreApprovalItemTypeInfo[] PreApprovalItemTypeList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryRecordStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_record_status/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryRecordStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryRecordStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_record_status/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryRecordStatusV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置备案状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置失败原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"region_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"region_list\")]\n                public string[]? RejectReasonList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryRegionListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_region_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryRegionListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryRegionListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_region_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryRegionListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Region\n                    {\n                        /// <summary>\n                        /// 获取或设置区域编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string Code { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区域名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置区域类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置子区域列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_region\")]\n                        public Region[]? Children { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置区域列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"region_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"region_list\")]\n                public Types.Region[] RegionList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryServiceContentTypeListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_service_content_type_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryServiceContentTypeListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordQueryServiceContentTypeListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/icp_record/query_service_content_type_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordQueryServiceContentTypeListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ServiceContentTypeInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置服务内容类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_content_type_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_content_type_id\")]\n                        public int ServiceContentTypeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务内容类型名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_content_type_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_content_type_name\")]\n                        public string ServiceContentTypeName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置子服务内容类型列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_service_content_type_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_service_content_type_list\")]\n                        public ServiceContentTypeInfo[]? SubServiceContentTypeList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务内容类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_content_type_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_content_type_list\")]\n                public Types.ServiceContentTypeInfo[] ServiceContentTypeList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordSendFacialRecognitionNotifyV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/send_facial_recognition_notify/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordSendFacialRecognitionNotifyV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n        public string ProvinceCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序负责人手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_incharge_people_phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_incharge_people_phone\")]\n        public string PhoneNumber { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordSendFacialRecognitionNotifyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/send_facial_recognition_notify/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordSendFacialRecognitionNotifyV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置人证核验 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"facial_recognition_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"facial_recognition_token\")]\n                public string FacialRecognitionToken { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordSubmitRecordInfoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/submit_record_info/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordSubmitRecordInfoV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class Material\n            {\n                /// <summary>\n                /// 获取或设置资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = string.Empty;\n            }\n\n            public class CorpInfo\n            {\n                /// <summary>\n                /// 获取或设置主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"corp_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"corp_type\")]\n                public int CorpType { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n                public string ProvinceCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置省份名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                public string ProvinceName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置城市编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n                public string CityCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置城市名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                public string CityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置区县编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                public string DistrictCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置区县名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"region_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"region_name\")]\n                public string DistrictName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置通信地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"communication_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"communication_address\")]\n                public string CommunicationAddress { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_type\")]\n                public int CredentialsType { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_address\")]\n                public string CredentialsAddress { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_name\")]\n                public string CredentialsName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_number\")]\n                public string CredentialsNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件材料。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"credentials_pic\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"credentials_pic\")]\n                public Material CredentialsMaterial { get; set; } = new Material();\n\n                /// <summary>\n                /// 获取或设置负责人证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_type\")]\n                public int InchargePeopleCredentialsType { get; set; }\n\n                /// <summary>\n                /// 获取或设置负责人证件编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_number\")]\n                public string InchargePeopleCredentialsNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人证件正面材料。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_front\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_front\")]\n                public Material InchargePeopleCredentialsFrontMaterial { get; set; } = new Material();\n\n                /// <summary>\n                /// 获取或设置负责人证件背面材料。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_back\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_back\")]\n                public Material InchargePeopleCredentialsBackMaterial { get; set; } = new Material();\n\n                /// <summary>\n                /// 获取或设置负责人证件是否有有效期。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_has_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_has_end_time\")]\n                public bool? InchargePeopleCredentialsHasEndTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置负责人证件有效开始日期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_valid_start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_valid_start_time\")]\n                public long? InchargePeopleCredentialsValidStartTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置负责人证件有效结束日期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_credentials_valid_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_credentials_valid_end_time\")]\n                public long? InchargePeopleCredentialsValidEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置负责人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_name\")]\n                public string InchargePeopleName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_email\")]\n                public string InchargePeopleEmail { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_phone\")]\n                public string InchargePeoplePhoneNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人应急手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_emergency_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_emergency_phone\")]\n                public string InchargePeopleEmergencyPhoneNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人授权书材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"corp_authority_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"corp_authority_letter\")]\n                public IList<Material>? CorpAuthorityLetterMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置主办单位备案承诺书材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"corp_commitment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"corp_commitment\")]\n                public IList<Material>? CorpCommitmentMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置主办单位其他材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"corp_other_materials\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"corp_other_materials\")]\n                public IList<Material>? CorpOtherMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置备注信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string? Remark { get; set; }\n            }\n\n            public class AppInfo\n            {\n                public static class Types\n                {\n                    public class PreApproval\n                    {\n                        /// <summary>\n                        /// 获取或设置前置审核项 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_approval_item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_item_id\")]\n                        public int PreApprovalTypeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置前置审批编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_approval_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_number\")]\n                        public string? PreApprovalNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置前置审批文件材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_approval_files\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_files\")]\n                        public IList<Material>? PreApprovalMaterialList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置语种列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_language\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_language\")]\n                public IList<int> LanguageTypeList { get; set; } = new List<int>();\n\n                /// <summary>\n                /// 获取或设置人证核验 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"facial_recognition_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"facial_recognition_token\")]\n                public string FacialRecognitionToken { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_email\")]\n                public string InchargePeopleEmail { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_phone\")]\n                public string InchargePeoplePhoneNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置负责人应急手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"incharge_people_emergency_phone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"incharge_people_emergency_phone\")]\n                public string InchargePeopleEmergencyPhoneNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置是否涉及前置审批。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"involve_pre_approval\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"involve_pre_approval\")]\n                public bool IsPreApprovalInvolved { get; set; }\n\n                /// <summary>\n                /// 获取或设置前置审批列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pre_approval_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pre_approval_list\")]\n                public IList<Types.PreApproval>? PreApprovalList { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务内容 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_content_type_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_content_type_list\")]\n                public IList<int> ServiceContentTypeList { get; set; } = new List<int>();\n\n                /// <summary>\n                /// 获取或设置负责人授权书材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_authority_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_authority_letter\")]\n                public IList<Material>? AppAuthorityLetterMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置其他材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_other_materials\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_other_materials\")]\n                public IList<Material>? AppOtherMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置备注信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remark\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                public string? Remark { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置备案主体信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"corp_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"corp_info\")]\n        public Types.CorpInfo CorpInfo { get; set; } = new Types.CorpInfo();\n\n        /// <summary>\n        /// 获取或设置备案应用信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_info\")]\n        public Types.AppInfo AppInfo { get; set; } = new Types.AppInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordSubmitRecordInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/submit_record_info/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordSubmitRecordInfoV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordUploadImageV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/upload_image/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsICPRecordUploadImageV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置图片类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int ImageType { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsICPRecord/OpenAppsICPRecordUploadImageV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/icp_record/upload_image/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsICPRecordUploadImageV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsMicroApp/OpenAppsMicroAppCode2SessionV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/microapp/code2session/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsMicroAppCode2SessionV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public override string? AuthorizerAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? Code { get; set; }\n\n        /// <summary>\n        /// 获取或设置匿名登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anonymous_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_code\")]\n        public string? AnoymousCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsMicroApp/OpenAppsMicroAppCode2SessionV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/microapp/code2session/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsMicroAppCode2SessionV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置会话密钥。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"session_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"session_key\")]\n                public string? SessionKey { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string? OpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置匿名用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"anonymous_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_open_id\")]\n                public string? AnonymousOpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 UnionId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"union_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"union_id\")]\n                public string? UnionId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionAuditV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/audit/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionAuditV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置本次提审的宿主端列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_names\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_names\")]\n        public IList<string> HostNames { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置本次提审的备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_note\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_note\")]\n        public string? AuditNote { get; set; }\n\n        /// <summary>\n        /// 获取或设置重新提审方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_way\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_way\")]\n        public int? AuditWay { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本通道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tag\")]\n        public string? VersionTag { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"TpAppID\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"TpAppID\")]\n        public override string? ComponentAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionAuditV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/audit/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionAuditV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionGetAuditHostsV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/package_version/get_audit_hosts/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionGetAuditHostsV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionGetAuditHostsV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/package_version/get_audit_hosts/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionGetAuditHostsV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置本次审核可选宿主端列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"host_names\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"host_names\")]\n                public string[] HostNames { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上次发布的宿主端列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"released_host_names\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"released_host_names\")]\n                public string[] ReleasedHostNames { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionGetVersionsV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/package_version/versions/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionGetVersionsV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionGetVersionsV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v1/package_version/versions/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionGetVersionsV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public abstract class VersionInfoBase\n                    {\n                        /// <summary>\n                        /// 获取或设置服务类目列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categories\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                        public string[] CategoryList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序管理员的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_avatar\")]\n                        public string DeveloperAvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序管理员的账号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_id\")]\n                        public string DeveloperId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序管理员的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_name\")]\n                        public string DeveloperName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置版本号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n                        public string Version { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置版本通道。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"version_tag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"version_tag\")]\n                        public string VersionTag { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置更新信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"summary\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"summary\")]\n                        public string Summary { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ctime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ctime\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置各宿主端附件字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attach_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attach_info\")]\n                        public IDictionary<string, string>? AttachmentMap { get; set; }\n                    }\n\n                    public class LatestVersionInfo : VersionInfoBase\n                    {\n                        /// <summary>\n                        /// 获取或设置是否已提审。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_audit\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_audit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasAudited { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"screenshot\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedStringArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"screenshot\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedStringArrayWithCommaSplitConverter))]\n                        public string[]? ScreenshotUrlList { get; set; }\n                    }\n\n                    public class AuditVersionInfo : VersionInfoBase\n                    {\n                        /// <summary>\n                        /// 获取或设置通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approved_apps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approved_apps\")]\n                        public string[]? ApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已发布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_publish\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_publish\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasPublished { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是被下架的版本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_illegal_version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_illegal_version\")]\n                        public bool IsIllegalVersion { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置各宿主端审核不通过原因字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason_detail\")]\n                        public IDictionary<string, string[]>? RejectReasonDetailMap { get; set; }\n                    }\n\n                    public class GrayVersionInfo : VersionInfoBase\n                    {\n                        /// <summary>\n                        /// 获取或设置各宿主端灰度比例字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"host_gray_scale\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"host_gray_scale\")]\n                        public IDictionary<string, string>? HostGrayScaleMap { get; set; }\n                    }\n\n                    public class CurrentVersionInfo : VersionInfoBase\n                    {\n                        public static class Types\n                        {\n                            public class Rollback\n                            {\n                                /// <summary>\n                                /// 获取或设置是否可以回退。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"can_rollback\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"can_rollback\")]\n                                public bool CanRollback { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置可以回退到的上一版本号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"last_version\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"last_version\")]\n                                public string? LastVersion { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approved_apps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approved_apps\")]\n                        public string[]? ApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置没有通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"not_approved_apps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"not_approved_apps\")]\n                        public string[]? NotApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已下架。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_down\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_down\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasDowned { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开发者平台账号 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"uid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"uid\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long? UserUID { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置各宿主端审核不通过原因字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason_detail\")]\n                        public IDictionary<string, string[]>? RejectReasonDetailMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回退信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rollback\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rollback\")]\n                        public Types.Rollback? Rollback { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置测试版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latest\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latest\")]\n                public Types.LatestVersionInfo? LatestVersionInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit\")]\n                public Types.AuditVersionInfo? AuditVersionInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置灰度版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gray\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gray\")]\n                public Types.GrayVersionInfo? GrayVersionInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置线上版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"current\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"current\")]\n                public Types.CurrentVersionInfo? CurrentVersionInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionReleaseV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/release/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionReleaseV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionReleaseV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/release/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionReleaseV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionRevokeAuditV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/revoke_audit/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionRevokeAuditV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置本次提审的宿主端列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_names\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_names\")]\n        public IList<string> HostNames { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置本次提审的备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_note\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_note\")]\n        public string? AuditNote { get; set; }\n\n        /// <summary>\n        /// 获取或设置重新提审方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_way\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_way\")]\n        public int? AuditWay { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本通道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tag\")]\n        public string? Tag { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"TpAppID\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"TpAppID\")]\n        public override string? ComponentAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionRevokeAuditV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/revoke_audit/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionRevokeAuditV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionRollbackV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/rollback/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionRollbackV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionRollbackV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/rollback/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionRollbackV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionUploadV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/upload/ 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionUploadV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置提交 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public long TemplateId { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n        public string UserVersion { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n        public string UserDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置配置的 JSON 字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_json\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_json\")]\n        public string? ExtraJson { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本通道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tag\")]\n        public string? VersionTag { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"TpAppID\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"TpAppID\")]\n        public override string? ComponentAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsPackageVersion/OpenAppsPackageVersionUploadV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /apps/v1/package_version/upload/ 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsPackageVersionUploadV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsTrial/OpenAppsTrialGetTrialInfoV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/trial/get_trial_info 接口的请求。</para>\n    /// </summary>\n    public class OpenAppsTrialGetTrialInfoV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/AppsTrial/OpenAppsTrialGetTrialInfoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /apps/v2/trial/get_trial_info 接口的响应。</para>\n    /// </summary>\n    public class OpenAppsTrialGetTrialInfoV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TrialLimitInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置是否被限制进阶能力。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_capability_limited\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_capability_limited\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool IsCapabilityLimited { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否被限制支付额度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_payment_restricted\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_payment_restricted\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool IsPaymentRestricted { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否被限制流量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_traffic_limited\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_traffic_limited\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool IsTrafficLimited { get; set; }\n                    }\n\n                    public class TrialTaskInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置任务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target\")]\n                        public int Target { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务进度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"progress\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"progress\")]\n                        public int Progress { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置信用分分值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_credit_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_credit_score\")]\n                public int CreditScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否处于试运营期。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_trial\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_trial\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                public bool IsTrial { get; set; }\n\n                /// <summary>\n                /// 获取或设置试运营期限制信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trial_limit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trial_limit_info\")]\n                public Types.TrialLimitInfo? TrialLimitInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置试运营期通过分数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trial_pass_score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trial_pass_score\")]\n                public int? TrialPassScore { get; set; }\n\n                /// <summary>\n                /// 获取或设置试运营期任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trial_task_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trial_task_info\")]\n                public Types.TrialTaskInfo[]? TrialTaskList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookEventStatusListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /platform/v1/webhook/event_status_list/ 接口的请求。</para>\n    /// </summary>\n    public class OpenPlatformWebhookEventStatusListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookEventStatusListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /platform/v1/webhook/event_status_list/ 接口的响应。</para>\n    /// </summary>\n    public class OpenPlatformWebhookEventStatusListV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class WebhookInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置 Webhook Secret。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"secret\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n                        public string Secret { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置回调地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n                        public string CallbackUrl { get; set; } = default!;\n                    }\n\n                    public class EventInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置事件名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                        public string Event { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置中文名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name_cn\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name_cn\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置事件描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订阅状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 Webhook 配置信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"webhook_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"webhook_info\")]\n                public Types.WebhookInfo WebhookInfo { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回调事件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"event_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"event_list\")]\n                public Types.EventInfo[] EventList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookResetSecretV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /platform/v1/webhook/reset_secret/ 接口的请求。</para>\n    /// </summary>\n    public class OpenPlatformWebhookResetSecretV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookResetSecretV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /platform/v1/webhook/reset_secret/ 接口的响应。</para>\n    /// </summary>\n    public class OpenPlatformWebhookResetSecretV1Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 Webhook Secret。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"secret\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n                public string Secret { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookSaveCallbackUrlV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /platform/v1/webhook/save_callback_url/ 接口的请求。</para>\n    /// </summary>\n    public class OpenPlatformWebhookSaveCallbackUrlV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置回调地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string CallbackUrl { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookSaveCallbackUrlV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /platform/v1/webhook/save_callback_url/ 接口的响应。</para>\n    /// </summary>\n    public class OpenPlatformWebhookSaveCallbackUrlV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookUpdateEventStatusV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /platform/v1/webhook/update_event_status/ 接口的请求。</para>\n    /// </summary>\n    public class OpenPlatformWebhookUpdateEventStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class EventInfo\n            {\n                /// <summary>\n                /// 获取或设置事件名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"event\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                public string Event { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置订阅状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置回调事件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_list\")]\n        public IList<Types.EventInfo> EventList { get; set; } = new List<Types.EventInfo>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/Platform/Webhook/OpenPlatformWebhookUpdateEventStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /platform/v1/webhook/update_event_status/ 接口的响应。</para>\n    /// </summary>\n    public class OpenPlatformWebhookUpdateEventStatusV1Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenAuthThirdPartyTokenV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /openapi/v2/auth/tp/token 接口的请求。</para>\n    /// </summary>\n    public class OpenAuthThirdPartyTokenV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置第三方应用 AppSecret。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ComponentAppSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置推送的 Ticket。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ComponentTicket { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenAuthThirdPartyTokenV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /openapi/v2/auth/tp/token 接口的响应。</para>\n    /// </summary>\n    public class OpenAuthThirdPartyTokenV2Response : DouyinMicroAppOpenApiResponse\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public override int ErrorNumber { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string ComponentAccessToken { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken 有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGenerateLinkV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v3/auth/gen_link 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppAuthGenerateLinkV3Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置授权链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"link_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"link_type\")]\n        public int? LinkType { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序图标文件路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n        public string? AppIconPath { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权回调地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"redirect_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"redirect_uri\")]\n        public string? RedirectUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGenerateLinkV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v3/auth/gen_link 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppAuthGenerateLinkV3Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置授权链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link\")]\n                public string AuthLink { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGetAuthAppListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/auth/get_auth_app_list 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppAuthGetAuthAppListV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGetAuthAppListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/auth/get_auth_app_list 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppAuthGetAuthAppListV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AuthApp\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auth_appid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auth_appid\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置授权时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auth_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auth_time\")]\n                        public long AuthTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置授权小程序列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_app_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_app_list\")]\n                public Types.AuthApp[] AuthAppList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGetAuthTokenV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/auth/get_auth_token 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppAuthGetAuthTokenV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置授权码。与字段 <see cref=\"AuthorizerRefreshToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AuthorizationCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方刷新令牌。与字段 <see cref=\"AuthorizationCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AuthorizerRefreshToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方式。\n        /// <para>默认值：\"app_to_tp_authorization_code\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string GrantType { get; set; } = \"app_to_tp_authorization_code\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthGetAuthTokenV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/auth/get_auth_token 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppAuthGetAuthTokenV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Permission\n                    {\n                        /// <summary>\n                        /// 获取或设置权限 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public int Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置权限分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public string Category { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置权限描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n                    }\n\n                    public class ShareData\n                    {\n                        /// <summary>\n                        /// 获取或设置服务商的分账比例上限（范围：0～30）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_ratio\")]\n                        public int? ShareRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务商的分账金额上限（范围：0～50）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_amount\")]\n                        public int? ShareAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置授权方 AccessToken。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorizer_access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_access_token\")]\n                public string AuthorizerAccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置授权方 RefreshToken。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorizer_refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_refresh_token\")]\n                public string? AuthorizerRefreshToken { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权方 AccessToken 有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权方 RefreshToken 有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_expires_in\")]\n                public int RefreshTokenExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权方小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorizer_appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_appid\")]\n                public string? AuthorizerAppId { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权权限列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorize_permission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorize_permission\")]\n                public Types.Permission[]? PermissionList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthRetrieveAuthCodeV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/auth/retrieve_auth_code 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppAuthRetrieveAuthCodeV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"authorization_appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorization_appid\")]\n        public override string? AuthorizerAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppAuth/OpenTpAppAuthRetrieveAuthCodeV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/auth/retrieve_auth_code 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppAuthRetrieveAuthCodeV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置授权码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authorization_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authorization_code\")]\n                public string AuthorizationCode { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置授权码有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppDomain/OpenTpAppDomainGetWebviewCheckFileInfoV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/doamin/get_webview_check_file_info/ 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppDomainGetWebviewCheckFileInfoV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppDomain/OpenTpAppDomainGetWebviewCheckFileInfoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/doamin/get_webview_check_file_info/ 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppDomainGetWebviewCheckFileInfoV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"file_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"file_name\")]\n                public string FileName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"file_content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"file_content\")]\n                public string FileContent { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppFile/OpenTpAppFileUploadMaterialV2Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/file/upload_material 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppFileUploadMaterialV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置上传的文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置资源文件文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppFile/OpenTpAppFileUploadMaterialV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/file/upload_material 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppFileUploadMaterialV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateAddTemplateV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/template/add_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppTemplateAddTemplateV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置草稿 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"draft_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"draft_id\")]\n        public long DraftId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateAddTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/template/add_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppTemplateAddTemplateV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateDeleteTemplateV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/template/del_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppTemplateDeleteTemplateV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public long TemplateId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateDeleteTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /tpapp/v2/template/del_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppTemplateDeleteTemplateV2Response : DouyinMicroAppOpenApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateGetTemplateAppListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/template/get_tpl_app_list 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppTemplateGetTemplateAppListV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateGetTemplateAppListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/template/get_tpl_app_list 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppTemplateGetTemplateAppListV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TemplateApp\n                    {\n                        /// <summary>\n                        /// 获取或设置模板小程序 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tpl_app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tpl_app_id\")]\n                        public string TemplateAppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模板小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                        public string AppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上传当前版本的用户名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string? Nickname { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置版本号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n                        public string? UserVersion { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n                        public string? UserDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置草稿 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"draft_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"draft_id\")]\n                        public long? DraftId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上传时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long? CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置模板小程序列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tpl_app_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tpl_app_list\")]\n                public Types.TemplateApp[] TemplateAppList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateGetTemplateListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/template/get_tpl_list 接口的请求。</para>\n    /// </summary>\n    public class OpenTpAppTemplateGetTemplateListV2Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/TpAppTemplate/OpenTpAppTemplateGetTemplateListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /tpapp/v2/template/get_tpl_list 接口的响应。</para>\n    /// </summary>\n    public class OpenTpAppTemplateGetTemplateListV2Response : DouyinMicroAppOpenApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Template\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                        public long TemplateId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置版本号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n                        public string UserVersion { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n                        public string UserDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_list\")]\n                public Types.Template[] TemplateList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthGenerateLinkV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/auth/gen_link 接口的请求。</para>\n    /// </summary>\n    public class OpenApiAuthGenerateLinkV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置授权链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"link_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"link_type\")]\n        public int? LinkType { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序图标文件路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n        public string? AppIconPath { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权回调地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"redirect_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"redirect_uri\")]\n        public string? RedirectUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthGenerateLinkV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/auth/gen_link 接口的响应。</para>\n    /// </summary>\n    public class OpenApiAuthGenerateLinkV2Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        /// <summary>\n        /// 获取或设置授权链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"link\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"link\")]\n        public string AuthLink { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthPreAuthCodeV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/auth/pre_auth_code 接口的请求。</para>\n    /// </summary>\n    public class OpenApiAuthPreAuthCodeV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置预授权码类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pre_auth_code_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pre_auth_code_type\")]\n        public int? PreAuthCodeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置代创建的小程序图标路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n        public string? AppIconPath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthPreAuthCodeV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/auth/pre_auth_code 接口的响应。</para>\n    /// </summary>\n    public class OpenApiAuthPreAuthCodeV2Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        /// <summary>\n        /// 获取或设置预授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pre_auth_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pre_auth_code\")]\n        public string PreAuthCode { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置预授权码有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthRetrieveV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/auth/retrieve 接口的请求。</para>\n    /// </summary>\n    public class OpenApiAuthRetrieveV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"component_appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_appid\")]\n        public override string? ComponentAppId { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public override string? ComponentAccessToken { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"authorization_appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorization_appid\")]\n        public override string? AuthorizerAppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthRetrieveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/auth/retrieve 接口的响应。</para>\n    /// </summary>\n    public class OpenApiAuthRetrieveV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"authorization_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorization_code\")]\n        public string AuthCode { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置授权码有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthThirdPartyTokenV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/auth/tp/token 接口的请求。</para>\n    /// </summary>\n    public class OpenApiAuthThirdPartyTokenV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置第三方应用 AppSecret。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ComponentAppSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置推送的 Ticket。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ComponentTicket { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiAuthThirdPartyTokenV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/auth/tp/token 接口的响应。</para>\n    /// </summary>\n    public class OpenApiAuthThirdPartyTokenV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string ComponentAccessToken { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken 有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiOAuthTokenV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/oauth/token 接口的请求。</para>\n    /// </summary>\n    public class OpenApiOAuthTokenV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置授权码。与字段 <see cref=\"AuthorizerRefreshToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AuthorizationCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方刷新令牌。与字段 <see cref=\"AuthorizationCode\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AuthorizerRefreshToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方式。\n        /// <para>默认值：\"app_to_tp_authorization_code\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string GrantType { get; set; } = \"app_to_tp_authorization_code\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Auth/OpenApiOAuthTokenV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/oauth/token 接口的响应。</para>\n    /// </summary>\n    public class OpenApiOAuthTokenV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Permission\n            {\n                /// <summary>\n                /// 获取或设置权限 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int Id { get; set; }\n\n                /// <summary>\n                /// 获取或设置权限分类。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                public string Category { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置权限描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = default!;\n            }\n\n            public class ShareData\n            {\n                /// <summary>\n                /// 获取或设置服务商的分账比例上限（范围：0～30）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"share_ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"share_ratio\")]\n                public int? ShareRatio { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务商的分账金额上限（范围：0～50）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"share_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"share_amount\")]\n                public int? ShareAmount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置授权方 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"authorizer_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_access_token\")]\n        public string AuthorizerAccessToken { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置授权方 RefreshToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"authorizer_refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_refresh_token\")]\n        public string? AuthorizerRefreshToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方 AccessToken 有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方 RefreshToken 有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_expires_in\")]\n        public int RefreshTokenExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权方小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"authorizer_appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorizer_appid\")]\n        public string? AuthorizerAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权权限列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"authorize_permission\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"authorize_permission\")]\n        public Types.Permission[]? PermissionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置共享数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"share_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"share_data\")]\n        public Types.ShareData? ShareData { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAddCategoriesV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/add_categories 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppAddCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class CategoryInfo\n            {\n                public static class Types\n                {\n                    public class Certification\n                    {\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Id { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置资质文件路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                        public string FilePath { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                public string CategoryIdString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置服务类目资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryCert\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryCert\")]\n                public IList<Types.Certification>? CertificationList { get; set; }\n            }\n        }\n\n\n        /// <summary>\n        /// 获取或设置服务类目信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"categoryInfo\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"categoryInfo\")]\n        public IList<Types.CategoryInfo> CategoryInfoList { get; set; } = new List<Types.CategoryInfo>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAddCategoriesV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/add_categories 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppAddCategoriesV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAllCategoriesV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/all_categories 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppAllCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAllCategoriesV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/all_categories 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppAllCategoriesV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Category\n            {\n                public static class Types\n                {\n                    public class Certification\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置资质 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int Id { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置资质名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置需要的资质汇总列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"relation\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"relation\")]\n                        public string[] RelationList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置需要的资质的详细信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                        public Types.Detail[] DetailList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置解释说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"explanation\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"explanation\")]\n                        public string Explanation { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int Id { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务类目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置服务类目级别。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                public int Level { get; set; }\n\n                /// <summary>\n                /// 获取或设置一级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fpid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fpid\")]\n                public int? FirstCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"spid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"spid\")]\n                public int? SecondCategoryId { get; set; }\n\n                /// <summary>\n                /// 获取或设置需要的资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certification\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certification\")]\n                public Types.Certification? Certification { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务类目列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Category[] CategoryList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppCategoriesV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/categories 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppCategoriesV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/categories 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCategoriesV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CategoryAuditInfo\n                    {\n                        public static class Types\n                        {\n                            public class Certification\n                            {\n                                /// <summary>\n                                /// 获取或设置资质 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int Id { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置资质名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资质文件路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string FilePath { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称字符串（以短横线分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryName\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目资质 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryCertIds\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryCertIds\")]\n                        public string CertificationIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目资质信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryCert\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryCert\")]\n                        public Types.Certification[] CertificationList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryAuditState\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryAuditState\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类目审核信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appCategoryAuditInfo\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appCategoryAuditInfo\")]\n                public Types.CategoryAuditInfo[] CategoryAuditInfoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置剩余修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remainingTimes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remainingTimes\")]\n                public int RemainingTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置本月总共可以修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryChangeLimit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryChangeLimit\")]\n                public int CategoryChangeLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置最多可以设置的服务类目数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryLimit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryLimit\")]\n                public int CategoryTotalLimit { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppDeleteCategoriesV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/del_categories 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppDeleteCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n        public IList<string> CategoryIdStringList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppDeleteCategoriesV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/del_categories 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppDeleteCategoriesV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppSupplyCategoriesV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/supply_categories 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppSupplyCategoriesV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class CategoryInfo : OpenApiMicroAppAppAddCategoriesV1Request.Types.CategoryInfo\n            {\n            }\n        }\n\n\n        /// <summary>\n        /// 获取或设置服务类目信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"categoryInfo\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"categoryInfo\")]\n        public IList<Types.CategoryInfo> CategoryInfoList { get; set; } = new List<Types.CategoryInfo>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppSupplyCategoriesV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/supply_categories 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppSupplyCategoriesV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppCheckAppNameV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/check_app_name 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCheckAppNameV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置待检测的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AppName { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppCheckAppNameV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/check_app_name 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCheckAppNameV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppCreditScoreV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/credit_score 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCreditScoreV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppCreditScoreV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/credit_score 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppCreditScoreV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置信用分分值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creditScore\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creditScore\")]\n                public int CreditScore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppInfoV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/info 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppInfoV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppInfoV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/info 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppInfoV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class NewNameAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_name\")]\n                        public string NewName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_name_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_name_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class NewIntroductionAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_intro\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro\")]\n                        public string NewIntroduction { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_intro_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class NewIconAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置新图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon\")]\n                        public string NewIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_icon_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remaining_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remaining_times\")]\n                        public int RemainingTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advice\")]\n                        public string? Advice { get; set; }\n                    }\n\n                    public class CategoryAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称（以短横线分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category_name\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_category_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_category_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n\n                    public class SubjectAuditInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public int SubjectType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置主体名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_name\")]\n                        public string SubjectName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_audit_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_audit_state\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_type\")]\n                public int AppType { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_state\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_state\")]\n                public int AppState { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序简介。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_intro\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_intro\")]\n                public string AppIntroduction { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序图标 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n                public string AppIconUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置新名称审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_name_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_name_audit_info\")]\n                public Types.NewNameAuditInfo? NewNameAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置新简介审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_intro_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_intro_audit_info\")]\n                public Types.NewIntroductionAuditInfo? NewIntroductionAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置新图标审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_icon_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_audit_info\")]\n                public Types.NewIconAuditInfo? NewIconAuditInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务类目审核信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_categories_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_categories_audit_info\")]\n                public Types.CategoryAuditInfo[]? CategoryAuditInfoList { get; set; }\n\n                /// <summary>\n                /// 获取或设置主体审核信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject_audit_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject_audit_info\")]\n                public Types.SubjectAuditInfo? SubjectAuditInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIconV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_icon 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppIconV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序图标路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_icon_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_icon_path\")]\n        public string NewIconPath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIconV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_icon 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppIconV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIntroductionV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_intro 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppIntroductionV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_intro\")]\n        public string NewIntroduction { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIntroductionV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_intro 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppIntroductionV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppNameV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_name 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppNameV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置准备修改的小程序名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_name\")]\n        public string NewName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置审核材料路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"material_file_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"material_file_path\")]\n        public string? MaterialFilePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppNameV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_app_name 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyAppNameV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyServerDomainV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_server_domain 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyServerDomainV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置执行动作。\n        /// <para>默认值：\"get\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = \"get\";\n\n        /// <summary>\n        /// 获取或设置 HTTP 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request\")]\n        public IList<string>? RequestDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 WebSocket 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"socket\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"socket\")]\n        public IList<string>? SocketDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"upload\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"upload\")]\n        public IList<string>? UploadDomainList { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download\")]\n        public IList<string>? DownloadDomainList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyServerDomainV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_server_domain 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyServerDomainV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置 HTTP 域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"request\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"request\")]\n                public string[] RequestDomainList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 WebSocket 域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"socket\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"socket\")]\n                public string[] SocketDomainList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上传域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"upload\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"upload\")]\n                public string[] UploadDomainList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下载域名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"download\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"download\")]\n                public string[] DownloadDomainList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data? Data { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyWebviewDomainV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_webview_domain 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyWebviewDomainV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置执行动作。\n        /// <para>默认值：\"get\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = \"get\";\n\n        /// <summary>\n        /// 获取或设置 Webview 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"webview\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"webview\")]\n        public IList<string>? WebviewDomainList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyWebviewDomainV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/modify_webview_domain 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppModifyWebviewDomainV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        /// <summary>\n        /// 获取或设置 Webview 域名列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public string[]? WebviewDomainList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppQrcodeV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/qrcode 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppQrcodeV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置版本。\n        /// <para>默认值：\"current\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n        public string Version { get; set; } = \"current\";\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string PagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppQrcodeV1Response.cs",
    "content": "using System;\nusing System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/app/qrcode 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppAppQrcodeV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppQualityRatingV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/quality_rating 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-10-23 下线。\")]\n    public class OpenApiMicroAppAppQualityRatingV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/App/OpenApiMicroAppAppQualityRatingV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/app/quality_rating 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-10-23 下线。\")]\n    public class OpenApiMicroAppAppQualityRatingV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置质量评级状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置质量评级分数对应的等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualityRating\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualityRating\")]\n                public string QualityRating { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data? Data { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/OpenApiMicroAppCode2SessionV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/code2session 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-04-08 下线。\")]\n    public class OpenApiMicroAppCode2SessionV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Code { get; set; }\n\n        /// <summary>\n        /// 获取或设置匿名登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AnoymousCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/OpenApiMicroAppCode2SessionV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/code2session 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-04-08 下线。\")]\n    public class OpenApiMicroAppCode2SessionV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置会话密钥。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"session_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"session_key\")]\n                public string? SessionKey { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n                public string? OpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置匿名用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"anonymous_openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_openid\")]\n                public string? AnonymousOpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 UnionId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unionid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unionid\")]\n                public string? UnionId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/OpenApiMicroAppUploadMaterialV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/upload_material 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppUploadMaterialV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置上传文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置上传文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/OpenApiMicroAppUploadMaterialV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/upload_material 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiMicroAppUploadMaterialV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationStatusV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/live_application_status 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationLiveApplicationStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/live_application_status 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationLiveApplicationStatusV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data : OpenApiMicroAppOperationVideoApplicationStatusV1Response.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/live_application 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationLiveApplicationV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置申请原因以及挂载内容介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n        public string Introduction { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预计首次开播时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"firstLiveTime\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"firstLiveTime\")]\n        public long FirstLiveTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置预估每周开播频率。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"liveFrequency\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"liveFrequency\")]\n        public int LiveFrequency { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否有广告预算。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hasAdBudget\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hasAdBudget\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool HasAdBudget { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adBudgetAmount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adBudgetAmount\")]\n        public int? AdBudgetAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置销售对接人姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adPersonName\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adPersonName\")]\n        public string? AdPersonName { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/live_application 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationLiveApplicationV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/phone_number_application_status 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/phone_number_application_status 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data : OpenApiMicroAppOperationVideoApplicationStatusV1Response.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/phone_number_application 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationPhoneNumberApplicationV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置申请原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public int ReasonType { get; set; }\n\n        /// <summary>\n        /// 获取或设置场景值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene\")]\n        public int Scene { get; set; }\n\n        /// <summary>\n        /// 获取或设置场景描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置场景示例图路径列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"imagePaths\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"imagePaths\")]\n        public IList<string>? ImagePathList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/phone_number_application 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationPhoneNumberApplicationV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationStatusV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/video_application_status 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationVideoApplicationStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/video_application_status 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationVideoApplicationStatusV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置申请状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                public string? Reason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/video_application 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationVideoApplicationV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置申请原因以及挂载内容介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"intro\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"intro\")]\n        public string Introduction { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置挂载锚点文案示例。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchorText\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchorText\")]\n        public string AnchorText { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序落地页截图路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"imagePath\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"imagePath\")]\n        public string ImagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/video_application 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationVideoApplicationV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationAddShareTemplateV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/add_share_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationAddShareTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置分享标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分享文案。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分享图片路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"imagePath\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"imagePath\")]\n        public string ImagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationAddShareTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/add_share_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationAddShareTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationDeleteShareTemplateV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/del_share_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationDeleteShareTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"templateId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"templateId\")]\n        public string TemplateId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationDeleteShareTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/del_share_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationDeleteShareTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationModifyShareTemplateV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/modify_share_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationModifyShareTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"templateId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"templateId\")]\n        public string TemplateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分享标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分享文案。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分享图片路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"imagePath\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"imagePath\")]\n        public string ImagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationModifyShareTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/modify_share_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationModifyShareTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationSetDefaultShareTemplateV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/set_default_share_tpl 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationSetDefaultShareTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"templateId\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"templateId\")]\n        public string TemplateId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationSetDefaultShareTemplateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/set_default_share_tpl 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationSetDefaultShareTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationShareTemplateListV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/share_tpl_list 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationShareTemplateListV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationShareTemplateListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/share_tpl_list 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationShareTemplateListV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ShareTemplate\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"templateId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"templateId\")]\n                        public string TemplateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享文案。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"imageUrl\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"imageUrl\")]\n                        public string ImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是默认模板。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"isDefault\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"isDefault\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool IsDefault { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ctime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ctime\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近修改时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mtime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mtime\")]\n                        public long ModifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享信息审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auditStatus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auditStatus\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"auditTime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"auditTime\")]\n                        public long? AuditTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分享模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shareTplList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shareTplList\")]\n                public Types.ShareTemplate[] ShareTemplateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分享模板总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationAddShopMaterialV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/add_shop_material 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationAddShopMaterialV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class QualificationMaterial\n            {\n                /// <summary>\n                /// 获取或设置文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = string.Empty;\n            }\n\n            public class AdditionalMaterial\n            {\n                public static class Types\n                {\n                    public class Material\n                    {\n                        /// <summary>\n                        /// 获取或设置文件路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                        public string FilePath { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置上传资质类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"additional_qual_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual_type\")]\n                public int Type { get; set; }\n\n                /// <summary>\n                /// 获取或设置材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"paths\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"paths\")]\n                public IList<Types.Material> MaterialList { get; set; } = new List<Types.Material>();\n            }\n        }\n\n\n        /// <summary>\n        /// 获取或设置服务商 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string ClientKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置接入方店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商铺营业执照路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_licence_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_licence_path\")]\n        public string BusinessLicencePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商家授权函路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contract_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contract_path\")]\n        public string ContractPath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置行业资质列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qual_material\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qual_material\")]\n        public IList<Types.QualificationMaterial>? QualificationMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置额外材料列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"additional_qual\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual\")]\n        public IList<Types.AdditionalMaterial>? AdditionalMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置过期日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n        public string ExpireDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationAddShopMaterialV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/operation/add_shop_material 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationAddShopMaterialV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationQueryShopMaterialV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/query_shop_material 接口的请求。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationQueryShopMaterialV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置接入方店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SupplierExternalId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationQueryShopMaterialV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/operation/query_shop_material 接口的响应。</para>\n    /// </summary>\n    public class OpenApiMicroAppOperationQueryShopMaterialV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class OnlineShopMaterialInfo\n                    {\n                        public static class Types\n                        {\n                            public class BusinessLicenseMaterial\n                            {\n                                /// <summary>\n                                /// 获取或设置文件路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string FilePath { get; set; } = default!;\n                            }\n\n                            public class ContractMaterial : BusinessLicenseMaterial\n                            {\n                            }\n\n                            public class QualificationMaterial : BusinessLicenseMaterial\n                            {\n                            }\n\n                            public class AdditionalMaterial\n                            {\n                                public static class Types\n                                {\n                                    public class Material\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置文件路径。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                        public string FilePath { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置上传资质类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"additional_qual_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual_type\")]\n                                public int Type { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置材料列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"paths\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"paths\")]\n                                public Types.Material[] MaterialList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商铺营业执照信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"biz_licence\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"biz_licence\")]\n                        public Types.BusinessLicenseMaterial BusinessLicenseMaterial { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置合作协议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contract\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contract\")]\n                        public Types.ContractMaterial ContractMaterial { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置行业资质列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qual_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qual_material\")]\n                        public Types.QualificationMaterial[]? QualificationMaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置额外材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"additional_qual\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual\")]\n                        public Types.AdditionalMaterial[]? AdditionalMaterialList { get; set; }\n                    }\n\n                    public class AuditShopMaterialInfo\n                    {\n                        public static class Types\n                        {\n                            public class BusinessLicenseMaterial\n                            {\n                                /// <summary>\n                                /// 获取或设置文件路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string FilePath { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int AuditStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核拒绝原因列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                public string[]? RejectReasonList { get; set; }\n\n                            }\n\n                            public class ContractMaterial : BusinessLicenseMaterial\n                            {\n                            }\n\n                            public class QualificationMaterial : BusinessLicenseMaterial\n                            {\n                            }\n\n                            public class AdditionalMaterial\n                            {\n                                public static class Types\n                                {\n                                    public class Material\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置文件路径。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                        public string FilePath { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置上传资质类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"additional_qual_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual_type\")]\n                                public int Type { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置材料列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"paths\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"paths\")]\n                                public Types.Material[] MaterialList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int AuditStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核拒绝原因列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                public string[]? RejectReasonList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商铺营业执照信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"biz_licence\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"biz_licence\")]\n                        public Types.BusinessLicenseMaterial BusinessLicenseMaterial { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置合作协议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"contract\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"contract\")]\n                        public Types.ContractMaterial ContractMaterial { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置行业资质列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qual_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qual_material\")]\n                        public Types.QualificationMaterial[]? QualificationMaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置额外材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"additional_qual\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"additional_qual\")]\n                        public Types.AdditionalMaterial[]? AdditionalMaterialList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置线上版资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"online_shop_material\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"online_shop_material\")]\n                public Types.OnlineShopMaterialInfo? OnlineShopMaterialInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核版资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_shop_material\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_shop_material\")]\n                public Types.AuditShopMaterialInfo? AuditShopMaterialInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditHostsV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/package/audit_hosts 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageAuditHostsV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditHostsV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/package/audit_hosts 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageAuditHostsV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置本次审核可选宿主端英文简称列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hostNames\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hostNames\")]\n                public string[] HostNames { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上次发布的宿主端英文简称列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"releasedHostNames\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"releasedHostNames\")]\n                public string[] ReleasedHostNames { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditV2Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/microapp/package/audit 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageAuditV2Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置本次提审的宿主端列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hostNames\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hostNames\")]\n        public IList<string> HostNames { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置本次提审的备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auditNote\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auditNote\")]\n        public string? AuditNote { get; set; }\n\n        /// <summary>\n        /// 获取或设置重新提审方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auditWay\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auditWay\")]\n        public int? AuditWay { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditV2Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v2/microapp/package/audit 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageAuditV2Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageReleaseV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/release 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageReleaseV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageReleaseV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/release 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageReleaseV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageRevokeAuditV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/revoke_audit 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageRevokeAuditV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageRevokeAuditV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/revoke_audit 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageRevokeAuditV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageRollbackV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/rollback 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageRollbackV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageRollbackV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/rollback 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageRollbackV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageUploadV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/upload 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageUploadV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置提交 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public long TemplateId { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n        public string UserVersion { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n        public string UserDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置配置的 JSON 字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_json\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_json\")]\n        public string? ExtraJson { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageUploadV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/microapp/package/upload 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageUploadV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageVersionsV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/package/versions 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageVersionsV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/MicroApp/Package/OpenApiMicroAppPackageVersionsV1Response.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/microapp/package/versions 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-02-21 下线。\")]\n    public class OpenApiMicroAppPackageVersionsV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class VersionInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置服务类目列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categories\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                        public string[] CategoryList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序拥有者的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_avatar\")]\n                        public string DeveloperAvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序拥有者的账号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_id\")]\n                        public string DeveloperId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序拥有者的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"developer_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"developer_name\")]\n                        public string DeveloperName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置版本号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"version\")]\n                        public string Version { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置更新信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"summary\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"summary\")]\n                        public string Summary { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ctime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ctime\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n\n                    public class LatestVersionInfo : VersionInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置是否已提审。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_audit\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_audit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasAudited { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"screenshot\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedStringArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"screenshot\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedStringArrayWithCommaSplitConverter))]\n                        public string[]? ScreenshotUrlList { get; set; }\n                    }\n\n                    public class AuditVersionInfo : VersionInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approvedApps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approvedApps\")]\n                        public string[]? ApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已发布。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_publish\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_publish\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasPublished { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是被下架的版本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_illegal_version\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_illegal_version\")]\n                        public bool IsIllegalVersion { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reasonDetail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reasonDetail\")]\n                        public IDictionary<string, string[]>? RejectReasonDetailMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附件字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attachInfo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attachInfo\")]\n                        public IDictionary<string, string>? AttachmentMap { get; set; }\n                    }\n\n                    public class CurrentVersionInfo : VersionInfo\n                    {\n                        public static class Types\n                        {\n                            public class Rollback\n                            {\n                                /// <summary>\n                                /// 获取或设置是否可以回退。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"can_rollback\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"can_rollback\")]\n                                public bool CanRollback { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置可以回退到的上一版本号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"last_version\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"last_version\")]\n                                public string? LastVersion { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approvedApps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approvedApps\")]\n                        public string[]? ApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置没有通过审核的宿主端列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notApprovedApps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notApprovedApps\")]\n                        public string[]? NotApprovedApps { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已下架。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_down\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_down\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool HasDowned { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开发者平台账号 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"uid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"uid\")]\n                        public long? UID { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核不通过原因字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reasonDetail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reasonDetail\")]\n                        public IDictionary<string, string[]>? RejectReasonDetailMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附件字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attachInfo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attachInfo\")]\n                        public IDictionary<string, string>? AttachmentMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回退信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rollback\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rollback\")]\n                        public Types.Rollback? Rollback { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置测试版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latest\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latest\")]\n                public Types.LatestVersionInfo? LatestVersionInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit\")]\n                public Types.AuditVersionInfo? AuditVersionInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置线上版本信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"current\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"current\")]\n                public Types.CurrentVersionInfo? CurrentVersionInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettleApplyV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/settle/apply 接口的请求。</para>\n    /// </summary>\n    public class OpenApiSettleApplyV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mobile\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mobile\")]\n        public string MobileNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置主体类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n        public int QualificationType { get; set; }\n\n        /// <summary>\n        /// 获取或设置企业名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n        public string CompanyName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"credit_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"credit_code\")]\n        public string BusinessLicenseNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照有效期（格式：yyyy-MM-dd / \"0\"）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"credit_end_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"credit_end_date\")]\n        public string BusinessLicenseEndDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照照片文件路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"credit_image_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"credit_image_path\")]\n        public string BusinessLicenseImageFilePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置企业类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n        public int CompanyType { get; set; }\n\n        /// <summary>\n        /// 获取或设置法人姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"legal_person_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person_name\")]\n        public string LegalPersonName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册地址国家编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_nation_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_nation_code\")]\n        public int? RegisteredNationCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址省份编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_province_code\")]\n        public int? RegisteredProvinceCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址城市编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_city_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_city_code\")]\n        public int? RegisteredCityCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_address\")]\n        public string RegisteredAddress { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册资本（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_capital\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_capital\")]\n        public long RegisteredCapital { get; set; }\n\n        /// <summary>\n        /// 获取或设置经营行业类目编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_code\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedNumberListWithCommaSplitConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_code\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedNumberListWithCommaSplitConverter))]\n        public IList<int> CategoryCodeList { get; set; } = new List<int>();\n\n        /// <summary>\n        /// 获取或设置运营人员姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_person_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_person_name\")]\n        public string BusinessPersonName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运营人员身份证号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_id_card\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_id_card\")]\n        public string BusinessIdCardNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运营人员手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_mobile\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_mobile\")]\n        public string BusinessMobileNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置公司介绍。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_introduction\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_introduction\")]\n        public string? CompanyIntroduction { get; set; }\n\n        /// <summary>\n        /// 获取或设置经营地址省份编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_province_code\")]\n        public int? BusinessProvinceCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置经营地址城市编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_city_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_city_code\")]\n        public int? BusinessCityCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置经营地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_address\")]\n        public string? BusinessAddress { get; set; }\n\n        /// <summary>\n        /// 获取或设置员工总数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"employee_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"employee_count\")]\n        public int? EmployeeCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置官网地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_website\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_website\")]\n        public string? CompanyWebsite { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettleApplyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/settle/apply 接口的响应。</para>\n    /// </summary>\n    public class OpenApiSettleApplyV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置申请请求 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n                public string ApplyId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettleGetApplyStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/settle/get_apply_status 接口的请求。</para>\n    /// </summary>\n    public class OpenApiSettleGetApplyStatusV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置申请请求 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ApplyId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettleGetApplyStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/settle/get_apply_status 接口的响应。</para>\n    /// </summary>\n    public class OpenApiSettleGetApplyStatusV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置入驻状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_status\")]\n                public int ApplyStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置对公认证链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_url\")]\n                public string? VerifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                public string? FailReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettlePreCheckV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/settle/pre_check 接口的请求。</para>\n    /// </summary>\n    public class OpenApiSettlePreCheckV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置主体类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n        public int QualificationType { get; set; }\n\n        /// <summary>\n        /// 获取或设置企业名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n        public string CompanyName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"credit_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"credit_code\")]\n        public string BusinessLicenseNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照有效期（格式：yyyy-MM-dd / \"0\"）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"credit_end_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"credit_end_date\")]\n        public string BusinessLicenseEndDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置企业类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n        public int CompanyType { get; set; }\n\n        /// <summary>\n        /// 获取或设置法人姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"legal_person_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person_name\")]\n        public string LegalPersonName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册地址国家编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_nation_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_nation_code\")]\n        public int? RegisteredNationCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址省份编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_province_code\")]\n        public int? RegisteredProvinceCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址城市编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_city_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_city_code\")]\n        public int? RegisteredCityCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置注册地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_address\")]\n        public string RegisteredAddress { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册资本（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_capital\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_capital\")]\n        public long RegisteredCapital { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/Settle/OpenApiSettlePreCheckV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/settle/pre_check 接口的响应。</para>\n    /// </summary>\n    public class OpenApiSettlePreCheckV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Domain/OpenApiThirdPartyDownloadWebviewFileV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/download/webview_file 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyDownloadWebviewFileV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Domain/OpenApiThirdPartyDownloadWebviewFileV1Response.cs",
    "content": "using System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/download/webview_file 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyDownloadWebviewFileV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/OpenApiThirdPartyAuthAppListV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/auth_app_list 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyAuthAppListV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/OpenApiThirdPartyAuthAppListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/auth_app_list 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyAuthAppListV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AuthApp\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"authAppId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"authAppId\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置授权时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"authTime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"authTime\")]\n                        public long AuthTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置授权小程序列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"authAppList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"authAppList\")]\n                public Types.AuthApp[] AuthAppList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/OpenApiThirdPartyUploadPictureMaterialV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/upload_pic_material 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyUploadPictureMaterialV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置上传的文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置资源文件文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/OpenApiThirdPartyUploadPictureMaterialV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/upload_pic_material 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyUploadPictureMaterialV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOIBaseQueryAMapV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/base/query/amap 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOIBaseQueryAMapV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置高德 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AMapId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOIBaseQueryAMapV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/base/query/amap 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOIBaseQueryAMapV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                public decimal Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                public decimal Longitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖音 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string POIId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 POI 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                public string POIName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置高德 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amap_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amap_id\")]\n                public string AMapId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string Province { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string City { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string Address { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierMatchV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/poi/supplier/match 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierMatchV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class MatchData\n            {\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                public decimal Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                public decimal Longitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置 POI 名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                public string POIName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置外部商铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                public string SupplierExternalId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置抖音 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                public string? POIId { get; set; }\n\n                /// <summary>\n                /// 获取或设置高德 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amap_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amap_id\")]\n                public string? AMapId { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string Province { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string City { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string Address { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置其他信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                public string? Extra { get; set; }\n            }\n        }\n\n\n        /// <summary>\n        /// 获取或设置上传的匹配数据列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"match_data_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"match_data_list\")]\n        public IList<Types.MatchData> MatchDataList { get; set; } = new List<Types.MatchData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierMatchV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/poi/supplier/match 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierMatchV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置匹配任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchTaskV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query/match_task 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryMatchTaskV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置匹配任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> TaskIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchTaskV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query/match_task 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryMatchTaskV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class MatchResult\n                    {\n                        /// <summary>\n                        /// 获取或设置抖音 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 POI 名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_name\")]\n                        public string POIName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置外部商铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string SupplierExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                        public string Province { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                        public string City { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string Address { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置其他信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"match_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"match_status\")]\n                        public int MatchStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不匹配状态描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mismatch_status_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mismatch_status_desc\")]\n                        public string? MismatchDescription { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配任务结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"match_result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"match_result_list\")]\n                public Types.MatchResult[] MatchResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query/match 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryMatchV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置外部商铺 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> SupplierExternalIds { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query/match 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryMatchV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class MatchResult\n                    {\n                        /// <summary>\n                        /// 获取或设置抖音 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string? POIId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置匹配任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        public string TaskId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置外部商铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string SupplierExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置匹配状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int MatchStatus { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置匹配任务结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"match_result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"match_result_list\")]\n                public Types.MatchResult[] MatchResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置外部商铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SupplierExternalId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/poi/supplier/query 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierQueryV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SyncResult\n                    {\n                        /// <summary>\n                        /// 获取或设置最近一次同步状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"last_sync_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"last_sync_status\")]\n                        public int LastSyncStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置同步失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                        public string? FailReason { get; set; }\n                    }\n\n                    public class Detail\n                    {\n                        public static class Types\n                        {\n                            public class Service\n                            {\n                                public static class Types\n                                {\n                                    public class Entry\n                                    {\n                                        public static class Types\n                                        {\n                                            public class MiniApp\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置小程序 AppId。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                                public string AppId { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置小程序页面路径。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                                public string PagePath { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置小程序页面参数。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"params\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                                                public string? PageParameters { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置入口小程序信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"entry_mini_app\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_mini_app\")]\n                                        public Types.MiniApp? MiniApp { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置服务类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                                public int? ServiceType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置服务状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                                public int? ServiceStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置服务入口参数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"entry\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"entry\")]\n                                public Types.Entry? Entry { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置抖音 POI ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n                        public string POIId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商铺类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置外部商铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n                        public string SupplierExternalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商铺提供的服务列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"services\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"services\")]\n                        public Types.Service[]? ServiceList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商铺状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置最近一次的商铺同步结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sync_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sync_status\")]\n                public Types.SyncResult SyncResult { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置最近一次的商铺同步的数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_detail\")]\n                public Types.Detail? Detail { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierSyncV1Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/poi/supplier/sync 接口的请求。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierSyncV1Request : DouyinMicroAppOpenApiRequest\n    {\n        public static class Types\n        {\n            public class Service\n            {\n                public static class Types\n                {\n                    public class Entry\n                    {\n                        public static class Types\n                        {\n                            public class MiniApp\n                            {\n                                /// <summary>\n                                /// 获取或设置小程序 AppId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                                public string AppId { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置小程序页面路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string PagePath { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置小程序页面参数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"params\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                                public string? PageParameters { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置入口小程序信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"entry_mini_app\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"entry_mini_app\")]\n                        public Types.MiniApp? MiniApp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_type\")]\n                public int? ServiceType { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enable\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enable\")]\n                public int? ServiceStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务入口参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entry\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entry\")]\n                public Types.Entry? Entry { get; set; }\n            }\n        }\n\n\n        /// <summary>\n        /// 获取或设置抖音 POI ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_id\")]\n        public string POIId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商铺类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置商铺名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置外部商铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"supplier_ext_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"supplier_ext_id\")]\n        public string SupplierExternalId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商铺地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public string? Address { get; set; }\n\n        /// <summary>\n        /// 获取或设置商铺提供的服务列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"services\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"services\")]\n        public IList<Types.Service>? ServiceList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商铺状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierSyncV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/poi/supplier/sync 接口的响应。</para>\n    /// </summary>\n    public class OpenApiThirdPartyPOISupplierSyncV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateAddTemplateV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/template/add_tpl 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateAddTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置草稿 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"draft_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"draft_id\")]\n        public long DraftId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateAddTemplateV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/template/add_tpl 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateAddTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateDeleteTemplateV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/template/del_tpl 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateDeleteTemplateV1Request : DouyinMicroAppOpenApiRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public long TemplateId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateDeleteTemplateV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /v1/tp/template/del_tpl 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateDeleteTemplateV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateAppListV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/template/get_tpl_app_list 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateGetTemplateAppListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateAppListV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/template/get_tpl_app_list 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateGetTemplateAppListV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class TemplateApp\n            {\n                /// <summary>\n                /// 获取或设置模板小程序 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tpl_app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tpl_app_id\")]\n                public string TemplateAppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置模板小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上传当前版本的用户名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                public string? Nickname { get; set; }\n\n                /// <summary>\n                /// 获取或设置版本号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_version\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n                public string? UserVersion { get; set; }\n\n                /// <summary>\n                /// 获取或设置描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n                public string? UserDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置草稿 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"draft_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"draft_id\")]\n                public long? DraftId { get; set; }\n\n                /// <summary>\n                /// 获取或设置上传时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long? CreateTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置模板小程序列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tpl_app_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tpl_app_list\")]\n        public Types.TemplateApp[] TemplateAppList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateListV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/template/get_tpl_list 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateGetTemplateListV1Request : DouyinMicroAppOpenApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateListV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1/tp/template/get_tpl_list 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-23 下线。\")]\n    public class OpenApiThirdPartyTemplateGetTemplateListV1Response : DouyinMicroAppOpenApiLegacyResponseBase\n    {\n        public static class Types\n        {\n            public class Template\n            {\n                /// <summary>\n                /// 获取或设置模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                public long TemplateId { get; set; }\n\n                /// <summary>\n                /// 获取或设置版本号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_version\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_version\")]\n                public string UserVersion { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_desc\")]\n                public string UserDescription { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置模板列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_list\")]\n        public Types.Template[] TemplateList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Models/_Legacy/__Abstractions/DouyinMicroAppOpenApiLegacyResponseBase.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\n{\n    public abstract class DouyinMicroAppOpenApiLegacyResponseBase : DouyinMicroAppOpenApiResponse\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"errno\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"errno\")]\n        public override int ErrorNumber { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public override string? ErrorMessage { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/OpenApi/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppOpenApiClientOptions.ComponentAppId\"/> 的副本。\n        /// </summary>\n        public string ComponentAppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppOpenApiClientOptions.ComponentAppSecret\"/> 的副本。\n        /// </summary>\n        public string ComponentAppSecret { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.PushToken\"/> 的副本。\n        /// </summary>\n        public string? PushToken { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.PushEncodingAESKey\"/> 的副本。\n        /// </summary>\n        public string? PushEncodingAESKey { get; set; }\n\n        internal Credentials(DouyinMicroAppOpenApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            ComponentAppId = options.ComponentAppId;\n            ComponentAppSecret = options.ComponentAppSecret;\n            PushToken = options.PushToken;\n            PushEncodingAESKey = options.PushEncodingAESKey;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 一个抖音小程序泛知识课程库 API HTTP 客户端。\n    /// </summary>\n    public class DouyinMicroAppProductApiClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的抖音小程序凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinMicroAppProductApiClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinMicroAppProductApiClient(DouyinMicroAppProductApiClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinMicroAppProductApiClient(DouyinMicroAppProductApiClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoints ?? DouyinMicroAppProductApiEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinMicroAppProductApiRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            if (request.AppId is null)\n            {\n                request.AppId = Credentials.AppId;\n            }\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppProductApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppProductApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinMicroAppProductApiClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinMicroAppProductApiClientBuilder : ICommonClientBuilder<DouyinMicroAppProductApiClient>\n    {\n        private readonly DouyinMicroAppProductApiClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinMicroAppProductApiClientBuilder(DouyinMicroAppProductApiClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinMicroAppProductApiClient> ICommonClientBuilder<DouyinMicroAppProductApiClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppProductApiClient> ICommonClientBuilder<DouyinMicroAppProductApiClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppProductApiClient> ICommonClientBuilder<DouyinMicroAppProductApiClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinMicroAppProductApiClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinMicroAppProductApiClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinMicroAppProductApiClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinMicroAppProductApiClient Build()\n        {\n            DouyinMicroAppProductApiClient client = _disposeClient.HasValue\n                ? new DouyinMicroAppProductApiClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinMicroAppProductApiClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinMicroAppProductApiClientBuilder\n    {\n        public static DouyinMicroAppProductApiClientBuilder Create(DouyinMicroAppProductApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinMicroAppProductApiClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinMicroAppProductApiClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinMicroAppProductApiClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音小程序泛知识课程库 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppProductApiEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoints { get; set; } = DouyinMicroAppProductApiEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppId。\n        /// </summary>\n        public string AppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppSecret。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 抖音小程序泛知识课程库 API 接口域名。\n    /// </summary>\n    public static class DouyinMicroAppProductApiEndpoints\n    {\n        /// <summary>\n        /// 泛知识课程接口域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://developer-product.zijieapi.com/product/api\";\n\n        /// <summary>\n        /// 泛知识课程接口沙盒环境域名。\n        /// </summary>\n        public const string SANDBOX = \"https://open-sandbox.douyin.com/product/api\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 表示抖音小程序泛知识课程库 API 消息推送事件的基类。\n    /// </summary>\n    public class DouyinMicroAppProductApiEvent : ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置通知类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notice_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notice_type\")]\n        public virtual int NoticeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置确认通知方身份唯一的标志。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"developer_flag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"developer_flag\")]\n        public virtual string DeveloperFlag { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置自定义回调数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_data\")]\n        public virtual string? CallbackData { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 抖音小程序泛知识课程库 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppProductApiRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音小程序的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppProductApiClient\"/> 时的 <see cref=\"DouyinMicroAppProductApiClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public virtual string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序的 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public virtual string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置沙盒环境自动审核参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? SandboxCheckType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/DouyinMicroAppProductApiResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 抖音小程序泛知识课程库 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppProductApiResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public virtual int ErrorNumber { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        public virtual string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音小程序 API 是否成功。\n        /// <para>\n        /// （即 HTTP 状态码为 200，且 <see cref=\"ErrorNumber\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Events/ProductEvent.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\n{\n    /// <summary>\n    /// <para>表示商品事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/sync-callback-url ]]>\n    /// </para>\n    /// </summary>\n    public class ProductEvent : DouyinMicroAppProductApiEvent\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_name\")]\n        public string ProductName { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商品状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_status\")]\n        public int ProductStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_examine_res\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_examine_res\")]\n        public bool ProductAuditResult { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核失败原因字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public IDictionary<string, string[]>? ProductAuditRejectReasonsMap { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Events/ProductFulfilmentEvent.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\n{\n    /// <summary>\n    /// <para>表示商品履约内容事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/sync-callback-url ]]>\n    /// </para>\n    /// </summary>\n    public class ProductFulfilmentEvent : DouyinMicroAppProductApiEvent\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_name\")]\n        public string ProductName { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置履约文件资源路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"resource_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"resource_uri\")]\n        public string FulfillmentPath { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置履约文件审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n        public int FulfillmentAuditStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核失败位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"position\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"position\")]\n        public string? FulfillmentAuditRejectPosition { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核失败原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public string? FulfillmentAuditRejectReason { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Events/ProductQualificationEvent.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\n{\n    /// <summary>\n    /// <para>表示商品资质事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/sync-callback-url ]]>\n    /// </para>\n    /// </summary>\n    public class ProductQualificationEvent : DouyinMicroAppProductApiEvent\n    {\n        /// <summary>\n        /// 获取或设置审核主体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n        public string ObjectId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置审核主体名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_name\")]\n        public string ObjectType { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置资源状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_status\")]\n        public int ProductStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_examine_res\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_examine_res\")]\n        public bool ProductAuditResult { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核失败原因字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public IDictionary<string, string[]>? ProductAuditRejectReasonsMap { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Events/ProductResourceEvent.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\n{\n    /// <summary>\n    /// <para>表示商品资源事件的数据。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/sync-callback-url ]]>\n    /// </para>\n    /// </summary>\n    public class ProductResourceEvent : DouyinMicroAppProductApiEvent\n    {\n        /// <summary>\n        /// 获取或设置资源路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"resource_tos_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"resource_tos_uri\")]\n        public string ResourcePath { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置资源状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_source_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_source_status\")]\n        public int ResourceStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"produce_source_examine_res\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"produce_source_examine_res\")]\n        public bool ResourceAuditResult { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品审核失败原因字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public IDictionary<string, string[]>? ProductAuditRejectReasonsMap { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientEventExtensions.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    /// <summary>\n    /// 为 <see cref=\"DouyinMicroAppProductApiClient\"/> 提供回调通知事件的扩展方法。\n    /// </summary>\n    public static partial class DouyinMicroAppProductApiClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppProductApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEventFromJson<TEvent>(this DouyinMicroAppProductApiClient client, string webhookJson)\n            where TEvent : DouyinMicroAppProductApiEvent, new()\n        {\n            return InnerDeserializeEventFromJson<TEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppProductApiEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static DouyinMicroAppProductApiEvent DeserializeEventFromJson(this DouyinMicroAppProductApiClient client, string webhookJson)\n        {\n            return InnerDeserializeEventFromJson<DouyinMicroAppProductApiEvent>(client, webhookJson);\n        }\n    }\n\n    partial class DouyinMicroAppProductApiClientEventExtensions\n    {\n        private static TEvent InnerDeserializeEventFromJson<TEvent>(DouyinMicroAppProductApiClient client, string webhookJson)\n            where TEvent : DouyinMicroAppProductApiEvent\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(webhookJson);\n\n            try\n            {\n                return client.JsonSerializer.Deserialize<TEvent>(webhookJson);\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientExecuteCallbackExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    public static class DouyinMicroAppProductApiClientExecuteCallbackExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /sync_callback_url 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/sync-callback-url ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSyncCallbackUrlResponse> ExecuteProductSyncCallbackUrlAsync(this DouyinMicroAppProductApiClient client, Models.ProductSyncCallbackUrlRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"sync_callback_url\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductSyncCallbackUrlResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientExecuteProductExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    public static class DouyinMicroAppProductApiClientExecuteProductExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /add 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product-add ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAddResponse> ExecuteProductAddAsync(this DouyinMicroAppProductApiClient client, Models.ProductAddRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Product.CommonProductInfo.AppId is null)\n                request.Product.CommonProductInfo.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"add\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /modify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product-modify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductModifyResponse> ExecuteProductModifyAsync(this DouyinMicroAppProductApiClient client, Models.ProductModifyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Product.CommonProductInfo.AppId is null)\n                request.Product.CommonProductInfo.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"modify\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductModifyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /modify_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/status-modify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductModifyStatusResponse> ExecuteProductModifyStatusAsync(this DouyinMicroAppProductApiClient client, Models.ProductModifyStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ProductStatusInfo.AppId is null)\n                request.ProductStatusInfo.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"modify_status\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductModifyStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /modify_no_audit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product-modify-no-audit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductModifyNoAuditResponse> ExecuteProductModifyNoAuditAsync(this DouyinMicroAppProductApiClient client, Models.ProductModifyNoAuditRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ProductInfo is not null)\n            {\n                if (request.ProductInfo.AppId is null)\n                    request.ProductInfo.AppId = client.Credentials.AppId;\n            }\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"modify_no_audit\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductModifyNoAuditResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryResponse> ExecuteProductQueryAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_review 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/queryReview ]]>\n        /// </para>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryReviewResponse> ExecuteProductQueryReviewAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryReviewRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_review\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryReviewResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_template_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/query-test-course ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryTemplateInfoResponse> ExecuteProductQueryTemplateInfoAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryTemplateInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_template_info\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryTemplateInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_class_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product/queryClassInfo ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryClassInfoResponse> ExecuteProductQueryClassInfoAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryClassInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_class_info\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryClassInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientExecuteQualificationExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    public static class DouyinMicroAppProductApiClientExecuteQualificationExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /add_qualification 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/qualification-add ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAddQualificationResponse> ExecuteProductAddQualificationAsync(this DouyinMicroAppProductApiClient client, Models.ProductAddQualificationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"add_qualification\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductAddQualificationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /modify_qualification 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/qualification-modify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductModifyQualificationResponse> ExecuteProductModifyQualificationAsync(this DouyinMicroAppProductApiClient client, Models.ProductModifyQualificationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"modify_qualification\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductModifyQualificationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_qualification 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/qualification-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryQualificationResponse> ExecuteProductQueryQualificationAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryQualificationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_qualification\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryQualificationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientExecuteRefundRuleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    public static class DouyinMicroAppProductApiClientExecuteRefundRuleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /query_refund_rule_meta 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/refund-meta-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryRefundRuleMetaResponse> ExecuteProductQueryRefundRuleMetaAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryRefundRuleMetaRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_refund_rule_meta\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryRefundRuleMetaResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /modify_refund_rule 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/product-refund-rule-modify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductModifyRefundRuleResponse> ExecuteProductModifyRefundRuleAsync(this DouyinMicroAppProductApiClient client, Models.ProductModifyRefundRuleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"modify_refund_rule\")\n                .WithHeader(\"Aweme-Check-Type\", request.SandboxCheckType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductModifyRefundRuleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Extensions/DouyinMicroAppProductApiClientExecuteResourceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\n{\n    public static class DouyinMicroAppProductApiClientExecuteResourceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /upload_resource 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/resource-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUploadResourceResponse> ExecuteProductUploadResourceAsync(this DouyinMicroAppProductApiClient client, Models.ProductUploadResourceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"upload_resource\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductUploadResourceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_resource_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/resource-upload-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductQueryResourceStatusResponse> ExecuteProductQueryResourceStatusAsync(this DouyinMicroAppProductApiClient client, Models.ProductQueryResourceStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_resource_status\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductQueryResourceStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Callback/ProductSyncCallbackUrlRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sync_callback_url 接口的请求。</para>\n    /// </summary>\n    public class ProductSyncCallbackUrlRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置接受通知的 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string CallbackUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置确认通知方身份唯一标识。</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"developer_flag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"developer_flag\")]\n        public string DeveloperFlag { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Callback/ProductSyncCallbackUrlResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /sync_callback_url 接口的响应。</para>\n    /// </summary>\n    public class ProductSyncCallbackUrlResponse : DouyinMicroAppProductApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductAddRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add 接口的请求。</para>\n    /// </summary>\n    public class ProductAddRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class Product\n            {\n                public static class Types\n                {\n                    public class CommonProductInfo\n                    {\n                        public static class Types\n                        {\n                            public class PriceInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置价格粒度单位。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                public string Unit { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int Price { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置实际成交价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"real_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"real_price\")]\n                                public int? RealPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置当前服务的实际成交价格区间最低价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"range_min_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"range_min_price\")]\n                                public int? RangeMinPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置当前服务的实际成交价格区间最高价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"range_max_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"range_max_price\")]\n                                public int? RangeMaxPrice { get; set; }\n                            }\n\n                            public class PathInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置跳转的页面。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                public string PagePath { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置页面参数字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"query\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                                public IDictionary<string, string>? QueryMap { get; set; }\n                            }\n\n                            public class ProductFulfilment\n                            {\n                                public static class Types\n                                {\n                                    public class FulfillmentContent\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置履约内容名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = string.Empty;\n\n                                        /// <summary>\n                                        /// 获取或设置文字内容。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                        public string? Text { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置履约文件资源路径。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"fulfillment_uri\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_uri\")]\n                                        public string? FulfillmentPath { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置履约详情。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fulfillment_content\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_content\")]\n                                public Types.FulfillmentContent FulfillmentContent { get; set; } = new Types.FulfillmentContent();\n\n                                /// <summary>\n                                /// 获取或设置履约类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fulfillment_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_type\")]\n                                public int FulfillmentType { get; set; }\n                            }\n\n                            public class ProductDetail\n                            {\n                                public static class Types\n                                {\n                                    public class RichText\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置富文本字符串。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                        public string? String { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置富文本资源路径。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"uri\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                                        public string? FilePath { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置文字。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                public string? Text { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片资源路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"img_uri\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"img_uri\")]\n                                public string? ImagePath { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置富文本内容。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rich_text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rich_text\")]\n                                public Types.RichText? RichText { get; set; }\n                            }\n\n                            public class AnchorInfo\n                            {\n                                public static class Types\n                                {\n                                    public class VideoAnchorInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置锚点文案。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n                                        public string? AnchorTitle { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置视频锚点信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_anchor_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_anchor_info\")]\n                                public Types.VideoAnchorInfo? VideoAnchorInfo { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                        public string? AppId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级商品分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                        public int FirstClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级商品分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                        public int SecondClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置商品资质资源路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_uris\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_uris\")]\n                        public IList<string> QualificationPathList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置购物须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"purchase_precaution\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"purchase_precaution\")]\n                        public string PurchasePrecaution { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置行业类目。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"industry_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"industry_type\")]\n                        public int IndustryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price_info\")]\n                        public Types.PriceInfo PriceInfo { get; set; } = new Types.PriceInfo();\n\n                        /// <summary>\n                        /// 获取或设置路径信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path_info_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path_info_lst\")]\n                        public IList<Types.PathInfo>? PathInfoList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品履约列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_fulfillment_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_fulfillment_lst\")]\n                        public IList<Types.ProductFulfilment>? ProductFulfillmentList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品详情列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_detail_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_detail_lst\")]\n                        public IList<Types.ProductDetail>? ProductDetailLst { get; set; } = new List<Types.ProductDetail>();\n\n                        /// <summary>\n                        /// 获取或设置锚点信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_info\")]\n                        public Types.AnchorInfo? AnchorInfo { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开发者回调数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"callback_data\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"callback_data\")]\n                        public string? CallbackData { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片文件资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_img_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_img_uri\")]\n                        public string? ProductImagePath { get; set; }\n                    }\n\n                    public class CourseInfo\n                    {\n                        public static class Types\n                        {\n                            public class RefundLabel\n                            {\n                                /// <summary>\n                                /// 获取或设置退款标签类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public int Type { get; set; } = 3;\n\n                                /// <summary>\n                                /// 获取或设置「xx天未学可退」标签信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"day_before_use_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"day_before_use_info\")]\n                                public DayBeforeUseInfo? DayBeforeUseInfo { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置「学习进度不足xx%可退」标签信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rest_not_learn_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rest_not_learn_info\")]\n                                public RestNotLearnInfo? RestNotLearnInfo { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置固定退款标签 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fixed\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fixed\")]\n                                public int FixedId { get; set; }\n                            }\n\n                            public class UseLabel\n                            {\n                                /// <summary>\n                                /// 获取或设置有效期字符串（格式：yyyy-MM-dd）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"valid_date\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"valid_date\")]\n                                public string? ValidDateString { get; set; }\n                            }\n\n                            public class DayBeforeUseInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"day\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"day\")]\n                                public int Day { get; set; }\n                            }\n\n                            public class RestNotLearnInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置比例（范围：0～100）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rest_percent\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rest_percent\")]\n                                public int RestPercent { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置老师 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"teacher_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"teacher_id\")]\n                        public string? TeacherId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_id\")]\n                        public string? InstitutionId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置课程节数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"course_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"course_num\")]\n                        public int CourseCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款标签信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_label\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_label\")]\n                        public Types.RefundLabel? RefundLabel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用标签信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"use_label\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"use_label\")]\n                        public Types.UseLabel? UseLabel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置课程开始时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_timestamp\")]\n                        public long? StartTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置课程结束时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_timestamp\")]\n                        public long? EndTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品通用参数信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"common_product_params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"common_product_params\")]\n                public Types.CommonProductInfo CommonProductInfo { get; set; } = new Types.CommonProductInfo();\n\n                /// <summary>\n                /// 获取或设置课程参数信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"course_params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"course_params\")]\n                public Types.CourseInfo? CourseInfo { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n        public Types.Product Product { get; set; } = new Types.Product();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductAddResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add 接口的响应。</para>\n    /// </summary>\n    public class ProductAddResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_id\")]\n                public string? AuditId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyNoAuditRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_no_audit 接口的请求。</para>\n    /// </summary>\n    public class ProductModifyNoAuditRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class ProductInfo\n            {\n                public static class Types\n                {\n                    public class PageInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                        public string PagePath { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置小程序页面查询参数字典。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"query\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                        public IDictionary<string, string> QueryMap { get; set; } = new Dictionary<string, string>();\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                public string AppId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置小程序页面信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path_info_lst\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path_info_lst\")]\n                public IList<Types.PageInfo> PageList { get; set; } = new List<Types.PageInfo>();\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n        public Types.ProductInfo ProductInfo { get; set; } = new Types.ProductInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyNoAuditResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_no_audit 接口的响应。</para>\n    /// </summary>\n    public class ProductModifyNoAuditResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置审核 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_id\")]\n                public string? AuditId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify 接口的请求。</para>\n    /// </summary>\n    public class ProductModifyRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class Product : ProductAddRequest.Types.Product\n            {\n                public new static class Types\n                {\n                    public class CommonProductInfo : ProductAddRequest.Types.Product.Types.CommonProductInfo\n                    {\n                        public new static class Types\n                        {\n                            public class PriceInfo : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.PriceInfo\n                            {\n                            }\n\n                            public class PathInfo : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.PathInfo\n                            {\n                            }\n\n                            public class ProductFulfilment : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.ProductFulfilment\n                            {\n                                public new static class Types\n                                {\n                                    public class FulfillmentContent : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.ProductFulfilment.Types.FulfillmentContent\n                                    {\n                                    }\n                                }\n                            }\n\n                            public class ProductDetail : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.ProductDetail\n                            {\n                                public new static class Types\n                                {\n                                    public class RichText : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.ProductDetail.Types.RichText\n                                    {\n                                    }\n                                }\n                            }\n\n                            public class AnchorInfo : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.AnchorInfo\n                            {\n                                public new static class Types\n                                {\n                                    public class VideoAnchorInfo : ProductAddRequest.Types.Product.Types.CommonProductInfo.Types.AnchorInfo.Types.VideoAnchorInfo\n                                    {\n                                    }\n                                }\n                            }\n                        }\n                    }\n\n                    public class CourseInfo : ProductAddRequest.Types.Product.Types.CourseInfo\n                    {\n                    }\n                }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public long ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n        public int ProductType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n        public Types.Product Product { get; set; } = new Types.Product();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify 接口的响应。</para>\n    /// </summary>\n    public class ProductModifyResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置审核 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_id\")]\n                public string? AuditId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyStatusRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_status 接口的请求。</para>\n    /// </summary>\n    public class ProductModifyStatusRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class ProductStatusInfo\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                public string? AppId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                public long? ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品状态信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_status_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_status_info\")]\n        public Types.ProductStatusInfo ProductStatusInfo { get; set; } = new Types.ProductStatusInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductModifyStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_status 接口的响应。</para>\n    /// </summary>\n    public class ProductModifyStatusResponse : DouyinMicroAppProductApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryClassInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_class_info 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryClassInfoRequest : DouyinMicroAppProductApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryClassInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_class_info 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryClassInfoResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductClassInfo\n                    {\n                        public static class Types\n                        {\n                            public class ClassInfoDetail\n                            {\n                                /// <summary>\n                                /// 获取或设置二级类目 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"second_class_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"second_class_id\")]\n                                public int SecondClassId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置二级类目名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"second_class_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"second_class_name\")]\n                                public string SecondClassName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置分类定义。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"class_definition\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"class_definition\")]\n                                public string? ClassDefinition { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置教师资格证要求。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"teacher_qualification_certificate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"teacher_qualification_certificate\")]\n                                public string? TeacherQualificationCertificate { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置获取或设置专业认证要求。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"professional_certification\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"professional_certification\")]\n                                public string? ProfessionalCertification { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置专业性学历要求。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"professional_education\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"professional_education\")]\n                                public string? ProfessionalEducation { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行业资质提醒。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"qualification_tip\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_tip\")]\n                                public string? QualificationTips { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置特殊提醒。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"special_tip\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"special_tip\")]\n                                public string? SpecialTips { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置文档链接。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"document_link\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"document_link\")]\n                                public string? DocumentLink { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置已入库的课程信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"class_info_detail_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"class_info_detail_list\")]\n                        public Types.ClassInfoDetail[] ClassInfoDetailList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class_id\")]\n                        public int FirstClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置一级类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class_name\")]\n                        public string FirstClassName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置课程类目信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_class_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_class_info_list\")]\n                public Types.ProductClassInfo[] ProductClassInfoList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<long> ProductIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class ProductInfo\n                            {\n                                public static class Types\n                                {\n                                    public class CommonProductInfo\n                                    {\n                                        public static class Types\n                                        {\n                                            public class PriceInfo\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置价格粒度单位。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                                public string Unit { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置价格（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                                public int Price { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置实际成交价格（单位：分）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"real_price\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"real_price\")]\n                                                public int? RealPrice { get; set; }\n                                            }\n\n                                            public class PathInfo\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置跳转的页面。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"path\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                                                public string PagePath { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置页面参数字典。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"query\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                                                public IDictionary<string, string>? QueryMap { get; set; }\n                                            }\n\n                                            public class ProductFulfilment\n                                            {\n                                                public static class Types\n                                                {\n                                                    public class FulfillmentContent\n                                                    {\n                                                        /// <summary>\n                                                        /// 获取或设置履约内容名称。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                                        public string Name { get; set; } = default!;\n\n                                                        /// <summary>\n                                                        /// 获取或设置文字内容。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                                        public string? Text { get; set; }\n\n                                                        /// <summary>\n                                                        /// 获取或设置履约文件资源 URL。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"fulfillment_url\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_url\")]\n                                                        public string? FulfillmentUrl { get; set; }\n                                                    }\n                                                }\n\n                                                /// <summary>\n                                                /// 获取或设置履约详情。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"fulfillment_content\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_content\")]\n                                                public Types.FulfillmentContent FulfillmentContent { get; set; } = new Types.FulfillmentContent();\n\n                                                /// <summary>\n                                                /// 获取或设置履约类型。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"fulfillment_type\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_type\")]\n                                                public int FulfillmentType { get; set; }\n                                            }\n\n                                            public class ProductDetail\n                                            {\n                                                public static class Types\n                                                {\n                                                    public class RichText\n                                                    {\n                                                        /// <summary>\n                                                        /// 获取或设置富文本字符串。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                                        public string? String { get; set; }\n\n                                                        /// <summary>\n                                                        /// 获取或设置富文本资源 URL。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                                        public string? Url { get; set; }\n                                                    }\n                                                }\n\n                                                /// <summary>\n                                                /// 获取或设置文字。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                                public string? Text { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置图片资源 URL。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"img_url\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"img_url\")]\n                                                public string? ImageUrl { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置富文本内容列表。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"rich_text\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"rich_text\")]\n                                                public Types.RichText[]? RichTextList { get; set; }\n                                            }\n\n                                            public class AnchorInfo\n                                            {\n                                                public static class Types\n                                                {\n                                                    public class VideoAnchorInfo\n                                                    {\n                                                        /// <summary>\n                                                        /// 获取或设置锚点文案。\n                                                        /// </summary>\n                                                        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n                                                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n                                                        public string? AnchorTitle { get; set; }\n                                                    }\n                                                }\n\n                                                /// <summary>\n                                                /// 获取或设置视频锚点信息。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"video_anchor_info\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"video_anchor_info\")]\n                                                public Types.VideoAnchorInfo? VideoAnchorInfo { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置小程序 AppId。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"appid\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                                        public string AppId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置一级商品分类。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                                        public int FirstClassId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置二级商品分类。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                                        public int SecondClassId { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                        public string Title { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品资质资源 URL 列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"qualification_urls\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_urls\")]\n                                        public string[] QualificationUrlList { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置购物须知。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"purchase_precaution\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"purchase_precaution\")]\n                                        public string PurchasePrecaution { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置行业类目。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"industry_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"industry_type\")]\n                                        public int IndustryType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置价格信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"price_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"price_info\")]\n                                        public Types.PriceInfo PriceInfo { get; set; } = new Types.PriceInfo();\n\n                                        /// <summary>\n                                        /// 获取或设置路径信息列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"path_info_lst\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"path_info_lst\")]\n                                        public Types.PathInfo[]? PathInfoList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品履约列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_fulfillment_lst\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_fulfillment_lst\")]\n                                        public Types.ProductFulfilment[]? ProductFulfillmentList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置商品详情列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_detail_lst\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_detail_lst\")]\n                                        public Types.ProductDetail[]? ProductDetailLst { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置锚点信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"anchor_info\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_info\")]\n                                        public Types.AnchorInfo? AnchorInfo { get; set; }\n                                    }\n\n                                    public class CourseInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置老师介绍。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"teacher_introduction\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"teacher_introduction\")]\n                                        public string? TeacherIntroduction { get; set; }\n                                    }\n\n                                    public class ProductStatusInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置商品状态。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                        public int Status { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置下架或审核不通过原因。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                        public string? RejectReason { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public long ProductId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                                public int ProductType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品通用参数信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"common_product_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"common_product_info\")]\n                                public Types.CommonProductInfo CommonProductInfo { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置课程参数信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"course_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"course_info\")]\n                                public Types.CourseInfo? CourseInfo { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品状态信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_status\")]\n                                public Types.ProductStatusInfo? ProductStatusInfo { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置已上架的商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_on_shelf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_on_shelf\")]\n                        public Types.ProductInfo? ProductOnShelf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核中的商品信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_reviewing\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_reviewing\")]\n                        public Types.ProductInfo? ProductReviewing { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryReviewRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_review 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryReviewRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<long> ProductIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置查询类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_type\")]\n        public int QueryType { get; set; } = 1;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryReviewResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_review 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryReviewResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductReview\n                    {\n                        public static class Types\n                        {\n                            public class CourseReview\n                            {\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置下架或审核不通过原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最近一次审核 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"latest_audit_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"latest_audit_id\")]\n                                public string? LatestAuditId { get; set; }\n                            }\n\n                            public class FulfillmentReview\n                            {\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置下架或审核不通过原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最近一次审核 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"latest_audit_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"latest_audit_id\")]\n                                public string? LatestAuditId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置履约文件资源路径。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fulfillment_uri\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_uri\")]\n                                public string? FulfillmentPath { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置课程审核信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"course\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"course\")]\n                        public Types.CourseReview? CourseReview { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置履约审核信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fulfillment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment\")]\n                        public Types.FulfillmentReview[]? FulfillmentReviewList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品审核信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products_review\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products_review\")]\n                public IDictionary<long, Types.ProductReview>? ProductReviewMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryTemplateInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_template_info 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryTemplateInfoRequest : DouyinMicroAppProductApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Product/ProductQueryTemplateInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_template_info 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryTemplateInfoResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long ProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核主体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObejctId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductAddQualificationRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_qualification 接口的请求。</para>\n    /// </summary>\n    public class ProductAddQualificationRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class Qualification\n            {\n                public static class Types\n                {\n                    public class TeacherQualification\n                    {\n                        public static class Types\n                        {\n                            public class DouyinAuthInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置抖音开放平台 ClientKey。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"client_key\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n                                public string ClientKey { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置抖音开放平台用户的 OpenId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                                public string OpenId { get; set; } = string.Empty;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                        public int? FirstClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                        public int? SecondClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_class\")]\n                        public int? ThirdClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置身份证号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ID_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ID_number\")]\n                        public string IdCardNumber { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置身份证照片资源路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ID_img_uris\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ID_img_uris\")]\n                        public IList<string> IdCardImagePathList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置照片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img_uri\")]\n                        public string? ImagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"introduction\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"introduction\")]\n                        public string Introduction { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_info_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_info_lst\")]\n                        public IList<Material> MaterialList { get; set; } = new List<Material>();\n\n                        /// <summary>\n                        /// 获取或设置抖音授权信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"douyin_auth_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_auth_info\")]\n                        public IList<Types.DouyinAuthInfo>? DouyinAuthInfoList { get; set; }\n                    }\n\n                    public class InstitutionQualification\n                    {\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_introduction\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_introduction\")]\n                        public string Introduction { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string CompanyIntroduction { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_record_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_record_name\")]\n                        public string InstitutionRecordName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构场景类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_scene_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_scene_type\")]\n                        public string InstitutionSceneType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_subject_type\")]\n                        public string InstitutionSubjectType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置法人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person_name\")]\n                        public string LegalPersonName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置法人身份证号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person_ID_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person_ID_number\")]\n                        public string LegalPersonIdCardNumber { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置法人身份证照片资源路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person_ID_img_uris\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person_ID_img_uris\")]\n                        public IList<string> LegalPersonIdCardImagePathList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置照片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img_uri\")]\n                        public string? ImagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 Logo 资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_logo_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_logo_uri\")]\n                        public string? LogoPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商标资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"institution_trade_mark_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"institution_trade_mark_uri\")]\n                        public string? TradeMarkPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_info_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_info_lst\")]\n                        public IList<Material> MaterialList { get; set; } = new List<Material>();\n                    }\n\n                    public class Material\n                    {\n                        /// <summary>\n                        /// 获取或设置材料类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置材料照片资源路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_uris\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_uris\")]\n                        public IList<string> ImagePathList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置材料有效期字符串（格式：yyyy-MM-dd / \"长期有效\"）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"validity_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"validity_date\")]\n                        public string ValidityDateString { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置证书编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"license_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"license_id\")]\n                        public string? LicenseId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_type\")]\n                public int ObjectType { get; set; }\n\n                /// <summary>\n                /// 获取或设置教师资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"teacher_qualification_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"teacher_qualification_info\")]\n                public Types.TeacherQualification? TeacherQualification { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution_qualification_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution_qualification_info\")]\n                public Types.InstitutionQualification? InstitutionQualification { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification\")]\n        public Types.Qualification Qualification { get; set; } = new Types.Qualification();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductAddQualificationResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_qualification 接口的响应。</para>\n    /// </summary>\n    public class ProductAddQualificationResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置审核主体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObejctId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_id\")]\n                public string? AuditId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductModifyQualificationRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_qualification 接口的请求。</para>\n    /// </summary>\n    public class ProductModifyQualificationRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class Qualification\n            {\n                public static class Types\n                {\n                    public class TeacherQualification\n                    {\n                        public static class Types\n                        {\n                            public class DouyinAuthInfo : ProductAddQualificationRequest.Types.Qualification.Types.TeacherQualification.Types.DouyinAuthInfo\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置一级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                        public int? FirstClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                        public int? SecondClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_class\")]\n                        public int? ThirdClassId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置身份证号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ID_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ID_number\")]\n                        public string IdCardNumber { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置身份证照片资源路径列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ID_img_uris\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ID_img_uris\")]\n                        public IList<string> IdCardImagePathList { get; set; } = new List<string>();\n\n                        /// <summary>\n                        /// 获取或设置照片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"img_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"img_uri\")]\n                        public string? ImagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                        public string Nickname { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"introduction\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"introduction\")]\n                        public string Introduction { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_info_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_info_lst\")]\n                        public IList<Material> MaterialList { get; set; } = new List<Material>();\n\n                        /// <summary>\n                        /// 获取或设置抖音授权信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"douyin_auth_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_auth_info\")]\n                        public IList<Types.DouyinAuthInfo>? DouyinAuthInfoList { get; set; }\n                    }\n\n                    public class InstitutionQualification : ProductAddQualificationRequest.Types.Qualification.Types.InstitutionQualification\n                    {\n                        /// <summary>\n                        /// 获取或设置材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_info_lst\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_info_lst\")]\n                        public new IList<Material> MaterialList { get; set; } = new List<Material>();\n                    }\n\n                    public class Material : ProductAddQualificationRequest.Types.Qualification.Types.Material\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_type\")]\n                public int ObjectType { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核主体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObejctId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置教师资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"teacher_qualification_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"teacher_qualification_info\")]\n                public Types.TeacherQualification? TeacherQualification { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution_qualification_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution_qualification_info\")]\n                public Types.InstitutionQualification? InstitutionQualification { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification\")]\n        public Types.Qualification Qualification { get; set; } = new Types.Qualification();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductModifyQualificationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_qualification 接口的响应。</para>\n    /// </summary>\n    public class ProductModifyQualificationResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data : ProductAddQualificationResponse.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductQueryQualificationRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_qualification 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryQualificationRequest : DouyinMicroAppProductApiRequest\n    {\n        public static class Types\n        {\n            public class ObjectClassification\n            {\n                /// <summary>\n                /// 获取或设置审核主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_type\")]\n                public int ObjectType { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核主体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObjectId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置一级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                public int? FirstClassId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                public int? SecondClassId { get; set; }\n\n                /// <summary>\n                /// 获取或设置三级类目 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_class\")]\n                public int? ThirdClassId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置资质查询单元列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"object_id_with_classifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"object_id_with_classifications\")]\n        public IList<Types.ObjectClassification> ObjectClassificationList { get; set; } = new List<Types.ObjectClassification>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Qualification/ProductQueryQualificationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_qualification 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryQualificationResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Qualification\n                    {\n                        public static class Types\n                        {\n                            public class QualificationInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置审核主体类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"object_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"object_type\")]\n                                public int ObjectType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核主体 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                                public string ObjectId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置一级类目 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                                public int? FirstClassId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置二级类目 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                                public int? SecondClassId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置三级类目 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"third_class\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"third_class\")]\n                                public int? ThirdClassId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核主体名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"object_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"object_name\")]\n                                public string? ObjectName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核主体昵称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                                public string? Nickname { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核失败原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                                public string? FailReson { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置已上架的资质信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_on_shelf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_on_shelf\")]\n                        public Types.QualificationInfo? QualificationOnShelf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核中的资质信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_reviewing\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_reviewing\")]\n                        public Types.QualificationInfo? QualificationReviewing { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核主体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"object_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"object_id\")]\n                public string ObejctId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                public Types.Qualification[] QualificationList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/RefundRule/ProductModifyRefundRuleRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_refund_rule 接口的请求。</para>\n    /// </summary>\n    public class ProductModifyRefundRuleRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 以及对应的规则 ID 字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_rule_map\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_rule_map\")]\n        public IDictionary<long, int> ProductRefundRuleMap { get; set; } = new Dictionary<long, int>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/RefundRule/ProductModifyRefundRuleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /modify_refund_rule 接口的响应。</para>\n    /// </summary>\n    public class ProductModifyRefundRuleResponse : DouyinMicroAppProductApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/RefundRule/ProductQueryRefundRuleMetaRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_refund_rule_meta 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryRefundRuleMetaRequest : DouyinMicroAppProductApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/RefundRule/ProductQueryRefundRuleMetaResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_refund_rule_meta 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryRefundRuleMetaResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class RefundRule\n            {\n                /// <summary>\n                /// 获取或设置规则 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int Id { get; set; }\n\n                /// <summary>\n                /// 获取或设置规则描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string Description { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置规则详情。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"details\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"details\")]\n                public string Detail { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品退款规则列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.RefundRule[] RefundRuleList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Resource/ProductQueryResourceStatusRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_resource_status 接口的请求。</para>\n    /// </summary>\n    public class ProductQueryResourceStatusRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置资源文件路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"resource_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"resource_uri\")]\n        public string ResourcePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Resource/ProductQueryResourceStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_resource_status 接口的响应。</para>\n    /// </summary>\n    public class ProductQueryResourceStatusResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源路径\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_uri\")]\n                public string ResourcePath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上传状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Resource/ProductUploadResourceRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /upload_resource 接口的请求。</para>\n    /// </summary>\n    public class ProductUploadResourceRequest : DouyinMicroAppProductApiRequest\n    {\n        /// <summary>\n        /// 获取或设置资源类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"resource_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"resource_type\")]\n        public int ResourceType { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"resource_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"resource_url\")]\n        public string ResourceUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置自定义回调数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_data\")]\n        public string? CallbackData { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Models/Resource/ProductUploadResourceResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /upload_resource 接口的响应。</para>\n    /// </summary>\n    public class ProductUploadResourceResponse : DouyinMicroAppProductApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"resource_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"resource_uri\")]\n                public string ResourcePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/ProductApi/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppProductApiClientOptions.AppId\"/> 的副本。\n        /// </summary>\n        public string AppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppProductApiClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        internal Credentials(DouyinMicroAppProductApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppId = options.AppId;\n            AppSecret = options.AppSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 一个抖音小程序泛知识角色系统 API HTTP 客户端。\n    /// </summary>\n    public class DouyinMicroAppRoleApiClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的抖音小程序凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinMicroAppRoleApiClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinMicroAppRoleApiClient(DouyinMicroAppRoleApiClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinMicroAppRoleApiClient(DouyinMicroAppRoleApiClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new RoleApi.Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoints ?? DouyinMicroAppRoleApiEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinMicroAppRoleApiRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppRoleApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppRoleApiResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinMicroAppRoleApiClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinMicroAppRoleApiClientBuilder : ICommonClientBuilder<DouyinMicroAppRoleApiClient>\n    {\n        private readonly DouyinMicroAppRoleApiClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinMicroAppRoleApiClientBuilder(DouyinMicroAppRoleApiClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinMicroAppRoleApiClient> ICommonClientBuilder<DouyinMicroAppRoleApiClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppRoleApiClient> ICommonClientBuilder<DouyinMicroAppRoleApiClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppRoleApiClient> ICommonClientBuilder<DouyinMicroAppRoleApiClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinMicroAppRoleApiClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinMicroAppRoleApiClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinMicroAppRoleApiClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinMicroAppRoleApiClient Build()\n        {\n            DouyinMicroAppRoleApiClient client = _disposeClient.HasValue\n                ? new DouyinMicroAppRoleApiClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinMicroAppRoleApiClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinMicroAppRoleApiClientBuilder\n    {\n        public static DouyinMicroAppRoleApiClientBuilder Create(DouyinMicroAppRoleApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinMicroAppRoleApiClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinMicroAppRoleApiClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinMicroAppRoleApiClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音小程序泛知识角色系统 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppRoleApiEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoints { get; set; } = DouyinMicroAppRoleApiEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppId。\n        /// </summary>\n        public string AppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppSecret。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 抖音小程序角色系统 API 接口域名。\n    /// </summary>\n    public class DouyinMicroAppRoleApiEndpoints\n    {\n        /// <summary>\n        /// 接口域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://developer.toutiao.com/auth/entity\";\n\n        /// <summary>\n        /// 沙盒域名。\n        /// </summary>\n        public const string SANDBOX = \"https://open-sandbox.douyin.com/auth/entity\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 抖音小程序泛知识角色系统 API 请求的基类。\n    /// </summary>\n    public class DouyinMicroAppRoleApiRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音小程序的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppRoleApiClient\"/> 时的 <see cref=\"DouyinMicroAppRoleApiClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public virtual string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音小程序的 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public virtual string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/DouyinMicroAppRoleApiResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    /// <summary>\n    /// 抖音小程序泛知识角色系统 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppRoleApiResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public virtual int ErrorNumber { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_tips\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_tips\")]\n        public virtual string? ErrorTips { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err\")]\n        public virtual ByteDanceMicroAppRoleApiResponseError? Error { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音小程序 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorNumber\"/> 值为 0、<see cref=\"Error.ErrorCode\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorNumber == 0 && (Error is null || Error.ErrorCode == 0);\n        }\n    }\n\n    public class ByteDanceMicroAppRoleApiResponseError\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n        public int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public string? ErrorMessage { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Extensions/DouyinMicroAppRoleApiClientExecuteRoleExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppRoleApiClientExecuteRoleExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /upload_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/upload-qualification-materials ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUploadMaterialResponse> ExecuteAuthEntityUploadMaterialAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUploadMaterialRequest request,CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + (request.MaterialType == 1010 ? \".pdf\" : \".jpg\");\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"upload_material\");\n\n            using MultipartFormDataContent httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new StringContent(request.AppId), \"appid\");\n            httpContent.Add(new StringContent(request.AccessToken!), \"access_token\");\n            httpContent.Add(new StringContent(request.MaterialType.ToString()), \"material_type\");\n            return await client.SendFlurlRequestAsync<Models.AuthEntityUploadMaterialResponse>(flurlReq, httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_entity_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-entity-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityQueryEntityInfoResponse> ExecuteAuthEntityQueryEntityInfoAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityQueryEntityInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_entity_info\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityQueryEntityInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Auth\n        /// <summary>\n        /// <para>异步调用 [POST] /bypartner 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/partner-help-teacher-institution-join ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityByPartnerResponse> ExecuteAuthEntityByPartnerAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityByPartnerRequest request,CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"bypartner\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityByPartnerResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /byself 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/institution-partner-join ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityBySelfResponse> ExecuteAuthEntityBySelfAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityBySelfRequest request,CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"byself\");\n\n            var resp = await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityBySelfResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n            return resp;\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /get_basic_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-basic-qualification ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityGetBasicAuthResponse> ExecuteAuthEntityGetBasicAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityGetBasicAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"get_basic_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityGetBasicAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /update_basic_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/update-basic-qualification ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUpdateBasicAuthResponse> ExecuteAuthEntityUpdateBasicAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUpdateBasicAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"update_basic_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUpdateBasicAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /get_class_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-category-qualification ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityGetClassAuthResponse> ExecuteAuthEntityGetClassAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityGetClassAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"get_class_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityGetClassAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /update_class_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/update-category-qualification ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUpdateClassAuthResponse> ExecuteAuthEntityUpdateClassAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUpdateClassAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"update_class_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUpdateClassAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /add_class_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/add-category-qualification ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityAddClassAuthResponse> ExecuteAuthEntityAddClassAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityAddClassAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"add_class_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityAddClassAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /get_audit_detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/get-audit-task-details ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityGetAuditDetailResponse> ExecuteAuthEntityGetAuditDetailAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityGetAuditDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"get_audit_detail\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityGetAuditDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Bind\n        /// <summary>\n        /// <para>异步调用 [POST] /query_mountscope 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-mountscope ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityQueryMountScopeResponse> ExecuteAuthEntityQueryMountScopeAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityQueryMountScopeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_mountscope\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityQueryMountScopeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /enable_mountscope 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/enable-mountscope ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityEnableMountScopeResponse> ExecuteAuthEntityEnableMountScopeAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityEnableMountScopeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"enable_mountscope\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityEnableMountScopeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /unbind_account 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/unbind-mountscope ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUnbindAccountResponse> ExecuteAuthEntityUnbindAccountAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUnbindAccountRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"unbind_account\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUnbindAccountResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_bind_toc_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-mountlist ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityQueryBindToCListResponse> ExecuteAuthEntityQueryBindToCListAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityQueryBindToCListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_bind_toc_list\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityQueryBindToCListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region MerchantCode\n        /// <summary>\n        /// <para>异步调用 [POST] /activate_merchantcode 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/merchant-account-activation ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityActivateMerchantCodeResponse> ExecuteAuthEntityActivateMerchantCodeAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityActivateMerchantCodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"activate_merchantcode\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityActivateMerchantCodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /query_merchantcode_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-merchant-account-activation-state ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityQueryMerchantCodeStatusResponse> ExecuteAuthEntityQueryMerchantCodeStatusAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityQueryMerchantCodeStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"query_merchantcode_status\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityQueryMerchantCodeStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Role\n        /// <summary>\n        /// <para>异步调用 [POST] /add_role 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/add-role ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityAddRoleResponse> ExecuteAuthEntityAddRoleAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityAddRoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"add_role\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityAddRoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /bind_role 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/miniapp-binding-role ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityBindRoleResponse> ExecuteAuthEntityBindRoleAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityBindRoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"bind_role\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityBindRoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /unbind_role 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/miniapp-unbinding-role ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUnbindRoleResponse> ExecuteAuthEntityUnbindRoleAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUnbindRoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"unbind_role\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUnbindRoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /get_bind_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-miniapp-bound-role ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityGetBindListResponse> ExecuteAuthEntityGetBindListAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityGetBindListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"get_bind_list\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityGetBindListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /auth_role 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/role-authorization-miniapp ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityAuthRoleResponse> ExecuteAuthEntityAuthRoleAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityAuthRoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"auth_role\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityAuthRoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /un_auth_role 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/deauthorization-miniapp ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUnauthRoleResponse> ExecuteAuthEntityUnauthRoleAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUnauthRoleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"un_auth_role\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUnauthRoleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /update_authletter 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/update-authorization-letter-of-miniapp ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityUpdateAuthLetterResponse> ExecuteAuthEntityUpdateAuthLetterAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityUpdateAuthLetterRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"update_authletter\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityUpdateAuthLetterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /get_appid_auth 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/pan-knowledge/role/query-authorization-applet ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthEntityGetAppIdAuthResponse> ExecuteAuthEntityGetAppIdAuthAsync(this DouyinMicroAppRoleApiClient client, Models.AuthEntityGetAppIdAuthRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"get_appid_auth\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AuthEntityGetAppIdAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityAddClassAuthRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_class_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityAddClassAuthRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityByPartnerRequest.Types.Person\n            {\n            }\n\n            public class IndustryClass : AuthEntityByPartnerRequest.Types.ClassAuth.Types.IndustryClass\n            {\n            }\n\n            public class Employee\n            {\n                /// <summary>\n                /// 获取或设置机构员工个人身份信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                public Person? EmployeeMaterial { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构和员工合作协议信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                public Material? CooperationAgreement { get; set; }\n            }\n\n            public class Institution\n            {\n                /// <summary>\n                /// 获取或设置机构备案名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                public string RecordName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构场景类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                public string SceneType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                public string SubjectType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构 Logo 图片资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                public string? LogoPath { get; set; }\n\n                /// <summary>\n                /// 获取或设置商标注册证图片资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                public string? TrademarkPath { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构介绍。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string Description { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构合作老师信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"employee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                public Employee? Employee { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业类目信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n        public Types.IndustryClass IndustryClass { get; set; } = new Types.IndustryClass();\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置资质材料列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_qualifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_qualifications\")]\n        public List<Types.Material>? QualificationMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"institution\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"institution\")]\n        public Types.Institution? Institution { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityAddClassAuthResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_class_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityAddClassAuthResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置类目审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth_taskid\")]\n        public string ClassAuthTaskId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityByPartnerRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /bypartner 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityByPartnerRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material\n            {\n                /// <summary>\n                /// 获取或设置资质材料类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_type\")]\n                public int MaterialType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资料过期时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_expiretime\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_expiretime\")]\n                public string MaterialExpireTime { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置资质材料资源路径列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_paths\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_paths\")]\n                public IList<string>? MaterialPaths { get; set; }\n            }\n\n            public class Person\n            {\n                /// <summary>\n                /// 获取或设置个人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置身份证号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_number\")]\n                public string IdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置身份证有效期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public string ExpireTimeString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置身份证正面资源文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_path\")]\n                public string FrontMaterialPath { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置身份证背面资源文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_path\")]\n                public string BackMaterialPath { get; set; } = string.Empty;\n            }\n\n            public class BasicAuth\n            {\n                public static class Types\n                {\n                    public class Enterprise\n                    {\n                        /// <summary>\n                        /// 获取或设置营业执照编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置资质材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_materials\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_materials\")]\n                        public IList<Material>? CertificateMaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                        public Person? LegalPerson { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置实体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_type\")]\n                public int EntityType { get; set; }\n\n                /// <summary>\n                /// 获取或设置实体名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_name\")]\n                public string EntityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件照类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_type\")]\n                public int CertificateType { get; set; }\n\n                /// <summary>\n                /// 获取或设置个人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"individual\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"individual\")]\n                public Person? Individual { get; set; }\n\n                /// <summary>\n                /// 获取或设置企业信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enterprise\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enterprise\")]\n                public Types.Enterprise? Enterprise { get; set; }\n            }\n\n            public class ClassAuth\n            {\n                public static class Types\n                {\n                    public class IndustryClass\n                    {\n                        /// <summary>\n                        /// 获取或设置一级行业类目。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_class\")]\n                        public int FirstClass { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置二级行业类目。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"second_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"second_class\")]\n                        public int SecondClass { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置三级行业类目。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_class\")]\n                        public int ThirdClass { get; set; }\n                    }\n\n                    public class Employee\n                    {\n                        /// <summary>\n                        /// 获取或设置机构员工个人身份信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                        public Person? EmployeeMaterial { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构和员工合作协议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                        public Material? CooperationAgreement { get; set; }\n                    }\n\n                    public class Institution\n                    {\n                        /// <summary>\n                        /// 获取或设置机构备案名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                        public string RecordName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构场景类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                        public string SceneType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public string SubjectType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构 Logo 图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                        public string? LogoPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商标注册证图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                        public string? TrademarkPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构合作老师信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                        public Employee? Employee { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行业编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                public int IndustryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业类目信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n                public Types.IndustryClass IndustryClass { get; set; } = new Types.IndustryClass();\n\n                /// <summary>\n                /// 获取或设置行业角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n                public int IndustryRole { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                public List<Material>? QualificationMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution\")]\n                public Types.Institution? Institution { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置实体基础认证信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth\")]\n        public Types.BasicAuth BasicAuth { get; set; } = new Types.BasicAuth();\n\n        /// <summary>\n        /// 获取或设置实体类目认证信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth\")]\n        public Types.ClassAuth ClassAuth { get; set; } = new Types.ClassAuth();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityByPartnerResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /bypartner 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityByPartnerResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置基础认证任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth_taskid\")]\n        public string BasicAuthTaskId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置类目审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth_taskid\")]\n        public string ClassAuthTaskId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityBySelfRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /byself 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityBySelfRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityByPartnerRequest.Types.Person\n            {\n            }\n\n            public class BasicAuth\n            {\n                public static class Types\n                {\n                    public class Enterprise\n                    {\n                        /// <summary>\n                        /// 获取或设置营业执照编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置资质材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_materials\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_materials\")]\n                        public IList<Material>? CertificateMaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                        public Person? LegalPerson { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置实体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_type\")]\n                public int EntityType { get; set; }\n\n                /// <summary>\n                /// 获取或设置实体名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_name\")]\n                public string EntityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件照类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_type\")]\n                public int CertificateType { get; set; }\n\n                /// <summary>\n                /// 获取或设置企业信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enterprise\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enterprise\")]\n                public Types.Enterprise Enterprise { get; set; } = new Types.Enterprise();\n            }\n\n            public class ClassAuth\n            {\n                public static class Types\n                {\n                    public class IndustryClass : AuthEntityByPartnerRequest.Types.ClassAuth.Types.IndustryClass\n                    {\n                    }\n\n                    public class Employee\n                    {\n                        /// <summary>\n                        /// 获取或设置机构员工个人身份信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                        public Person? EmployeeMaterial { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构和员工合作协议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                        public Material? CooperationAgreement { get; set; }\n                    }\n\n                    public class Institution\n                    {\n                        /// <summary>\n                        /// 获取或设置机构备案名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                        public string RecordName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构场景类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                        public string SceneType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public string SubjectType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构 Logo 图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                        public string? LogoPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商标注册证图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                        public string? TrademarkPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构合作老师信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                        public Employee? Employee { get; set; }\n                    }\n\n                    public class Partner\n                    {\n                        /// <summary>\n                        /// 获取或设置服务商类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                        public string CompanyType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置公司地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_addr\")]\n                        public string CompanyAddress { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置合作案例列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_cases\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_cases\")]\n                        public IList<Material>? CooperationCaseList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行业编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                public int IndustryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业类目信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n                public Types.IndustryClass IndustryClass { get; set; } = new Types.IndustryClass();\n\n                /// <summary>\n                /// 获取或设置行业角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n                public int IndustryRole { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                public List<Material>? QualificationList { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution\")]\n                public Types.Institution? Institution { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务商信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"partner\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"partner\")]\n                public Types.Partner? Partner { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置实体基础认证信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth\")]\n        public Types.BasicAuth BasicAuth { get; set; } = new Types.BasicAuth();\n\n        /// <summary>\n        /// 获取或设置实体类目认证信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth\")]\n        public Types.ClassAuth ClassAuth { get; set; } = new Types.ClassAuth();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityBySelfResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /byself 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityBySelfResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置基础认证任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth_taskid\")]\n        public string BasicAuthTaskId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置类目审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth_taskid\")]\n        public string ClassAuthTaskId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetAuditDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_audit_detail 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityGetAuditDetailRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置审核类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_type\")]\n        public int AuthType { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_taskid\")]\n        public string AuthTaskId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetAuditDetailResponse.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_audit_detail 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityGetAuditDetailResponse : DouyinMicroAppRoleApiResponse\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityGetBasicAuthResponse.Types.Material\n            {\n            }\n\n            public class Qualification : AuthEntityGetBasicAuthResponse.Types.Qualification\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置资质信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n        public Types.Qualification[] QualificationList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetBasicAuthRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_basic_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityGetBasicAuthRequest: DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetBasicAuthResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_basic_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityGetBasicAuthResponse: DouyinMicroAppRoleApiResponse\n    {\n        public static class Types\n        {\n            public class Material\n            {\n                /// <summary>\n                /// 获取或设置资质材料类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_type\")]\n                public int MaterialType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资料过期时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_expiretime\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_expiretime\")]\n                public string MaterialExpireTime { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置资质材料资源路径列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_paths\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_paths\")]\n                public string[]? MaterialPaths { get; set; }\n            }\n\n            public class Person\n            {\n                /// <summary>\n                /// 获取或设置个人姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置身份证号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_number\")]\n                public string IdNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置身份证有效期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public string ExpireTimeString { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置身份证正面资源文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_path\")]\n                public string FrontMaterialPath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置身份证背面资源文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_path\")]\n                public string BackMaterialPath { get; set; } = default!;\n            }\n\n            public class BasicAuth\n            {\n                public static class Types\n                {\n                    public class Enterprise\n                    {\n                        /// <summary>\n                        /// 获取或设置营业执照编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置资质材料列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_materials\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_materials\")]\n                        public Material[]? CertificateMaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                        public Person? LegalPerson { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置实体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_type\")]\n                public int EntityType { get; set; }\n\n                /// <summary>\n                /// 获取或设置实体名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"entity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"entity_name\")]\n                public string EntityName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置证件照类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_type\")]\n                public int CertificateType { get; set; }\n\n                /// <summary>\n                /// 获取或设置个人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"individual\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"individual\")]\n                public Person? Individual { get; set; }\n\n                /// <summary>\n                /// 获取或设置企业信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enterprise\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enterprise\")]\n                public Types.Enterprise? Enterprise { get; set; }\n            }\n\n            public class Qualification\n            {\n                /// <summary>\n                /// 获取或设置资质审核任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_taskid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_taskid\")]\n                public string AuditTaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置资质审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                public int AuditStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_reason\")]\n                public string AuditFailReason { get; set; } = default!;\n\n                /// <summary>\n                ///  获取或设置资质材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                public Material[] QualificationMaterialList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置资质材料中最大的过期时间字符串（格式：yyyy-MM-dd）\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public string ExpireTimeString { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 实体基础认证信息\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth\")]\n        public Types.BasicAuth BasicAuth { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置认证状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_status\")]\n        public int AuthStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置认证失败原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_reason\")]\n        public string? AuthFailReason { get; set; }\n\n        /// <summary>\n        /// 获取或设置线上生效的资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"online_qualification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"online_qualification\")]\n        public Types.Qualification? OnlineQualification { get; set; }\n\n        /// <summary>\n        /// 获取或设置最近审核中的资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_qualification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_qualification\")]\n        public Types.Qualification? AuditQualification { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetClassAuthRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_class_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityGetClassAuthRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class IndustryClass : AuthEntityByPartnerRequest.Types.ClassAuth.Types.IndustryClass\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int? IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业类目信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n        public Types.IndustryClass? IndustryClass { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int? IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityGetClassAuthResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_class_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityGetClassAuthResponse : DouyinMicroAppRoleApiResponse\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityGetBasicAuthResponse.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityGetBasicAuthResponse.Types.Person\n            {\n            }\n\n            public class ClassAuth\n            {\n                public static class Types\n                {\n                    public class IndustryClass : AuthEntityGetClassAuthRequest.Types.IndustryClass\n                    {\n                    }\n\n                    public class Employee\n                    {\n                        /// <summary>\n                        /// 获取或设置机构员工个人身份信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                        public Person? EmployeeMaterial { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构和员工合作协议信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                        public Material? CooperationAgreement { get; set; }\n                    }\n\n                    public class Institution\n                    {\n                        /// <summary>\n                        /// 获取或设置机构备案名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                        public string RecordName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置机构场景类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                        public string SceneType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置机构主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public string SubjectType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置机构 Logo 图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                        public string? LogoPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商标注册证图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                        public string? TrademarkPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置机构合作老师信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                        public Employee? Employee { get; set; }\n                    }\n\n                    public class Partner\n                    {\n                        /// <summary>\n                        /// 获取或设置服务商类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                        public string CompanyType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置公司地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_addr\")]\n                        public string CompanyAddress { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置合作案例列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_cases\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_cases\")]\n                        public Material[]? CooperationCaseList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行业编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                public int IndustryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业类目信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n                public Types.IndustryClass IndustryClass { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置行业角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n                public int IndustryRole { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n                public List<Material>? QualificationMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution\")]\n                public Types.Institution? Institution { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务商信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"partner\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"partner\")]\n                public Types.Partner? Partner { get; set; }\n\n                /// <summary>\n                /// 获取或设置线上生效的资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"online_qualification\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"online_qualification\")]\n                public Qualification? OnlineQualification { get; set; }\n\n                /// <summary>\n                /// 获取或设置最近审核中的资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_qualification\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_qualification\")]\n                public Qualification? AuditQualification { get; set; }\n            }\n\n            public class Qualification : AuthEntityGetBasicAuthResponse.Types.Qualification\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置类目认证信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auths\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auths\")]\n        public Types.ClassAuth[] ClassAuthList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityUpdateBasicAuthRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_basic_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUpdateBasicAuthRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityByPartnerRequest.Types.Person\n            {\n            }\n\n            public class Enterprise\n            {\n                /// <summary>\n                /// 获取或设置营业执照编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                public string CertificateId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置资质材料列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_materials\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_materials\")]\n                public IList<Material>? CertificateMaterialList { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n                public Person? LegalPerson { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置实体名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_name\")]\n        public string EntityName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置个人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"individual\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"individual\")]\n        public Types.Person? Individual { get; set; }\n\n        /// <summary>\n        /// 获取或设置企业信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"enterprise\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"enterprise\")]\n        public Types.Enterprise? Enterprise { get; set; } \n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityUpdateBasicAuthResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_basic_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUpdateBasicAuthResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置基础认证任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"basic_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"basic_auth_taskid\")]\n        public string BasicAuthTaskId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityUpdateClassAuthRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_class_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUpdateClassAuthRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityByPartnerRequest.Types.Person\n            {\n            }\n\n            public class IndustryClass : AuthEntityByPartnerRequest.Types.ClassAuth.Types.IndustryClass\n            {\n            }\n\n            public class Employee\n            {\n                /// <summary>\n                /// 获取或设置机构员工个人身份信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                public Person? EmployeeMaterial { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构和员工合作协议信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                public Material? CooperationAgreement { get; set; }\n            }\n\n            public class Institution\n            {\n                /// <summary>\n                /// 获取或设置机构备案名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                public string RecordName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构场景类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                public string SceneType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构主体类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                public string SubjectType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构 Logo 图片资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                public string? LogoPath { get; set; }\n\n                /// <summary>\n                /// 获取或设置商标注册证图片资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                public string? TrademarkPath { get; set; }\n\n                /// <summary>\n                /// 获取或设置机构介绍。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string Description { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置机构合作老师信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"employee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                public Employee? Employee { get; set; }\n            }\n\n            public class Partner\n            {\n                /// <summary>\n                /// 获取或设置服务商类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                public string CompanyType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置公司地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_addr\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_addr\")]\n                public string CompanyAddress { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置合作案例列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_cases\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_cases\")]\n                public IList<Material>? CooperationCaseList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业类目信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class\")]\n        public Types.IndustryClass IndustryClass { get; set; } = new Types.IndustryClass();\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置资质材料列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_qualifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_qualifications\")]\n        public List<Types.Material>? QualificationMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"institution\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"institution\")]\n        public Types.Institution? Institution { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务商信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner\")]\n        public Types.Partner? Partner { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Auth/AuthEntityUpdateClassAuthResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_class_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUpdateClassAuthResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置类目审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"class_auth_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"class_auth_taskid\")]\n        public string ClassAuthTaskId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/AuthEntityQueryEntityInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_entity_info 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityQueryEntityInfoRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public override string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置证件号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n        public string CertificateId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/AuthEntityQueryEntityInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_entity_info 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityQueryEntityInfoResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/AuthEntityUploadMaterialRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /upload_material 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUploadMaterialRequest: DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置上传文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/AuthEntityUploadMaterialResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /upload_material 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUploadMaterialResponse: DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置资源路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string Path { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityEnableMountScopeRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enable_mountscope 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityEnableMountScopeRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class User\n            {\n                /// <summary>\n                /// 获取或设置应用的 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n                public string ClientKey { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n                public string OpenId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"c_user\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"c_user\")]\n        public Types.User? User { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的抖音号。与字段 <see cref=\"User\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string? AwemeId { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权能力。与字段 <see cref=\"MountScopeList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mount_scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mount_scope\")]\n        public int? MountScope { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权能力列表。与字段 <see cref=\"MountScope\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mount_scope_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mount_scope_list\")]\n        public IList<int>? MountScopeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityEnableMountScopeResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /enable_mountscope 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityEnableMountScopeResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityQueryBindToCListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_bind_toc_list 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityQueryBindToCListRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityQueryBindToCListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_bind_toc_list 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityQueryBindToCListResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id_list\")]\n        public string[] AwemeIdList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityQueryMountScopeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_mountscope 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityQueryMountScopeRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。与字段 <see cref=\"AwemeId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"openid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的抖音号。与字段 <see cref=\"OpenId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string? AwemeId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityQueryMountScopeResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_mountscope 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityQueryMountScopeResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置已授权能力列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scope_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scope_list\")]\n        public int[] MountScopeList { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置绑定状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityUnbindAccountRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /unbind_account 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUnbindAccountRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class User\n            {\n                /// <summary>\n                /// 获取或设置应用的 ClientKey。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"client_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n                public string ClientKey { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n                public string OpenId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"c_user\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"c_user\")]\n        public Types.User? User { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的抖音号。与字段 <see cref=\"User\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string? AwemeId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Bind/AuthEntityUnbindAccountResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /unbind_account 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUnbindAccountResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/MerchantCode/AuthEntityActivateMerchantCodeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /activate_merchantcode 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityActivateMerchantCodeRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置证件号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n        public string CertificateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置激活认证状态回调地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string? CallbackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_code\")]\n        public string? MerchantCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/MerchantCode/AuthEntityActivateMerchantCodeResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /activate_merchantcode 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityActivateMerchantCodeResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/MerchantCode/AuthEntityQueryMerchantCodeStatusRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_merchantcode_status 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityQueryMerchantCodeStatusRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置证件号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n        public string CertificateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_code\")]\n        public string? MerchantCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/MerchantCode/AuthEntityQueryMerchantCodeStatusResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /query_merchantcode_status 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityQueryMerchantCodeStatusResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置激活状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string Status { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置状态描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status_desc\")]\n        public string StatusDescription { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityAddRoleRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_role 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityAddRoleRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n\n            public class Person : AuthEntityByPartnerRequest.Types.Person\n            {\n            }\n\n            public class PartnerRole\n            {\n                public static class Types\n                {\n                    public class Partner\n                    {\n                        /// <summary>\n                        /// 获取或设置服务商类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                        public string CompanyType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置公司地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_addr\")]\n                        public string CompanyAddress { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置合作案例列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cooperation_cases\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_cases\")]\n                        public IList<Material>? CooperationCaseList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置服务商基础信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"partner_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"partner_info\")]\n                public Types.Partner Partner { get; set; } = new Types.Partner();\n            }\n\n            public class InstitutionRole\n            {\n                public static class Types\n                {\n                    public class Institution\n                    {\n                        /// <summary>\n                        /// 获取或设置机构备案名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"record_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"record_name\")]\n                        public string RecordName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构场景类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_type\")]\n                        public string SceneType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构主体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subject_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subject_type\")]\n                        public string SubjectType { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置机构 Logo 图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logo_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logo_uri\")]\n                        public string? LogoPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商标注册证图片资源路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"trademark_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"trademark_uri\")]\n                        public string? TrademarkPath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置机构介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = string.Empty;\n                    }\n\n                    public class InstitutionClass\n                    {\n                        public static class Types\n                        {\n                            public class IndustryClass : AuthEntityByPartnerRequest.Types.ClassAuth.Types.IndustryClass\n                            {\n                            }\n\n                            public class Employee\n                            {\n                                /// <summary>\n                                /// 获取或设置机构员工个人身份信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"employee_material\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"employee_material\")]\n                                public Person? EmployeeMaterial { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置机构和员工合作协议信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cooperation_agreement\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_agreement\")]\n                                public Material? CooperationAgreement { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置行业类目信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"industry_class\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"industry_class\")]\n                        public Types.IndustryClass IndustryClass { get; set; } = new Types.IndustryClass();\n\n                        /// <summary>\n                        /// 获取或设置机构合作老师信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"employee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"employee\")]\n                        public Types.Employee? Employee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置类别认证材料信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"class_material\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"class_material\")]\n                        public Material? ClassMaterial { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置机构基础信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution_info\")]\n                public Types.Institution Institution { get; set; } = new Types.Institution();\n\n                /// <summary>\n                /// 获取或设置机构类目信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"institution_class_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"institution_class_info\")]\n                public Types.InstitutionClass InstitutionClass { get; set; } = new Types.InstitutionClass();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"entity_id\")]\n        public string EntityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置角色类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n        public int IndustryRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务商角色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_role_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_role_info\")]\n        public Types.PartnerRole? PartnerRole { get; set; }\n\n        /// <summary>\n        /// 获取或设置机构角色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"institution_role_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"institution_role_info\")]\n        public Types.InstitutionRole? InstitutionRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityAddRoleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /add_role 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityAddRoleResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置类目认证任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"add_role_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"add_role_taskid\")]\n        public string AddRoleTaskId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityAuthRoleRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /auth_role 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityAuthRoleRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权函材料列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_letters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_letters\")]\n        public List<Types.Material>? AuthLetterMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置权限类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n        public int? Scope { get; set; }\n\n        /// <summary>\n        /// 获取或设置昵称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"nick\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"nick\")]\n        public string Nickname { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置头像资源路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"icon\")]\n        public string IconPath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置角色类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityAuthRoleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /auth_role 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityAuthRoleResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置绑定审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_taskid\")]\n        public string? BindTaskId { get; set; } \n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityBindRoleRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /bind_role 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityBindRoleRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string MerchantEntityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityBindRoleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /bind_role 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityBindRoleResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityGetAppIdAuthRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_appid_auth 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityGetAppIdAuthRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityGetAppIdAuthResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_appid_auth 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityGetAppIdAuthResponse : DouyinMicroAppRoleApiResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Material : AuthEntityGetBasicAuthResponse.Types.Material\n                    {\n                    }\n\n                    public class Qualification : AuthEntityGetBasicAuthResponse.Types.Qualification\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置认证状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_status\")]\n                public int AuthStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置认证失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_reason\")]\n                public string? AuthFailReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置线上生效的授权书信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"online_auth_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"online_auth_letter\")]\n                public Types.Qualification? OnlineAuthLetterQualification { get; set; }\n\n                /// <summary>\n                /// 获取或设置当前审核的的授权书信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_auth_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_auth_letter\")]\n                public Types.Qualification? AuditAuthLetterQualification { get; set; }\n\n                /// <summary>\n                /// 获取或设置权限类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scope\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n                public int Scope { get; set; }\n\n                /// <summary>\n                /// 获取或设置昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nick\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nick\")]\n                public string Nickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置头像资源路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"icon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"icon\")]\n                public string IconPath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                public string Description { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityGetBindListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_bind_list 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityGetBindListRequest : DouyinMicroAppRoleApiRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityGetBindListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /get_bind_list 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityGetBindListResponse : DouyinMicroAppRoleApiResponse\n    {\n        public static class Types\n        {\n            public class BindInfo\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户实体 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n                public string MerchantEnityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置行业编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n                public int IndustryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置行业角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"industry_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"industry_role\")]\n                public int IndustryRole { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置绑定角色列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_info_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_info_list\")]\n        public Types.BindInfo[] BindInfoList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUnauthRoleRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /un_auth_role 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUnauthRoleRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUnauthRoleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /un_auth_role 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUnauthRoleResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUnbindRoleRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /unbind_role 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUnbindRoleRequest : DouyinMicroAppRoleApiRequest\n    {\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string MerchantEntityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUnbindRoleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /unbind_role 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUnbindRoleResponse : DouyinMicroAppRoleApiResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUpdateAuthLetterRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_authletter 接口的请求。</para>\n    /// </summary>\n    public class AuthEntityUpdateAuthLetterRequest : DouyinMicroAppRoleApiRequest\n    {\n        public static class Types\n        {\n            public class Material : AuthEntityByPartnerRequest.Types.Material\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置服务商实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"partner_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"partner_entity_id\")]\n        public string? PartnerEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户实体 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity_id\")]\n        public string? MerchantEntityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public int IndustryCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权函材料列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_letters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_letters\")]\n        public List<Types.Material>? AuthLetterMaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置昵称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"nick\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"nick\")]\n        public string Nickname { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置头像资源路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"icon\")]\n        public string IconPath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n        public string Description { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置角色类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_industry_role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_industry_role\")]\n        public int IndustryRole { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Models/Role/AuthEntityUpdateAuthLetterResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /update_authletter 接口的响应。</para>\n    /// </summary>\n    public class AuthEntityUpdateAuthLetterResponse : DouyinMicroAppRoleApiResponse\n    {\n        /// <summary>\n        /// 获取或设置审核任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_taskid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_taskid\")]\n        public string AuditTaskId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/RoleApi/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppRoleApiClientOptions.AppId\"/> 的副本。\n        /// </summary>\n        public string AppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppRoleApiClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        internal Credentials(DouyinMicroAppRoleApiClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppId = options.AppId;\n            AppSecret = options.AppSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 一个抖音小程序直播小玩法 API HTTP 客户端。\n    /// </summary>\n    public class DouyinMicroAppWebcastClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的抖音小程序凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"DouyinMicroAppWebcastClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public DouyinMicroAppWebcastClient(DouyinMicroAppWebcastClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected DouyinMicroAppWebcastClient(DouyinMicroAppWebcastClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? DouyinMicroAppWebcastEndpoints.DEFAULT;\n            FlurlClient.WithHeader(HttpHeaders.Accept, MimeTypes.Json);\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n\n            Interceptors.Add(new Interceptors.DouyinMicroAppWebcastRequestSigningInterceptor(\n                appId: options.AppId,\n                pkVersion: options.AppKeyVersion,\n                pkPem: options.AppPrivateKey\n            ));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(DouyinMicroAppWebcastRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppWebcastResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : DouyinMicroAppWebcastResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            if (!isSimpleRequest)\n                flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: Content-Type 中不能包含 charset 等其他段\n\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class DouyinMicroAppWebcastClientBuilder : ICommonClientBuilder<DouyinMicroAppWebcastClient>\n    {\n        private readonly DouyinMicroAppWebcastClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private DouyinMicroAppWebcastClientBuilder(DouyinMicroAppWebcastClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<DouyinMicroAppWebcastClient> ICommonClientBuilder<DouyinMicroAppWebcastClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppWebcastClient> ICommonClientBuilder<DouyinMicroAppWebcastClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<DouyinMicroAppWebcastClient> ICommonClientBuilder<DouyinMicroAppWebcastClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public DouyinMicroAppWebcastClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public DouyinMicroAppWebcastClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public DouyinMicroAppWebcastClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public DouyinMicroAppWebcastClient Build()\n        {\n            DouyinMicroAppWebcastClient client = _disposeClient.HasValue\n                ? new DouyinMicroAppWebcastClient(_options, _httpClient, _disposeClient.Value)\n                : new DouyinMicroAppWebcastClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class DouyinMicroAppWebcastClientBuilder\n    {\n        public static DouyinMicroAppWebcastClientBuilder Create(DouyinMicroAppWebcastClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new DouyinMicroAppWebcastClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时使用的配置项。\n    /// </summary>\n    public class DouyinMicroAppWebcastClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置抖音小程序直播小玩法 API 入口点。\n        /// <para>默认值：<see cref=\"DouyinMicroAppWebcastEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = DouyinMicroAppWebcastEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppId。\n        /// </summary>\n        public string AppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序 AppSecret。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序应用密钥版本号。\n        /// <para>默认值：\"1\"</para>\n        /// </summary>\n        public string AppKeyVersion { get; set; } = \"1\";\n\n        /// <summary>\n        /// 获取或设置抖音小程序应用私钥。\n        /// </summary>\n        public string AppPrivateKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖音小程序平台公钥。\n        /// </summary>\n        public string PlatformPublicKey { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 抖音小程序直播小玩法 API 接口域名。\n    /// </summary>\n    public static class DouyinMicroAppWebcastEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://webcast.bytedance.com/api\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 抖音小程序直播小玩法 API 请求的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppWebcastRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音小程序的 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/DouyinMicroAppWebcastResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    /// <summary>\n    /// 抖音小程序直播小玩法 API 响应的基类。\n    /// </summary>\n    public abstract class DouyinMicroAppWebcastResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"errcode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"errcode\")]\n        public virtual long ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取抖音小程序 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"errmsg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"errmsg\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取抖音应答时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ByteTimestamp { get { return GetRawHeaders().GetFirstValueOrEmpty(\"Byte-Timestamp\"); } }\n\n        /// <summary>\n        /// 获取抖音应答随机串。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ByteNonce { get { return GetRawHeaders().GetFirstValueOrEmpty(\"Byte-Nonce-Str\"); } }\n\n        /// <summary>\n        /// 获取抖音应答签名。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ByteSignature { get { return GetRawHeaders().GetFirstValueOrEmpty(\"Byte-Signature\"); } }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用抖音小程序 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorCode\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteAudienceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteAudienceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /audience/join_game 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/audience-play ]]> \n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastAudienceJoinGameResponse> ExecuteWebcastAudienceJoinGameAsync(this DouyinMicroAppWebcastClient client, Models.WebcastAudienceJoinGameRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"audience\", \"join_game\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastAudienceJoinGameResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /audience/leave_game 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/audience-play ]]> \n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastAudienceLeaveGameResponse> ExecuteWebcastAudienceLeaveGameAsync(this DouyinMicroAppWebcastClient client, Models.WebcastAudienceLeaveGameRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"audience\", \"leave_game\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastAudienceLeaveGameResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteBusinessExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteBusinessExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /business/order/pre_create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/payDiamond#_%E9%A2%84%E4%B8%8B%E5%8D%95 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastBusinessOrderPrecreateResponse> ExecuteWebcastBusinessOrderPrecreateAsync(this DouyinMicroAppWebcastClient client, Models.WebcastBusinessOrderPrecreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"business\", \"order\", \"pre_create\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastBusinessOrderPrecreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /business/diamond/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/payDiamond#_%E6%9F%A5%E8%AF%A2%E6%8A%96%E5%B8%81%E6%94%AF%E4%BB%98%E8%AE%A2%E5%8D%95%E7%BB%93%E6%9E%9C ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastBusinessDiamondQueryResponse> ExecuteWebcastBusinessDiamondQueryAsync(this DouyinMicroAppWebcastClient client, Models.WebcastBusinessDiamondQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"business\", \"diamond\", \"query\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastBusinessDiamondQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /business/diamond/reconciliation 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/payDiamond#_%E6%89%B9%E9%87%8F%E5%AE%9E%E6%97%B6%E6%9F%A5%E8%AF%A2%E5%AF%B9%E8%B4%A6%E6%8E%A5%E5%8F%A3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastBusinessDiamondReconciliationResponse> ExecuteWebcastBusinessDiamondReconciliationAsync(this DouyinMicroAppWebcastClient client, Models.WebcastBusinessDiamondReconciliationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"business\", \"diamond\", \"reconciliation\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastBusinessDiamondReconciliationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /business/diamond/order_ack 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/payDiamond#_%E6%8A%96%E5%B8%81%E6%94%AF%E4%BB%98-ack-%E6%8E%A5%E5%8F%A3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastBusinessDiamondOrderAckResponse> ExecuteWebcastBusinessDiamondOrderAckAsync(this DouyinMicroAppWebcastClient client, Models.WebcastBusinessDiamondOrderAckRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"business\", \"diamond\", \"order_ack\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastBusinessDiamondOrderAckResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteCardExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteCardExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /card/default/set 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/global-default-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardDefaultSetResponse> ExecuteWebcastCardDefaultSetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardDefaultSetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"default\", \"set\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardDefaultSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/default/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-global-default-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardDefaultGetResponse> ExecuteWebcastCardDefaultGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardDefaultGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"default\", \"get\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardDefaultGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/set 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/global-default-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardSetResponse> ExecuteWebcastCardSetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardSetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"set\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardSetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-specified-page-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardGetResponse> ExecuteWebcastCardGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"get\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/delete-specified-page-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardDeleteResponse> ExecuteWebcastCardDeleteAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"delete\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/explanation-card-dynamic-update ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardUpdateResponse> ExecuteWebcastCardUpdateAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"update\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /card/get_all_cards_for_user 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-all-user-specified-page-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastCardGetAllCardsForUserResponse> ExecuteWebcastCardGetAllCardsForUserAsync(this DouyinMicroAppWebcastClient client, Models.WebcastCardGetAllCardsForUserRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"card\", \"get_all_cards_for_user\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastCardGetAllCardsForUserResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteFileExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppWebcastClientExecuteFileExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /file/card_image/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/image-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastFileCardImageUploadResponse> ExecuteWebcastFileCardImageUploadAsync(this DouyinMicroAppWebcastClient client, Models.WebcastFileCardImageUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"file\", \"card_image\", \"upload\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"image_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.ImageId)), \"image_id\");\n\n            return await client.SendFlurlRequestAsync<Models.WebcastFileCardImageUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /file/card_image/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/image-review-status-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastFileCardImageGetResponse> ExecuteWebcastFileCardImageGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastFileCardImageGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"file\", \"card_image\", \"get\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastFileCardImageGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /file/card_image/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/image-delete ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastFileCardImageDeleteResponse> ExecuteWebcastFileCardImageDeleteAsync(this DouyinMicroAppWebcastClient client, Models.WebcastFileCardImageDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"file\", \"card_image\", \"delete\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastFileCardImageDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteGamingConExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteGamingConExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/sync_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/quick-select ]]> \n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundSyncStatusResponse> ExecuteWebcastGamingConRoundSyncStatusAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundSyncStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"sync_status\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundSyncStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/upload_user_group_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/quick-select ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundUploadUserGroupInfoResponse> ExecuteWebcastGamingConRoundUploadUserGroupInfoAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadUserGroupInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"upload_user_group_info\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadUserGroupInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/upload_rank_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundUploadRankListResponse> ExecuteWebcastGamingConRoundUploadRankListAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadRankListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"upload_rank_list\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadRankListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/upload_user_result 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundUploadUserResultResponse> ExecuteWebcastGamingConRoundUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadUserResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"upload_user_result\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/complete_upload_user_result 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundCompleteUploadUserResultResponse> ExecuteWebcastGamingConRoundCompleteUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundCompleteUploadUserResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"complete_upload_user_result\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundCompleteUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/round/co_game_upload_user_data 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/audience-play ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConRoundCoGameUploadUserDataResponse> ExecuteWebcastGamingConRoundCoGameUploadUserDataAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundCoGameUploadUserDataRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"round\", \"co_game_upload_user_data\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundCoGameUploadUserDataResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/world_rank/set_valid_version 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConWorldRankSetValidVersionResponse> ExecuteWebcastGamingConWorldRankSetValidVersionAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankSetValidVersionRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"world_rank\", \"set_valid_version\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankSetValidVersionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/world_rank/upload_rank_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConWorldRankUploadRankListResponse> ExecuteWebcastGamingConWorldRankUploadRankListAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankUploadRankListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"world_rank\", \"upload_rank_list\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankUploadRankListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/world_rank/upload_user_result 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConWorldRankUploadUserResultResponse> ExecuteWebcastGamingConWorldRankUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankUploadUserResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"world_rank\", \"upload_user_result\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /gaming_con/world_rank/complete_upload_user_result 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastGamingConWorldRankCompleteUploadUserResultResponse> ExecuteWebcastGamingConWorldRankCompleteUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankCompleteUploadUserResultRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gaming_con\", \"world_rank\", \"complete_upload_user_result\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankCompleteUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteGiftExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteGiftExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /gift/top_gift 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/danmu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-04-01 下线。\")]\n        public static async Task<Models.WebcastGiftTopGiftResponse> ExecuteWebcastGiftTopGiftAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGiftTopGiftRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"gift\", \"top_gift\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGiftTopGiftResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteLinkMicExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteLinkMicExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /linkmic/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/mic ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastLinkMicQueryResponse> ExecuteWebcastLinkMicQueryAsync(this DouyinMicroAppWebcastClient client, Models.WebcastLinkMicQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"linkmic\", \"query\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastLinkMicQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteLiveDataExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteLiveDataExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /live_data/task/start 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/danmu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastLiveDataTaskStartResponse> ExecuteWebcastLiveDataTaskStartAsync(this DouyinMicroAppWebcastClient client, Models.WebcastLiveDataTaskStartRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"live_data\", \"task\", \"start\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastLiveDataTaskStartResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /live_data/task/stop 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/danmu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastLiveDataTaskStopResponse> ExecuteWebcastLiveDataTaskStopAsync(this DouyinMicroAppWebcastClient client, Models.WebcastLiveDataTaskStopRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"live_data\", \"task\", \"stop\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastLiveDataTaskStopResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /live_data/task/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/danmu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastLiveDataTaskGetResponse> ExecuteWebcastLiveDataTaskGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastLiveDataTaskGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"live_data\", \"task\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithHeader(\"appid\", request.AppId)\n                .WithHeader(\"roomid\", request.RoomId)\n                .WithHeader(\"msg_type\", request.MessageType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastLiveDataTaskGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /live_data/task/fail_data/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/danmu ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastLiveDataTaskFailDataGetResponse> ExecuteWebcastLiveDataTaskFailDataGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastLiveDataTaskFailDataGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"live_data\", \"task\", \"fail_data\", \"get\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithHeader(\"appid\", request.AppId)\n                .WithHeader(\"roomid\", request.RoomId)\n                .WithHeader(\"msg_type\", request.MessageType)\n                .WithHeader(\"page_num\", request.PageNumber)\n                .WithHeader(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastLiveDataTaskFailDataGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteQuizExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteQuizExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /quiz/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/get_quiz_list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastQuizGetResponse> ExecuteWebcastQuizGetAsync(this DouyinMicroAppWebcastClient client, Models.WebcastQuizGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"quiz\", \"get\")\n                .WithHeader(\"X-Token\", request.AccessToken)\n                .SetQueryParam(\"level\", request.Level)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"num\", request.Number);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastQuizGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteWebcastMateExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    public static class DouyinMicroAppWebcastClientExecuteWebcastMateExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /webcastmate/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/webcastinfo ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.WebcastWebcastMateInfoResponse> ExecuteWebcastWebcastMateInfoAsync(this DouyinMicroAppWebcastClient client, Models.WebcastWebcastMateInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"webcastmate\", \"info\")\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.WebcastWebcastMateInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientResponseVerificationExtensions.cs",
    "content": "using System;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    public static class DouyinMicroAppWebcastClientResponseVerificationExtensions\n    {\n        /// <summary>\n        /// <para>验证响应签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/sign#%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"response\"></param>\n        /// <returns></returns>\n        public static ErroredResult VerifyResponseSignature<TResponse>(this DouyinMicroAppWebcastClient client, TResponse response)\n            where TResponse : DouyinMicroAppWebcastResponse\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (response is null) throw new ArgumentNullException(nameof(response));\n\n            ErroredResult result;\n\n            try\n            {\n                StringBuilder stringBuilder = new StringBuilder();\n                stringBuilder.Append(response.ByteTimestamp);\n                stringBuilder.Append(\"\\n\");\n                stringBuilder.Append(response.ByteNonce);\n                stringBuilder.Append(\"\\n\");\n                stringBuilder.Append(Encoding.UTF8.GetString(response.GetRawBytes()));\n                stringBuilder.Append(\"\\n\");\n\n                bool valid = Utilities.RSAUtility.VerifyWithSHA256(\n                    publicKeyPem: client.Credentials.PlatformPublicKey,\n                    messageData: stringBuilder.ToString(),\n                    encodingSignature: new EncodedString(response.ByteSignature, EncodingKinds.Base64)\n                );\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match. Maybe \\\"{response.ByteSignature}\\\" is an illegal signature.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Interceptors/DouyinMicroAppWebcastRequestSigningInterceptor.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Interceptors\n{\n    using SKIT.FlurlHttpClient.Internal;\n\n    internal class DouyinMicroAppWebcastRequestSigningInterceptor : HttpInterceptor\n    {\n        private readonly string _appId;\n        private readonly string _pkVersion;\n        private readonly string _pkPem;\n\n        public DouyinMicroAppWebcastRequestSigningInterceptor(string appId, string pkVersion, string pkPem)\n        {\n            _appId = appId;\n            _pkVersion = pkVersion;\n            _pkPem = pkPem;\n        }\n\n        public override async Task BeforeCallAsync(HttpInterceptorContext context, CancellationToken cancellationToken = default)\n        {\n            if (context is null) throw new ArgumentNullException(nameof(context));\n            if (context.FlurlCall.Completed) throw new DouyinMicroAppException(\"Failed to sign request. This interceptor must be called before request completed.\");\n\n            string method = context.FlurlCall.HttpRequestMessage.Method.ToString().ToUpper();\n            string url = context.FlurlCall.HttpRequestMessage.RequestUri?.PathAndQuery ?? string.Empty;\n            string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString();\n            string nonce = Guid.NewGuid().ToString(\"N\");\n            string body = string.Empty;\n\n            if (context.FlurlCall.HttpRequestMessage?.Content is not null)\n            {\n                if (context.FlurlCall.HttpRequestMessage.Content is MultipartFormDataContent)\n                {\n                    // noop!\n                }\n                else if (method != \"GET\")\n                {\n                    HttpContent httpContent = context.FlurlCall.HttpRequestMessage.Content;\n                    body = await _AsyncEx.RunTaskWithCancellationTokenAsync(httpContent.ReadAsStringAsync(), cancellationToken).ConfigureAwait(false);\n                }\n            }\n\n            string signData = $\"{method}\\n{url}\\n{timestamp}\\n{nonce}\\n{body}\\n\";\n            string sign;\n\n            try\n            {\n                sign = Utilities.RSAUtility.SignWithSHA256(_pkPem, signData).Value!;\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to sign request. Please see the inner exception for more details.\", ex);\n            }\n\n            context.FlurlCall.Request.WithHeader(\"Byte-Authorization\", $\"SHA256-RSA2048 appid=\\\"{_appId}\\\",nonce_str=\\\"{nonce}\\\",timestamp=\\\"{timestamp}\\\",key_version=\\\"{_pkVersion}\\\",signature=\\\"{sign}\\\"\");\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Audience/WebcastAudienceJoinGameRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /audience/join_game 接口的请求。</para>\n    /// </summary>\n    public class WebcastAudienceJoinGameRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Audience/WebcastAudienceJoinGameResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /audience/join_game 接口的响应。</para>\n    /// </summary>\n    public class WebcastAudienceJoinGameResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Audience/WebcastAudienceLeaveGameRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /audience/leave_game 接口的请求。</para>\n    /// </summary>\n    public class WebcastAudienceLeaveGameRequest : WebcastAudienceJoinGameRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Audience/WebcastAudienceLeaveGameResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /audience/leave_game 接口的响应。</para>\n    /// </summary>\n    public class WebcastAudienceLeaveGameResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondOrderAckRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/order_ack 接口的请求。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondOrderAckRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置抖币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"diamonds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"diamonds\")]\n        public int Diamonds { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondOrderAckResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/order_ack 接口的响应。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondOrderAckResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置支付状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ack_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ack_status\")]\n        public int AckStatus { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondQueryRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/query 接口的请求。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondQueryRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/query 接口的响应。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondQueryResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        public int OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置付费点。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_tag\")]\n        public string PayTag { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置抖币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"diamonds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"diamonds\")]\n        public int Diamonds { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondReconciliationRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/reconciliation 接口的请求。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondReconciliationRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询起始时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n        public DateTimeOffset StartTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询终止时间。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n        public DateTimeOffset EndTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：100</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"limit\")]\n        public int Limit { get; set; } = 100;\n\n        /// <summary>\n        /// 获取或设置分页起始位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"offset\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"offset\")]\n        public int Offset { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessDiamondReconciliationResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/diamond/reconciliation 接口的响应。</para>\n    /// </summary>\n    public class WebcastBusinessDiamondReconciliationResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Order\n            {\n                /// <summary>\n                /// 获取或设置直播间 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string RoomId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public int OrderStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置付费点。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_tag\")]\n                public string PayTag { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖币数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"diamonds\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"diamonds\")]\n                public int Diamonds { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset CreateTime { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_list\")]\n        public Types.Order[] OrderList { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置数据总量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n        public int TotalCount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessOrderPrecreateRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/order/pre_create 接口的请求。</para>\n    /// </summary>\n    public class WebcastBusinessOrderPrecreateRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_trade_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_trade_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置付费点。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_tag\")]\n        public string PayTag { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置抖币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"diamonds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"diamonds\")]\n        public int Diamonds { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置通知回调 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string NotifyUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"valid_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"valid_time\")]\n        public int ValidIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Business/WebcastBusinessOrderPrecreateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /business/order/pre_create 接口的响应。</para>\n    /// </summary>\n    public class WebcastBusinessOrderPrecreateResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDefaultGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/default/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardDefaultGetRequest : DouyinMicroAppWebcastRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDefaultGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/default/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardDefaultGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class CardValue\n            {\n                public static class Types\n                {\n                    public class TitleInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置主标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"main_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"main_title\")]\n                        public string MainTitle { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置副标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_title\")]\n                        public string? SubTitle { get; set; }\n                    }\n\n                    public class StatusTagInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置标签类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tag_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tag_type\")]\n                        public int? TagType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_timestamp\")]\n                        public long? StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stop_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stop_timestamp\")]\n                        public long? StopTimestamp { get; set; }\n                    }\n\n                    public class PropertyTagInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 Logo 图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"store_logo_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"store_logo_id\")]\n                        public string? StoreLogoImageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"store_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"store_name\")]\n                        public string? StoreName { get; set; }\n                    }\n\n                    public class ButtonInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置按钮类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"btn_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"btn_type\")]\n                        public int? ButtonType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public string? PriceString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置颜色十六进制值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"color\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"color\")]\n                        public string? Color { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置状态标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_tag\")]\n                public Types.StatusTagInfo? StatusTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_tag\")]\n                public Types.PropertyTagInfo? PropertyTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置标题信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public Types.TitleInfo? TitleInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置按钮信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"btn\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"btn\")]\n                public Types.ButtonInfo? ButtonInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置讲解卡类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int CardType { get; set; }\n\n        /// <summary>\n        /// 获取或设置讲解卡内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n        public Types.CardValue CardValue { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核意见。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_opinion\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_opinion\")]\n        public string? AuditOpinion { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDefaultSetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/default/set 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardDefaultSetRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class CardValue\n            {\n                public static class Types\n                {\n                    public class TitleInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置主标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"main_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"main_title\")]\n                        public string MainTitle { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置副标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_title\")]\n                        public string? SubTitle { get; set; }\n                    }\n\n                    public class StatusTagInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置标签类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tag_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tag_type\")]\n                        public int? TagType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_timestamp\")]\n                        public long? StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stop_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stop_timestamp\")]\n                        public long? StopTimestamp { get; set; }\n                    }\n\n                    public class PropertyTagInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 Logo 图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"store_logo_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"store_logo_id\")]\n                        public string? StoreLogoImageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"store_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"store_name\")]\n                        public string? StoreName { get; set; }\n                    }\n\n                    public class ButtonInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置按钮类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"btn_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"btn_type\")]\n                        public int? ButtonType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public string? PriceString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置颜色十六进制值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"color\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"color\")]\n                        public string? Color { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置状态标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_tag\")]\n                public Types.StatusTagInfo? StatusTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_tag\")]\n                public Types.PropertyTagInfo? PropertyTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置标题信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public Types.TitleInfo? TitleInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置按钮信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"btn\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"btn\")]\n                public Types.ButtonInfo? ButtonInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置讲解卡类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int CardType { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置讲解卡内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.CardValue CardValue { get; set; } = new Types.CardValue();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDefaultSetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/default/set 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardDefaultSetResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核反馈。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"feedback\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"feedback\")]\n        public string? Feedback { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDeleteRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/delete 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardDeleteRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string PagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardDeleteResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/delete 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardDeleteResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置删除状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardGetAllCardsForUserRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/get_all_cards_for_user 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardGetAllCardsForUserRequest : DouyinMicroAppWebcastRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardGetAllCardsForUserResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/get_all_cards_for_user 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardGetAllCardsForUserResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Card\n            {\n                public static class Types\n                {\n                    public class CardValue : WebcastCardDefaultGetResponse.Types.CardValue\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string PagePath { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string PagePath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置讲解卡类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n                public int CardType { get; set; }\n\n                /// <summary>\n                /// 获取或设置讲解卡内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public Types.CardValue CardValue { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核意见。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_opinion\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_opinion\")]\n                public string? AuditOpinion { get; set; }\n\n                /// <summary>\n                /// 获取或设置达人 UID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                public long? UserUID { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置讲解卡列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_list\")]\n        public Types.Card[] CardList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardGetRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string PagePath { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class CardValue : WebcastCardDefaultGetResponse.Types.CardValue\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置讲解卡类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int CardType { get; set; }\n\n        /// <summary>\n        /// 获取或设置讲解卡内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n        public Types.CardValue CardValue { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置审核意见。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_opinion\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_opinion\")]\n        public string? AuditOpinion { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardSetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/set 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardSetRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class CardValue\n            {\n                public static class Types\n                {\n                    public class TitleInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.TitleInfo\n                    { \n                    }\n\n                    public class StatusTagInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.StatusTagInfo\n                    {\n                    }\n\n                    public class PropertyTagInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.PropertyTagInfo\n                    {\n                    }\n\n                    public class ButtonInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.ButtonInfo\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置状态标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_tag\")]\n                public Types.StatusTagInfo? StatusTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_tag\")]\n                public Types.PropertyTagInfo? PropertyTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置标题信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public Types.TitleInfo? TitleInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置按钮信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"btn\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"btn\")]\n                public Types.ButtonInfo? ButtonInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置讲解卡类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int CardType { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置讲解卡内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.CardValue CardValue { get; set; } = new Types.CardValue();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardSetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/set 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardSetResponse : WebcastCardDefaultSetResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardUpdateRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/update 接口的请求。</para>\n    /// </summary>\n    public class WebcastCardUpdateRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class CardValue\n            {\n                public static class Types\n                {\n                    public class TitleInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.TitleInfo\n                    {\n                    }\n\n                    public class StatusTagInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.StatusTagInfo\n                    {\n                    }\n\n                    public class PropertyTagInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.PropertyTagInfo\n                    {\n                    }\n\n                    public class ButtonInfo : WebcastCardDefaultSetRequest.Types.CardValue.Types.ButtonInfo\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置状态标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_tag\")]\n                public Types.StatusTagInfo? StatusTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置属性标签信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"property_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"property_tag\")]\n                public Types.PropertyTagInfo? PropertyTagInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置标题信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public Types.TitleInfo? TitleInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置按钮信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"btn\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"btn\")]\n                public Types.ButtonInfo? ButtonInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置讲解卡类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"card_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n        public int CardType { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置讲解卡内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.CardValue CardValue { get; set; } = new Types.CardValue();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Card/WebcastCardUpdateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /card/update 接口的响应。</para>\n    /// </summary>\n    public class WebcastCardUpdateResponse : WebcastCardDefaultSetResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageDeleteRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/delete 接口的请求。</para>\n    /// </summary>\n    public class WebcastFileCardImageDeleteRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<string> ImageIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageDeleteResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/delete 接口的响应。</para>\n    /// </summary>\n    public class WebcastFileCardImageDeleteResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageGetRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastFileCardImageGetRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<string> ImageIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastFileCardImageGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Result\n            {\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核意见。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_opinion\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_opinion\")]\n                public string? AuditOpinion { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置结果列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images_status\")]\n        public Types.Result[] ResultList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageUploadRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/upload 接口的请求。</para>\n    /// </summary>\n    public class WebcastFileCardImageUploadRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ImageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/File/WebcastFileCardImageUploadResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /file/card_image/upload 接口的响应。</para>\n    /// </summary>\n    public class WebcastFileCardImageUploadResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <summary>\n        /// 获取或设置图片状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundCoGameUploadUserDataRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/co_game_upload_user_data 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundCoGameUploadUserDataRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class Anchor\n            {\n                /// <summary>\n                /// 获取或设置主播的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n                public string AnchorOpenId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​房间 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                public string RoomId { get; set; } = string.Empty;\n            }\n\n            public class User\n            {\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​用户得分。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"score\")]\n                public long Score { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置​​对局状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_status\")]\n        public int RoundStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_infos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_infos\")]\n        public IList<Types.Anchor> AnchorList { get; set; } = new List<Types.Anchor>();\n\n        /// <summary>\n        /// 获取或设置用户列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_list\")]\n        public IList<Types.User> UserList { get; set; } = new List<Types.User>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundCoGameUploadUserDataResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/co_game_upload_user_data 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundCoGameUploadUserDataResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundCompleteUploadUserResultRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/complete_upload_user_result 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundCompleteUploadUserResultRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n        public string AnchorOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传完成时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"complete_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"complete_time\")]\n        public long? CompleteTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundCompleteUploadUserResultResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/complete_upload_user_result 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundCompleteUploadUserResultResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundSyncStatusRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/sync_status 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundSyncStatusRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class GroupResult\n            {\n                /// <summary>\n                /// 获取或设置阵营 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​​对局结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public int RoundResult { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n        public string AnchorOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置本局开始时间戳​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置本局结束时间戳​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置对局状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置阵型的结果数据​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_result_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_result_list\")]\n        public IList<Types.GroupResult>? GroupResultList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundSyncStatusResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/sync_status 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundSyncStatusResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadRankListRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_rank_list 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadRankListRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class Rank : WebcastGamingConWorldRankUploadRankListRequest.Types.Rank\n            {\n                /// <summary>\n                /// 获取或设置阵营 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​​对局结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"round_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"round_result\")]\n                public int RoundResult { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n        public string AnchorOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置对局榜单列表​​​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rank_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rank_list\")]\n        public IList<Types.Rank> RankList { get; set; } = new List<Types.Rank>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadRankListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_rank_list 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadRankListResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadUserGroupInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_user_group_info 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadUserGroupInfoRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n        public string AnchorOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置阵营 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n        public string GroupId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadUserGroupInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_user_group_info 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadUserGroupInfoResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadUserResultRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_user_result 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadUserResultRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class User : WebcastGamingConWorldRankUploadUserResultRequest.Types.User\n            {\n                /// <summary>\n                /// 获取或设置阵营 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                public string GroupId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​​对局结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"round_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"round_result\")]\n                public int RoundResult { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n        public string AnchorOpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​房间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​​对局 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"round_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"round_id\")]\n        public long RoundId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户对局数据列表​​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_list\")]\n        public IList<Types.User> UserList { get; set; } = new List<Types.User>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundUploadUserResultResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/round/upload_user_result 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConRoundUploadUserResultResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankCompleteUploadUserResultRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/complete_upload_user_result 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankCompleteUploadUserResultRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否是线上数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_online_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_online_version\")]\n        public bool IsOnlineVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置​当前榜单的生效版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"world_rank_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"world_rank_version\")]\n        public string WorldRankVersion { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上传完成时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"complete_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"complete_time\")]\n        public long? CompleteTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankCompleteUploadUserResultResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/complete_upload_user_result 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankCompleteUploadUserResultResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankSetValidVersionRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/set_valid_version 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankSetValidVersionRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否是线上数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_online_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_online_version\")]\n        public bool IsOnlineVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置​当前榜单的生效版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"world_rank_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"world_rank_version\")]\n        public string WorldRankVersion { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankSetValidVersionResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/set_valid_version 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankSetValidVersionResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankUploadRankListRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/upload_rank_list 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankUploadRankListRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class Rank\n            {\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置​世界榜单排名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"rank\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"rank\")]\n                public long Ranking { get; set; }\n\n                /// <summary>\n                /// 获取或设置世界榜单积分​。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"score\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"score\")]\n                public long Score { get; set; }\n\n                /// <summary>\n                /// 获取或设置连胜次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"winning_streak_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"winning_streak_count\")]\n                public long WinningStreakCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置胜点记录。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"winning_points\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"winning_points\")]\n                public long WinningPoints { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否是线上数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_online_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_online_version\")]\n        public bool IsOnlineVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置​当前榜单的生效版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"world_rank_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"world_rank_version\")]\n        public string WorldRankVersion { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置​世界榜单列表​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rank_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rank_list\")]\n        public IList<Types.Rank> RankList { get; set; } = new List<Types.Rank>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankUploadRankListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/upload_rank_list 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankUploadRankListResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankUploadUserResultRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/upload_user_result 接口的请求。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankUploadUserResultRequest : DouyinMicroAppWebcastRequest\n    {\n        public static class Types\n        {\n            public class User : WebcastGamingConWorldRankUploadRankListRequest.Types.Rank\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否是线上数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_online_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_online_version\")]\n        public bool IsOnlineVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置​当前榜单的生效版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"world_rank_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"world_rank_version\")]\n        public string WorldRankVersion { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户累计战绩数据列表​。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_list\")]\n        public IList<Types.User> UserList { get; set; } = new List<Types.User>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConWorldRankUploadUserResultResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gaming_con/world_rank/upload_user_result 接口的响应。</para>\n    /// </summary>\n    public class WebcastGamingConWorldRankUploadUserResultResponse : DouyinMicroAppWebcastResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Gift/WebcastGiftTopGiftRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gift/top_gift 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-04-01 下线。\")]\n    public class WebcastGiftTopGiftRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置置顶礼物的礼物 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sec_gift_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sec_gift_id_list\")]\n        public IList<string> GiftIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Gift/WebcastGiftTopGiftResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /gift/top_gift 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-04-01 下线。\")]\n    public class WebcastGiftTopGiftResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置成功置顶的礼物 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_top_gift_id_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_top_gift_id_list\")]\n                public string[] SuccessfulGiftIdList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LinkMic/WebcastLinkMicQueryRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /linkmic/query 接口的请求。</para>\n    /// </summary>\n    public class WebcastLinkMicQueryRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n        public string RoomId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LinkMic/WebcastLinkMicQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /linkmic/query 接口的响应。</para>\n    /// </summary>\n    public class WebcastLinkMicQueryResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class BaseInfo\n            {\n                /// <summary>\n                /// 获取或设置连麦 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_id\")]\n                public string LinkId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置麦位总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置麦位剩余数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"free_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"free_count\")]\n                public int FreeCount { get; set; }\n            }\n\n            public class User\n            {\n                public static class Types\n                {\n                    public class AppInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置麦上用户宿主是否支持云启动玩法。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"host_app_start_app_available\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"host_app_start_app_available\")]\n                        public bool? IsHostAppStartAppAvailable { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                public string? AvatarUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                public string? Nickname { get; set; } \n\n                /// <summary>\n                /// 获取或设置加密头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sec_avatar_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sec_avatar_url\")]\n                public string? SecretAvatarUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置加密昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sec_nick_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sec_nick_name\")]\n                public string? SecretNickname { get; set; }\n\n                /// <summary>\n                /// 获取或设置连麦状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_state\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_state\")]\n                public int LinkState { get; set; }\n\n                /// <summary>\n                /// 获取或设置麦位位置。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"link_position\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"link_position\")]\n                public int LinkPosition { get; set; }\n\n                /// <summary>\n                /// 获取或设置禁用麦克风状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_microphone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_microphone\")]\n                public int MicrophoneDisableState { get; set; }\n\n                /// <summary>\n                /// 获取或设置麦克风状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"microphone_state\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"microphone_state\")]\n                public int MicrophoneState { get; set; }\n\n                /// <summary>\n                /// 获取或设置禁用摄像头状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_camera\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_camera\")]\n                public int CameraDisableState { get; set; }\n\n                /// <summary>\n                /// 获取或设置摄像头状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"camera_state\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"camera_state\")]\n                public int CameraState { get; set; }\n\n                /// <summary>\n                /// 获取或设置麦上用户玩法相关信息​。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_info\")]\n                public Types.AppInfo? AppInfo { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置麦位基本信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"base_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"base_info\")]\n        public Types.BaseInfo BaseInfo { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置麦位用户列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_list\")]\n        public Types.User[] UserList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskFailDataGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live_data/task/fail_data/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskFailDataGetRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MessageType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskFailDataGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live_data/task/fail_data/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskFailDataGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailedData\n                    {\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"roomid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"roomid\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string RoomId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置直播间消息类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n                        public string MessageType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置数据 JSON 字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payload\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payload\")]\n                        public string PayloadJson { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置失败数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_list\")]\n                public Types.FailedData[] FailedDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n                public int PageNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public override long ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logid\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live_data/task/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskGetRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MessageType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live_data/task/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public override long ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logid\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskStartRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live_data/task/start 接口的请求。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskStartRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"roomid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"roomid\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n        public string? MessageType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskStartResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live_data/task/start 接口的响应。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskStartResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public override long ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logid\")]\n        public string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskStopRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live_data/task/stop 接口的请求。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskStopRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppWebcastClient\"/> 时的 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"roomid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"roomid\")]\n        public string RoomId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n        public string? MessageType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/LiveData/WebcastLiveDataTaskStopResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live_data/task/stop 接口的响应。</para>\n    /// </summary>\n    public class WebcastLiveDataTaskStopResponse : DouyinMicroAppWebcastResponse\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n        public override long ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置请求日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"logid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"logid\")]\n        public string? LogId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Quiz/WebcastQuizGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /quiz/get 接口的请求。</para>\n    /// </summary>\n    public class WebcastQuizGetRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置难度等级。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Level { get; set; }\n\n        /// <summary>\n        /// 获取或设置题目类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置题目数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Number { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/Quiz/WebcastQuizGetResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /quiz/get 接口的响应。</para>\n    /// </summary>\n    public class WebcastQuizGetResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Quiz\n                    {\n                        /// <summary>\n                        /// 获取或设置题目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置题目标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置题目选项列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"options\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"options\")]\n                        public string[] OptionList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置题目答案下标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"answer\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"answer\")]\n                        public int AnswerIndex { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置题目列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Quiz[] QuizList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/WebcastMate/WebcastWebcastMateInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /webcastmate/info 接口的请求。</para>\n    /// </summary>\n    public class WebcastWebcastMateInfoRequest : DouyinMicroAppWebcastRequest\n    {\n        /// <summary>\n        /// 获取或设置直播伴侣 Token。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"token\")]\n        public string WebcastMateToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/WebcastMate/WebcastWebcastMateInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /webcastmate/info 接口的响应。</para>\n    /// </summary>\n    public class WebcastWebcastMateInfoResponse : DouyinMicroAppWebcastResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class LiveInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string RoomId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_open_id\")]\n                        public string AnchorOpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string AnchorNickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                        public string AnchorAvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支持的游戏场景列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"available_game_scenes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"available_game_scenes\")]\n                        public int[]? AvailableGameSceneList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当前加入游戏的用户 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"join_game_user_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"join_game_user_open_id\")]\n                        public string? JoinedGameUserOpenId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当前加入游戏的用户角色。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"join_game_user_role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"join_game_user_role\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? JoinedGameUserRole { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置直播信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"info\")]\n                public Types.LiveInfo LiveInfo { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppWebcastClientOptions.AppId\"/> 的副本。\n        /// </summary>\n        public string AppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppWebcastClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppWebcastClientOptions.PlatformPublicKey\"/> 的副本。\n        /// </summary>\n        public string PlatformPublicKey { get; set; } = default!;\n\n        internal Credentials(DouyinMicroAppWebcastClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppId = options.AppId;\n            AppSecret = options.AppSecret;\n            PlatformPublicKey = options.PlatformPublicKey;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientEventExtensions.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Xml.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// 为 <see cref=\"DouyinMicroAppClient\"/> 提供回调通知事件的扩展方法。\n    /// </summary>\n    public static partial class DouyinMicroAppClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEventFromJson<TEvent>(this DouyinMicroAppClient client, string webhookJson)\n            where TEvent : DouyinMicroAppEvent, new()\n        {\n            return InnerDeserializeEventFromJson<TEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"DouyinMicroAppEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static DouyinMicroAppEvent DeserializeEventFromJson(this DouyinMicroAppClient client, string webhookJson)\n        {\n            return InnerDeserializeEventFromJson<DouyinMicroAppEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 XML 反序列化得到 <see cref=\"DouyinMicroAppEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEventFromXml<TEvent>(this DouyinMicroAppClient client, string webhookXml)\n            where TEvent : DouyinMicroAppEvent, new()\n        {\n            return InnerDeserializeEventFromXml<TEvent>(client, webhookXml);\n        }\n\n        /// <summary>\n        /// <para>从 XML 反序列化得到 <see cref=\"DouyinMicroAppEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static DouyinMicroAppEvent DeserializeEventFromXml(this DouyinMicroAppClient client, string webhookXml)\n        {\n            return InnerDeserializeEventFromXml<DouyinMicroAppEvent>(client, webhookXml);\n        }\n\n        /// <summary>\n        /// <para>验证回调通知事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/message-push-customer-service ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookTimestamp\">头条回调通知中的 \"timestamp\" 查询参数。</param>\n        /// <param name=\"webhookNonce\">头条回调通知中的 \"nonce\" 查询参数。</param>\n        /// <param name=\"webhookMsg\">头条回调通知中的 \"msg\" 查询参数。</param>\n        /// <param name=\"webhookSignature\">头条回调通知中的 \"signature\" 查询参数。</param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignatureForEcho(this DouyinMicroAppClient client, string webhookTimestamp, string webhookNonce, string webhookMsg, string webhookSignature)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n\n            ErroredResult result;\n\n            try\n            {\n                List<string> tmp = new List<string>(capacity: 4) { client.Credentials.PushToken!, webhookTimestamp, webhookNonce, webhookMsg };\n                tmp.Sort(StringComparer.Ordinal);\n                string sign = Utilities.SHA1Utility.Hash(string.Concat(tmp)).Value!;\n                bool valid = string.Equals(sign, webhookSignature, StringComparison.OrdinalIgnoreCase);\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match. Maybe \\\"{webhookSignature}\\\" is an illegal signature.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n\n        /// <summary>\n        /// <para>验证回调通知事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/overview-guide/smallprogram/encryption ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignatureFromJson(this DouyinMicroAppClient client, string webhookJson)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n\n            ErroredResult result;\n\n            try\n            {\n                InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(webhookJson);\n                bool valid = Utilities.DyMsgCryptor.VerifySignature(\n                    sToken: client.Credentials.PushToken!,\n                    sTimestamp: encryptedEvent.TimestampString,\n                    sNonce: encryptedEvent.Nonce,\n                    sMsgEncrypt: encryptedEvent.EncryptedData,\n                    sMsgSign: encryptedEvent.Signature\n                );\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n\n        /// <summary>\n        /// <para>验证回调通知事件签名。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/overview-guide/smallprogram/encryption ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookXml\"></param>\n        /// <returns></returns>\n        public static ErroredResult VerifyEventSignatureFromXml(this DouyinMicroAppClient client, string webhookXml)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n\n            ErroredResult result;\n\n            try\n            {\n                XDocument xdoc = XDocument.Parse(webhookXml);\n                bool valid = Utilities.DyMsgCryptor.VerifySignature(\n                    sToken: client.Credentials.PushToken!,\n                    sTimestamp: xdoc.Root!.Element(\"TimeStamp\")!.Value,\n                    sNonce: xdoc.Root!.Element(\"Nonce\")!.Value,\n                    sMsgEncrypt: xdoc.Root!.Element(\"Encrypt\")!.Value,\n                    sMsgSign: xdoc.Root!.Element(\"MsgSignature\")!.Value\n                );\n\n                if (valid)\n                    result = ErroredResult.Ok();\n                else\n                    result = ErroredResult.Fail(new Exception($\"Signature does not match.\"));\n            }\n            catch (Exception ex)\n            {\n                result = ErroredResult.Fail(ex);\n            }\n\n            return result;\n        }\n    }\n\n    partial class DouyinMicroAppClientEventExtensions\n    {\n        private class InnerEncryptedEvent\n        {\n            [Newtonsoft.Json.JsonProperty(\"Encrypt\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"Encrypt\")]\n            [System.Xml.Serialization.XmlElement(\"Encrypt\")]\n            public string EncryptedData { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"TimeStamp\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"TimeStamp\")]\n            [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n            [System.Xml.Serialization.XmlElement(\"TimeStamp\")]\n            public string TimestampString { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"Nonce\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"Nonce\")]\n            [System.Xml.Serialization.XmlElement(\"Nonce\")]\n            public string Nonce { get; set; } = default!;\n\n            [Newtonsoft.Json.JsonProperty(\"MsgSignature\")]\n            [System.Text.Json.Serialization.JsonPropertyName(\"MsgSignature\")]\n            [System.Xml.Serialization.XmlElement(\"MsgSignature\")]\n            public string Signature { get; set; } = default!;\n        }\n\n        private static TEvent InnerDeserializeEventFromJson<TEvent>(DouyinMicroAppClient client, string webhookJson)\n            where TEvent : DouyinMicroAppEvent\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(webhookJson);\n\n            try\n            {\n                if (webhookJson.Contains(\"\\\"Encrypt\\\"\"))\n                {\n                    InnerEncryptedEvent encryptedEvent = client.JsonSerializer.Deserialize<InnerEncryptedEvent>(webhookJson);\n                    webhookJson = Utilities.DyMsgCryptor.AESDecrypt(cipherText: encryptedEvent.EncryptedData, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);\n                }\n\n                return client.JsonSerializer.Deserialize<TEvent>(webhookJson);\n            }\n            catch (DouyinMicroAppException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n\n        private static TEvent InnerDeserializeEventFromXml<TEvent>(DouyinMicroAppClient client, string webhookXml)\n            where TEvent : DouyinMicroAppEvent\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookXml is null) throw new ArgumentNullException(webhookXml);\n\n            try\n            {\n                if (webhookXml.Contains(\"<Encrypt>\") && webhookXml.Contains(\"</Encrypt>\"))\n                {\n                    if (!Utilities.DyMsgCryptor.TryParseXml(webhookXml, out string encryptedXml))\n                        throw new DouyinMicroAppException(\"Failed to decrypt event data, because the encrypted data is empty.\");\n\n                    webhookXml = Utilities.DyMsgCryptor.AESDecrypt(cipherText: encryptedXml, encodingAESKey: client.Credentials.PushEncodingAESKey!, out _);\n                }\n\n                return Utilities.XmlHelper.Deserialize<TEvent>(webhookXml);\n            }\n            catch (DouyinMicroAppException)\n            {\n                throw;\n            }\n            catch (Exception ex)\n            {\n                throw new DouyinMicroAppException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsAdPlacementExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsAdPlacementExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/ad_placement/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/query-ad-placement-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsAdPlacementQueryV1Response> ExecuteAppsAdPlacementQueryV1Async(this DouyinMicroAppClient client, Models.AppsAdPlacementQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"ad_placement\", \"query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsAdPlacementQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/ad_placement/add/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/add-ad-placement ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsAdPlacementAddV1Response> ExecuteAppsAdPlacementAddV1Async(this DouyinMicroAppClient client, Models.AppsAdPlacementAddV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"ad_placement\", \"add/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsAdPlacementAddV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/ad_placement/update/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/update-ad-placement-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsAdPlacementUpdateV1Response> ExecuteAppsAdPlacementUpdateV1Async(this DouyinMicroAppClient client, Models.AppsAdPlacementUpdateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"ad_placement\", \"update/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsAdPlacementUpdateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/auth/get_related_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/get-related-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsAuthGetRelatedIdV1Response> ExecuteAppsAuthGetRelatedIdV1Async(this DouyinMicroAppClient client, Models.AppsAuthGetRelatedIdV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"auth\", \"get_related_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsAuthGetRelatedIdV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsCapacityExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsCapacityExtensions\n    {\n        #region Ad\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v3/capacity/query_ad_income/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/query-ad-income ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryAdIncomeV3Response> ExecuteAppsCapacityQueryAdIncomeV3Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryAdIncomeV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v3\", \"capacity\", \"query_ad_income/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_date\", request.StartDateString)\n                .SetQueryParam(\"end_date\", request.EndDateString)\n                .SetQueryParam(\"host_name\", request.HostName);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryAdIncomeV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v3/capacity/query_ad_settlement_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/query-ad-settlement-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryAdSettlementListV3Response> ExecuteAppsCapacityQueryAdSettlementListV3Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryAdSettlementListV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v3\", \"capacity\", \"query_ad_settlement_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"month\", request.PeriodString)\n                .SetQueryParam(\"status\", request.Status);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryAdSettlementListV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region AwemeBind\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/get_aweme_bind_template_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/get-template-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityGetAwemeBindTemplateListV1Response> ExecuteAppsCapacityGetAwemeBindTemplateListV1Async(this DouyinMicroAppClient client, Models.AppsCapacityGetAwemeBindTemplateListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"get_aweme_bind_template_list/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityGetAwemeBindTemplateListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/get_aweme_bind_template_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/get-aweme-bind-template-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityGetAwemeBindTemplateInfoV1Response> ExecuteAppsCapacityGetAwemeBindTemplateInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityGetAwemeBindTemplateInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"get_aweme_bind_template_info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityGetAwemeBindTemplateInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/bind_aweme_relation/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/bind-aweme-relation ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityBindAwemeRelationV1Response> ExecuteAppsCapacityBindAwemeRelationV1Async(this DouyinMicroAppClient client, Models.AppsCapacityBindAwemeRelationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"bind_aweme_relation/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityBindAwemeRelationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/unbind_aweme_relation/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/unbind-aweme-relation ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityUnbindAwemeRelationV1Response> ExecuteAppsCapacityUnbindAwemeRelationV1Async(this DouyinMicroAppClient client, Models.AppsCapacityUnbindAwemeRelationV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"unbind_aweme_relation/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityUnbindAwemeRelationV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/get_aweme_relation_bind_qrcode/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/get-aweme-relation-bind-qrcode ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityGetAwemeRelationBindQrcodeV1Response> ExecuteAppsCapacityGetAwemeRelationBindQrcodeV1Async(this DouyinMicroAppClient client, Models.AppsCapacityGetAwemeRelationBindQrcodeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"get_aweme_relation_bind_qrcode/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"capacity_list\", string.Join(\",\", request.CapacityKeyList))\n                .SetQueryParam(\"is_co_subject\", request.IsCoSubject.HasValue ? request.IsCoSubject.Value ? \"true\" : \"false\" : null);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityGetAwemeRelationBindQrcodeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_aweme_relation_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-bind/query-aweme-relation-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryAwemeRelationListV1Response> ExecuteAppsCapacityQueryAwemeRelationListV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryAwemeRelationListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_aweme_relation_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryAwemeRelationListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region AwemeKeyword\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_aweme_video_keyword_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-capacity/query-aweme-video-keyword ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryAwemeVideoKeywordListV1Response> ExecuteAppsCapacityQueryAwemeVideoKeywordListV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryAwemeVideoKeywordListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_aweme_video_keyword_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryAwemeVideoKeywordListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/add_aweme_video_keyword/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-capacity/add-aweme-video-keyword ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityAddAwemeVideoKeywordV1Response> ExecuteAppsCapacityAddAwemeVideoKeywordV1Async(this DouyinMicroAppClient client, Models.AppsCapacityAddAwemeVideoKeywordV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"add_aweme_video_keyword/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityAddAwemeVideoKeywordV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/delete_aweme_video_keyword/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/aweme-capacity/delete-aweme-video-keyword ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityDeleteAwemeVideoKeywordV1Response> ExecuteAppsCapacityDeleteAwemeVideoKeywordV1Async(this DouyinMicroAppClient client, Models.AppsCapacityDeleteAwemeVideoKeywordV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"delete_aweme_video_keyword/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityDeleteAwemeVideoKeywordV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Delivery\n        /// <summary>\n        /// <para>异步调用 [POST] /aweme/apps/v1/alias/create_alias/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/add-alias ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityCreateAliasV1Response> ExecuteAppsCapacityCreateAliasV1Async(this DouyinMicroAppClient client, Models.AppsCapacityCreateAliasV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"aweme\", \"apps\", \"v1\", \"alias\", \"create_alias/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityCreateAliasV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /aweme/apps/v1/alias/list_alias/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/query-alias-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityListAliasV1Response> ExecuteAppsCapacityListAliasV1Async(this DouyinMicroAppClient client, Models.AppsCapacityListAliasV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"aweme\", \"apps\", \"v1\", \"alias\", \"list_alias/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityListAliasV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/modify_alias/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/modify-alias ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityModifyAliasV1Response> ExecuteAppsCapacityModifyAliasV1Async(this DouyinMicroAppClient client, Models.AppsCapacityModifyAliasV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"modify_alias/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityModifyAliasV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/delete_alias/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/delete-alias ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityDeleteAliasV1Response> ExecuteAppsCapacityDeleteAliasV1Async(this DouyinMicroAppClient client, Models.AppsCapacityDeleteAliasV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"delete_alias/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityDeleteAliasV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/set_search_tag/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/set-search-tag ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacitySetSearchTagV1Response> ExecuteAppsCapacitySetSearchTagV1Async(this DouyinMicroAppClient client, Models.AppsCapacitySetSearchTagV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"set_search_tag/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacitySetSearchTagV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_search_tag_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/delivery/query-search-tag-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQuerySearchTagListV1Response> ExecuteAppsCapacityQuerySearchTagListV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQuerySearchTagListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_search_tag_list/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQuerySearchTagListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SimpleQrcode\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v2/capacity/query_simple_qr_bind_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/simple-qr-code/query-simple-qr-bind-listv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQuerySimpleQrcodeBindListV2Response> ExecuteAppsCapacityQuerySimpleQrcodeBindListV2Async(this DouyinMicroAppClient client, Models.AppsCapacityQuerySimpleQrcodeBindListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v2\", \"capacity\", \"query_simple_qr_bind_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQuerySimpleQrcodeBindListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/capacity/add_simple_qr_bind/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/simple-qr-code/add-simple-qr-bindv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityAddSimpleQrcodeBindV2Response> ExecuteAppsCapacityAddSimpleQrcodeBindV2Async(this DouyinMicroAppClient client, Models.AppsCapacityAddSimpleQrcodeBindV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"capacity\", \"add_simple_qr_bind/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityAddSimpleQrcodeBindV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/capacity/update_simple_qr_bind/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/simple-qr-code/update-simple-qr-bindv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityUpdateSimpleQrcodeBindV2Response> ExecuteAppsCapacityUpdateSimpleQrcodeBindV2Async(this DouyinMicroAppClient client, Models.AppsCapacityUpdateSimpleQrcodeBindV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"capacity\", \"update_simple_qr_bind/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityUpdateSimpleQrcodeBindV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/capacity/update_simple_qr_bind_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/simple-qr-code/update-simple-qr-bind-statusv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityUpdateSimpleQrcodeBindStatusV2Response> ExecuteAppsCapacityUpdateSimpleQrcodeBindStatusV2Async(this DouyinMicroAppClient client, Models.AppsCapacityUpdateSimpleQrcodeBindStatusV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"capacity\", \"update_simple_qr_bind_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityUpdateSimpleQrcodeBindStatusV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/capacity/delete_simple_qr_bind/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/simple-qr-code/delete-simple-qr-bindv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityDeleteSimpleQrcodeBindV2Response> ExecuteAppsCapacityDeleteSimpleQrcodeBindV2Async(this DouyinMicroAppClient client, Models.AppsCapacityDeleteSimpleQrcodeBindV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"capacity\", \"delete_simple_qr_bind/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityDeleteSimpleQrcodeBindV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SubService\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/create_ma_sub_service/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/search/create-ma-sub-service ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityCreateMicroAppSubServiceV1Response> ExecuteAppsCapacityCreateMicroAppSubServiceV1Async(this DouyinMicroAppClient client, Models.AppsCapacityCreateMicroAppSubServiceV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"create_ma_sub_service/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityCreateMicroAppSubServiceV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_ma_sub_service/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/search/query-ma-sub-service ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryMicroAppSubServiceV1Response> ExecuteAppsCapacityQueryMicroAppSubServiceV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryMicroAppSubServiceV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_ma_sub_service/\")\n                .SetQueryParam(\"page_no\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"approval_state\", request.ApprovalState)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryMicroAppSubServiceV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsCategoryExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsCategoryExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/category/query_app_categories/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/category/query-app-categories ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCategoryQueryAppCategoriesV1Response> ExecuteAppsCategoryQueryAppCategoriesV1Async(this DouyinMicroAppClient client, Models.AppsCategoryQueryAppCategoriesV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"category\", \"query_app_categories/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCategoryQueryAppCategoriesV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsCensorExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsCensorExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/censor/image 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/content-security/picture-detect-v3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCensorImageV1Response> ExecuteAppsCensorImageV1Async(this DouyinMicroAppClient client, Models.AppsCensorImageV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"censor\", \"image\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCensorImageV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsDeveloperToolboxExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsDeveloperToolboxExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/developer_toolbox/image_material/upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/image-material/upload-image-material ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDeveloperToolboxImageMaterialUploadV1Response> ExecuteAppsDeveloperToolboxImageMaterialUploadV1Async(this DouyinMicroAppClient client, Models.AppsDeveloperToolboxImageMaterialUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"developer_toolbox\", \"image_material\", \"upload/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDeveloperToolboxImageMaterialUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/developer_toolbox/image_material/function_config/add/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/image-material/add-function-config ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Response> ExecuteAppsDeveloperToolboxImageMaterialFunctionConfigAddV1Async(this DouyinMicroAppClient client, Models.AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"developer_toolbox\", \"image_material\", \"function_config\", \"add/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/developer_toolbox/image_material/function_config/query_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/image-material/query-function-config-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Response> ExecuteAppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Async(this DouyinMicroAppClient client, Models.AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"developer_toolbox\", \"image_material\", \"function_config\", \"query_status/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"function_id\", request.FunctionId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsDouyinExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsDouyinExtensions\n    {\n        #region InteractTask\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/douyin/create_interact_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/interact-task/create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDouyinCreateInteractTaskV1Response> ExecuteAppsDouyinCreateInteractTaskV1Async(this DouyinMicroAppClient client, Models.AppsDouyinCreateInteractTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"douyin\", \"create_interact_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDouyinCreateInteractTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/douyin/query_user_interact_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/interact-task/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDouyinQueryUserInteractTaskV1Response> ExecuteAppsDouyinQueryUserInteractTaskV1Async(this DouyinMicroAppClient client, Models.AppsDouyinQueryUserInteractTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"douyin\", \"query_user_interact_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDouyinQueryUserInteractTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Task\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/douyin/create_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/douyin_task/create_task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDouyinCreateTaskV1Response> ExecuteAppsDouyinCreateTaskV1Async(this DouyinMicroAppClient client, Models.AppsDouyinCreateTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"douyin\", \"create_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDouyinCreateTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/douyin/query_user_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/douyin_task/query_task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsDouyinQueryUserTaskV1Response> ExecuteAppsDouyinQueryUserTaskV1Async(this DouyinMicroAppClient client, Models.AppsDouyinQueryUserTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"douyin\", \"query_user_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsDouyinQueryUserTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsECPayExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsECPayExtensions\n    {\n        #region Bill\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v3/fund/bills/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/GetBills/fund_bills ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsFundBillsV3Response> ExecuteAppsFundBillsV3Async(this DouyinMicroAppClient client, Models.AppsFundBillsV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v3\", \"fund\", \"bills/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsFundBillsV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v3/bills/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/GetBills/bill ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsBillsV3Response> ExecuteAppsBillsV3Async(this DouyinMicroAppClient client, Models.AppsBillsV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v3\", \"bills/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsBillsV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS\n        #region SaaS/Applyment\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/create_merchant/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/api/create-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSCreateMerchantV3Response> ExecuteAppsECPaySaaSCreateMerchantV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSCreateMerchantV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"create_merchant/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSCreateMerchantV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/image_upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/api/image-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSImageUploadV3Response> ExecuteAppsECPaySaaSImageUploadV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSImageUploadV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"image_upload/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: \"image.jpg\", fileBytes: request.ImageFileBytes, fileContentType: \"image/jpeg\", formDataName: \"image_content\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.ImageType)), \"image_type\");\n\n            return await client.SendFlurlRequestAsync<Models.AppsECPaySaaSImageUploadV3Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/query_merchant_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/api/query_merchant_status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryMerchantStatusV3Response> ExecuteAppsECPaySaaSQueryMerchantStatusV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryMerchantStatusV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"query_merchant_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryMerchantStatusV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS/Links\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/add_merchant/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/saas/add-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/saas/add-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAddMerchantV3Response> ExecuteAppsECPaySaaSAddMerchantV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSAddMerchantV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppId is null)\n                request.ComponentAppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"add_merchant/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAddMerchantV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/get_app_merchant/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/saas/get-app-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/saas/get-app-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSGetAppMerchantV3Response> ExecuteAppsECPaySaaSGetAppMerchantV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSGetAppMerchantV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"get_app_merchant/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSGetAppMerchantV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/app_add_sub_merchant/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/saas/app_add_sub_merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/saas/app-add-sub-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAppAddSubMerchantV3Response> ExecuteAppsECPaySaaSAppAddSubMerchantV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSAppAddSubMerchantV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"app_add_sub_merchant\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAppAddSubMerchantV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v3/saas/add_sub_merchant/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/applyments/saas/add-sub-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/saas/add-sub-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAddSubMerchantV3Response> ExecuteAppsECPaySaaSAddSubMerchantV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSAddSubMerchantV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v3\", \"saas\", \"add_sub_merchant/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAddSubMerchantV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS/Withdraw\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/query_merchant_balance/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/api/query-merchant-balance ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryMerchantBalanceV3Response> ExecuteAppsECPaySaaSQueryMerchantBalanceV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryMerchantBalanceV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"query_merchant_balance/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryMerchantBalanceV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/merchant_withdraw/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/api/merchant-withdraw ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSMerchantWithdrawV3Response> ExecuteAppsECPaySaaSMerchantWithdrawV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSMerchantWithdrawV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"merchant_withdraw/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSMerchantWithdrawV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/query_withdraw_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/withdraw/api/query-withdraw-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryWithdrawOrderV3Response> ExecuteAppsECPaySaaSQueryWithdrawOrderV3Async(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryWithdrawOrderV3Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"query_withdraw_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryWithdrawOrderV3Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsItemExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsItemExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/get_base/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get-basic-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemGetBaseV1Response> ExecuteAppsItemGetBaseV1Async(this DouyinMicroAppClient client, Models.AppsItemGetBaseV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"get_base/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemGetBaseV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/get_base/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get_base_bc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCGetBaseV1Response> ExecuteAppsItemBCGetBaseV1Async(this DouyinMicroAppClient client, Models.AppsItemBCGetBaseV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"get_base/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCGetBaseV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/get_like/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get-like-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemGetLikeV1Response> ExecuteAppsItemGetLikeV1Async(this DouyinMicroAppClient client, Models.AppsItemGetLikeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"get_like/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemGetLikeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/get_like/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get_like_bc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCGetLikeV1Response> ExecuteAppsItemBCGetLikeV1Async(this DouyinMicroAppClient client, Models.AppsItemBCGetLikeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"get_like/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCGetLikeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/get_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get-comment-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemGetCommentV1Response> ExecuteAppsItemGetCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemGetCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"get_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemGetCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/get_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get_comment_bc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCGetCommentV1Response> ExecuteAppsItemBCGetCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemBCGetCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"get_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCGetCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/get_play/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get-play-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemGetPlayV1Response> ExecuteAppsItemGetPlayV1Async(this DouyinMicroAppClient client, Models.AppsItemGetPlayV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"get_play/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemGetPlayV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/get_play/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get_play_bc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCGetPlayV1Response> ExecuteAppsItemBCGetPlayV1Async(this DouyinMicroAppClient client, Models.AppsItemBCGetPlayV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"get_play/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCGetPlayV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/get_share/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get-share-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemGetShareV1Response> ExecuteAppsItemGetShareV1Async(this DouyinMicroAppClient client, Models.AppsItemGetShareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"get_share/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemGetShareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/get_share/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-recent-video-data/get_share_bc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCGetShareV1Response> ExecuteAppsItemBCGetShareV1Async(this DouyinMicroAppClient client, Models.AppsItemBCGetShareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"get_share/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"date_type\", request.DataType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCGetShareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Comment\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/item/top_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/item-comment-top ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemTopCommentV1Response> ExecuteAppsItemTopCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemTopCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"item\", \"top_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemTopCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/item_bc/top_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/item-comment-top ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCTopCommentV1Response> ExecuteAppsItemBCTopCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemBCTopCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"item_bc\", \"top_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCTopCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/item/reply_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/video-comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemReplyCommentV1Response> ExecuteAppsItemReplyCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemReplyCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"item\", \"reply_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemReplyCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/item_bc/reply_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/video-comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCReplyCommentV1Response> ExecuteAppsItemBCReplyCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemBCReplyCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"item_bc\", \"reply_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCReplyCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/list_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/comment-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemListCommentV1Response> ExecuteAppsItemListCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemListCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"list_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sort_type\", request.SortType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemListCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/list_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/comment-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCListCommentV1Response> ExecuteAppsItemBCListCommentV1Async(this DouyinMicroAppClient client, Models.AppsItemBCListCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"list_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sort_type\", request.SortType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCListCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item/list_comment_reply/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/comment-reply-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemListCommentReplyV1Response> ExecuteAppsItemListCommentReplyV1Async(this DouyinMicroAppClient client, Models.AppsItemListCommentReplyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item\", \"list_comment_reply/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"comment_id\", request.CommentId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sort_type\", request.SortType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemListCommentReplyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/item_bc/list_comment_reply/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-review-data/comment-reply-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsItemBCListCommentReplyV1Response> ExecuteAppsItemBCListCommentReplyV1Async(this DouyinMicroAppClient client, Models.AppsItemBCListCommentReplyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"item_bc\", \"list_comment_reply/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"item_id\", request.ItemId)\n                .SetQueryParam(\"comment_id\", request.CommentId)\n                .SetQueryParam(\"cursor\", request.PageCursor)\n                .SetQueryParam(\"count\", request.PageSize)\n                .SetQueryParam(\"sort_type\", request.SortType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsItemBCListCommentReplyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsLiveBookingExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsLiveBookingExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/live_booking/video_create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/video-create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsLiveBookingVideoCreateV2Response> ExecuteAppsLiveBookingVideoCreateV2Async(this DouyinMicroAppClient client, Models.AppsLiveBookingVideoCreateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"live_booking\", \"video_create/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsLiveBookingVideoCreateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/live_booking/video_cancel/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/video-cancel ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsLiveBookingVideoCancelV2Response> ExecuteAppsLiveBookingVideoCancelV2Async(this DouyinMicroAppClient client, Models.AppsLiveBookingVideoCancelV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"live_booking\", \"video_cancel/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsLiveBookingVideoCancelV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsPlayletBusinessExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsPlayletBusinessExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/playlet_business/upload/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/playletindustry/upload-playlet-business-rights ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsPlayletBusinessUploadV1Response> ExecuteAppsPlayletBusinessUploadV1Async(this DouyinMicroAppClient client, Models.AppsPlayletBusinessUploadV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"playlet_business\", \"upload/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsPlayletBusinessUploadV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsPrivacySettingExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsPrivacySettingExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/privacy_setting/add/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/privacy-policy/update-privacy-policy ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsPrivacySettingAddV1Response> ExecuteAppsPrivacySettingAddV1Async(this DouyinMicroAppClient client, Models.AppsPrivacySettingAddV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"privacy_setting\", \"add/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsPrivacySettingAddV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/privacy_setting/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/privacy-policy/query-privacy-policy-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsPrivacySettingQueryV1Response> ExecuteAppsPrivacySettingQueryV1Async(this DouyinMicroAppClient client, Models.AppsPrivacySettingQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"privacy_setting\", \"query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsPrivacySettingQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsQrcodeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsQrcodeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/qrcode/create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/qrcode/create-qr-code-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsQrcodeCreateV1Response> ExecuteAppsQrcodeCreateV1Async(this DouyinMicroAppClient client, Models.AppsQrcodeCreateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"qrcode\", \"create/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsQrcodeCreateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsSearchExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsSearchExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/search/delete_index/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/web-microapp/delete-index ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsSearchDeleteIndexV1Response> ExecuteAppsSearchDeleteIndexV1Async(this DouyinMicroAppClient client, Models.AppsSearchDeleteIndexV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"search\", \"delete_index/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsSearchDeleteIndexV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/search/upload_sitemap/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/web-microapp/submit-paths ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsSearchUploadSitemapV1Response> ExecuteAppsSearchUploadSitemapV1Async(this DouyinMicroAppClient client, Models.AppsSearchUploadSitemapV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"search\", \"upload_sitemap/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsSearchUploadSitemapV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsShareExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsShareExtensions\n    {\n        #region Task\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/share/create_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/task/create-task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsShareCreateTaskV1Response> ExecuteAppsShareCreateTaskV1Async(this DouyinMicroAppClient client, Models.AppsShareCreateTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"share\", \"create_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsShareCreateTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/share/query_user_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/share/task/query-task ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsShareQueryUserTaskV1Response> ExecuteAppsShareQueryUserTaskV1Async(this DouyinMicroAppClient client, Models.AppsShareQueryUserTaskV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"share\", \"query_user_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsShareQueryUserTaskV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsTaskExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsTaskExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/task/create_live/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/task_capacity/live_task_create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTaskCreateLiveV2Response> ExecuteAppsTaskCreateLiveV2Async(this DouyinMicroAppClient client, Models.AppsTaskCreateLiveV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"task\", \"create_live/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskCreateLiveV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/task/create_video/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/task_capacity/video_task_create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTaskCreateVideoV2Response> ExecuteAppsTaskCreateVideoV2Async(this DouyinMicroAppClient client, Models.AppsTaskCreateVideoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"task\", \"create_video/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskCreateVideoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/task/writeoff_live/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/task_capacity/live_task_writeoff ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTaskWriteoffLiveV2Response> ExecuteAppsTaskWriteoffLiveV2Async(this DouyinMicroAppClient client, Models.AppsTaskWriteoffLiveV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"task\", \"writeoff_live/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskWriteoffLiveV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/task/writeoff_video/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/task_capacity/video_task_writeoff ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTaskWriteoffVideoV2Response> ExecuteAppsTaskWriteoffVideoV2Async(this DouyinMicroAppClient client, Models.AppsTaskWriteoffVideoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"task\", \"writeoff_video/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskWriteoffVideoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsTradeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsTradeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/toolkit/query_text 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/query_text ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeToolkitQueryTextV2Response> ExecuteAppsTradeToolkitQueryTextV2Async(this DouyinMicroAppClient client, Models.AppsTradeToolkitQueryTextV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"toolkit\", \"query_text\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeToolkitQueryTextV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/toolkit/update_merchant_conf 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/update_merchant_conf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeToolkitUpdateMerchantConfigV2Response> ExecuteAppsTradeToolkitUpdateMerchantConfigV2Async(this DouyinMicroAppClient client, Models.AppsTradeToolkitUpdateMerchantConfigV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"toolkit\", \"update_merchant_conf\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeToolkitUpdateMerchantConfigV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/toolkit/button_white_setting 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/button_white_setting ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeToolkitButtonWhiteSettingV2Response> ExecuteAppsTradeToolkitButtonWhiteSettingV2Async(this DouyinMicroAppClient client, Models.AppsTradeToolkitButtonWhiteSettingV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"toolkit\", \"button_white_setting\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeToolkitButtonWhiteSettingV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/toolkit/update_merchant_path 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/self-operated-trading/write-off/fulfill-tool/update_merchant_path ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeToolkitUpdateMerchantPathV2Response> ExecuteAppsTradeToolkitUpdateMerchantPathV2Async(this DouyinMicroAppClient client, Models.AppsTradeToolkitUpdateMerchantPathV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"toolkit\", \"update_merchant_path\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeToolkitUpdateMerchantPathV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsTrafficPermissionExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsTrafficPermissionExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/traffic_permission/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/query-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTrafficPermissionQueryV1Response> ExecuteAppsTrafficPermissionQueryV1Async(this DouyinMicroAppClient client, Models.AppsTrafficPermissionQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"traffic_permission\", \"query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTrafficPermissionQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/traffic_permission/open/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/traffic-permission/open-traffic-permission ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTrafficPermissionOpenV1Response> ExecuteAppsTrafficPermissionOpenV1Async(this DouyinMicroAppClient client, Models.AppsTrafficPermissionOpenV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"traffic_permission\", \"open/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTrafficPermissionOpenV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsUrlLinkExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsUrlLinkExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url/generate_schema/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/schema/generate-schema-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlGenerateSchemaV1Response> ExecuteAppsUrlGenerateSchemaV1Async(this DouyinMicroAppClient client, Models.AppsUrlGenerateSchemaV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url\", \"generate_schema/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlGenerateSchemaV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url/query_schema/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/schema/query-schema-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlQuerySchemaV1Response> ExecuteAppsUrlQuerySchemaV1Async(this DouyinMicroAppClient client, Models.AppsUrlQuerySchemaV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url\", \"query_schema/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlQuerySchemaV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url/query_schema_quota/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/schema/query-schema-quota-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlQuerySchemaQuotaV1Response> ExecuteAppsUrlQuerySchemaQuotaV1Async(this DouyinMicroAppClient client, Models.AppsUrlQuerySchemaQuotaV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url\", \"query_schema_quota/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlQuerySchemaQuotaV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsUrlSchemaExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsUrlSchemaExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url_link/generate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/link/url-link-generate ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlLinkGenerateV1Response> ExecuteAppsUrlLinkGenerateV1Async(this DouyinMicroAppClient client, Models.AppsUrlLinkGenerateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url_link\", \"generate\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlLinkGenerateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url_link/query_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/link/url-link-query-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlLinkQueryInfoV1Response> ExecuteAppsUrlLinkQueryInfoV1Async(this DouyinMicroAppClient client, Models.AppsUrlLinkQueryInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url_link\", \"query_info\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlLinkQueryInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/url_link/query_quota 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/url-and-qrcode/link/url-link-query-quota-v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUrlLinkQueryQuotaV1Response> ExecuteAppsUrlLinkQueryQuotaV1Async(this DouyinMicroAppClient client, Models.AppsUrlLinkQueryQuotaV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"url_link\", \"query_quota\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUrlLinkQueryQuotaV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsUserExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsUserExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_item/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-video-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetItemV1Response> ExecuteAppsUserGetItemV1Async(this DouyinMicroAppClient client, Models.AppsUserGetItemV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_item/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetItemV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_item/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-video-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetItemV1Response> ExecuteAppsUserBCGetItemV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetItemV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_item/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetItemV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_fans/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-fans-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetFansV1Response> ExecuteAppsUserGetFansV1Async(this DouyinMicroAppClient client, Models.AppsUserGetFansV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_fans/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetFansV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_fans/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-fans-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetFansV1Response> ExecuteAppsUserBCGetFansV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetFansV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_fans/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetFansV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_like/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-like-number ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetLikeV1Response> ExecuteAppsUserGetLikeV1Async(this DouyinMicroAppClient client, Models.AppsUserGetLikeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_like/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetLikeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_like/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-like-number ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetLikeV1Response> ExecuteAppsUserBCGetLikeV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetLikeV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_like/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetLikeV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-comment-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetCommentV1Response> ExecuteAppsUserGetCommentV1Async(this DouyinMicroAppClient client, Models.AppsUserGetCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_comment/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-comment-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetCommentV1Response> ExecuteAppsUserBCGetCommentV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetCommentV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_comment/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetCommentV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_share/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-share-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetShareV1Response> ExecuteAppsUserGetShareV1Async(this DouyinMicroAppClient client, Models.AppsUserGetShareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_share/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetShareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_share/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-share-count ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetShareV1Response> ExecuteAppsUserBCGetShareV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetShareV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_share/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetShareV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user/get_profile/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-home-pv ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserGetProfileV1Response> ExecuteAppsUserGetProfileV1Async(this DouyinMicroAppClient client, Models.AppsUserGetProfileV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user\", \"get_profile/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserGetProfileV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/user_bc/get_profile/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-open/user-homepage-data/get-user-home-pv ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUserBCGetProfileV1Response> ExecuteAppsUserBCGetProfileV1Async(this DouyinMicroAppClient client, Models.AppsUserBCGetProfileV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"user_bc\", \"get_profile/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .SetQueryParam(\"date_type\", request.DateType)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsUserBCGetProfileV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteAppsVideoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteAppsVideoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/video/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-video-data/video-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsVideoQueryV1Response> ExecuteAppsVideoQueryV1Async(this DouyinMicroAppClient client, Models.AppsVideoQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"video\", \"query/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsVideoQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/video_bc/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/user-video-data/video-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsVideoBCQueryV1Response> ExecuteAppsVideoBCQueryV1Async(this DouyinMicroAppClient client, Models.AppsVideoBCQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"video_bc\", \"query/\")\n                .SetQueryParam(\"open_id\", request.OpenId)\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsVideoBCQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/convert_video_id/video_id_to_open_item_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/video-id-to-open-item-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsConvertVideoIdToOpenItemIdV1Response> ExecuteAppsConvertVideoIdToOpenItemIdV1Async(this DouyinMicroAppClient client, Models.AppsConvertVideoIdToOpenItemIdV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"convert_video_id\", \"video_id_to_open_item_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsConvertVideoIdToOpenItemIdV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/convert_video_id/open_item_id_to_encrypt_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/video-id-convert/open-item-id-to-encrypt-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsConvertOpenItemIdToEncryptIdV1Response> ExecuteAppsConvertOpenItemIdToEncryptIdV1Async(this DouyinMicroAppClient client, Models.AppsConvertOpenItemIdToEncryptIdV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"convert_video_id\", \"open_item_id_to_encrypt_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsConvertOpenItemIdToEncryptIdV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteECommerceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteECommerceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/ecom/v1/config/limit_op_point/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/e-commerce/register-credits-threshold ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ECommerceConfigLimitOperatePointV1Response> ExecuteECommerceConfigLimitOperatePointV1Async(this DouyinMicroAppClient client, Models.ECommerceConfigLimitOperatePointV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"ecom\", \"v1\", \"config\", \"limit_op_point/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ECommerceConfigLimitOperatePointV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/ecom/v1/config/register_ma_app/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/e-commerce/register-credits-threshold ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/e-commerce/customGoodsAPPregister ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ECommerceConfigRegisterMicroAppV1Response> ExecuteECommerceConfigRegisterMicroAppV1Async(this DouyinMicroAppClient client, Models.ECommerceConfigRegisterMicroAppV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"ecom\", \"v1\", \"config\", \"register_ma_app/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ECommerceConfigRegisterMicroAppV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/ecom/v1/customization/query_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/e-commerce/customGoodsOrderDetail ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ECommerceCustomizationQueryStatusV1Response> ExecuteECommerceCustomizationQueryStatusV1Async(this DouyinMicroAppClient client, Models.ECommerceCustomizationQueryStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"ecom\", \"v1\", \"customization\", \"query_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ECommerceCustomizationQueryStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/ecom/v1/shop_member/leave/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/e-commerce/withdraw ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ECommerceShopMemberLeaveV1Response> ExecuteECommerceShopMemberLeaveV1Async(this DouyinMicroAppClient client, Models.ECommerceShopMemberLeaveV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"ecom\", \"v1\", \"shop_member\", \"leave/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ECommerceShopMemberLeaveV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteGiftExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteGiftExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/gift/receive_reward 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/gift-bag/receive-reward ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.GiftReceiveRewardResponse> ExecuteGiftReceiveRewardAsync(this DouyinMicroAppClient client, Models.GiftReceiveRewardRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"gift\", \"receive_reward\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.GiftReceiveRewardResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyAppsECPayExtensions.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyAppsECPayExtensions\n    {\n        private static string GenerateRequestSignature<TRequest>(DouyinMicroAppClient client, TRequest request, Dictionary<string, string?>? extraParams = null)\n            where TRequest : DouyinMicroAppRequest\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            /*\n             * REF: https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/server/ecpay/TE/#%E4%B8%89%E3%80%81%E7%AD%BE%E5%90%8D-demo\n             */\n\n            string json = client.JsonSerializer.Serialize(request);\n            IList<string> tempList = new List<string>() { client.Credentials.ECPaySalt! };\n            IDictionary<string, string?> paramMap = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string?>>(json)!;\n\n            if (extraParams is not null)\n            {\n                foreach (KeyValuePair<string, string?> item in extraParams)\n                {\n                    paramMap[item.Key] = item.Value;\n                }\n            }\n\n            foreach (KeyValuePair<string, string?> item in paramMap)\n            {\n                string key = item.Key;\n                string? value = item.Value?.Trim();\n\n                if (\"app_id\".Equals(key) ||\n                    \"thirdparty_id\".Equals(key) ||\n                    \"sign\".Equals(key) ||\n                    \"other_settle_params\".Equals(key))\n                {\n                    continue;\n                }\n\n                if (value is not null && value.StartsWith(\"\\\"\") && value.EndsWith(\"\\\"\"))\n                {\n                    value = value.Substring(1, value.Length - 1).Trim();\n                }\n\n                if (string.IsNullOrEmpty(value) || \"null\".Equals(value))\n                {\n                    continue;\n                }\n\n                tempList.Add(value!);\n            }\n\n            string[] tempArray = tempList.ToArray();\n            Array.Sort(tempArray, StringComparer.Ordinal);\n\n            string plainText = string.Join(\"&\", tempArray);\n            return Utilities.MD5Utility.Hash(plainText).Value!.ToLower();\n        }\n\n        #region Bills\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/bills 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/bills/bill ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsBillsResponse> ExecuteAppsBillsAsync(this DouyinMicroAppClient client, Models.AppsBillsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n            {\n                request.Signature = GenerateRequestSignature(client, request, new()\n                {\n                    { \"merchant_id\" , request.MerchantId },\n                    { \"bill_date\" , request.DateString },\n                    { \"bill_type\" , request.BillType }\n                });\n            }\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"bills\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"bills\"))\n                .SetQueryParam(\"thirdparty_id\", request.ComponentAppId)\n                .SetQueryParam(\"app_id\", request.AppId)\n                .SetQueryParam(\"merchant_id\", request.MerchantId)\n                .SetQueryParam(\"bill_date\", request.DateString)\n                .SetQueryParam(\"bill_type\", request.BillType)\n                .SetQueryParam(\"sign\", request.Signature);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsBillsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/fund/bills 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/bills/fundbill ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsFundBillsResponse> ExecuteAppsFundBillsAsync(this DouyinMicroAppClient client, Models.AppsFundBillsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n            {\n                request.Signature = GenerateRequestSignature(client, request, new()\n                {\n                    { \"merchant_id\" , request.MerchantId },\n                    { \"bill_date\" , request.DateString },\n                    { \"account_type\" , request.AccountType },\n                    { \"payment_type\" , request.PaymentType },\n                    { \"trade_type\" , request.TradeType },\n                });\n            }\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"fund\", \"bills\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"fund\", \"bills\"))\n                .SetQueryParam(\"thirdparty_id\", request.ComponentAppId)\n                .SetQueryParam(\"app_id\", request.AppId)\n                .SetQueryParam(\"merchant_id\", request.MerchantId)\n                .SetQueryParam(\"bill_date\", request.DateString)\n                .SetQueryParam(\"account_type\", request.AccountType)\n                .SetQueryParam(\"payment_type\", request.PaymentType)\n                .SetQueryParam(\"trade_type\", request.TradeType)\n                .SetQueryParam(\"sign\", request.Signature);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsFundBillsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Order\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/create_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/pay ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayCreateOrderV1Response> ExecuteAppsECPayCreateOrderV1Async(this DouyinMicroAppClient client, Models.AppsECPayCreateOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"create_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"create_order\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayCreateOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/query_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayQueryOrderV1Response> ExecuteAppsECPayQueryOrderV1Async(this DouyinMicroAppClient client, Models.AppsECPayQueryOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"query_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"query_order\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayQueryOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/create_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/refund-list/refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayCreateRefundV1Response> ExecuteAppsECPayCreateRefundV1Async(this DouyinMicroAppClient client, Models.AppsECPayCreateRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"create_refund\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"create_refund\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayCreateRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/query_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/refund-list/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayQueryRefundV1Response> ExecuteAppsECPayQueryRefundV1Async(this DouyinMicroAppClient client, Models.AppsECPayQueryRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"query_refund\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"query_refund\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayQueryRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/settlements/settlement ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySettleV1Response> ExecuteAppsECPaySettleV1Async(this DouyinMicroAppClient client, Models.AppsECPaySettleV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"settle\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"settle\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySettleV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/query_settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/settlements/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayQuerySettleV1Response> ExecuteAppsECPayQuerySettleV1Async(this DouyinMicroAppClient client, Models.AppsECPayQuerySettleV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"query_settle\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"query_settle\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayQuerySettleV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/create_return 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/return-settle/ReturnSettle ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayCreateReturnV1Response> ExecuteAppsECPayCreateReturnV1Async(this DouyinMicroAppClient client, Models.AppsECPayCreateReturnV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"create_return\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"create_return\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayCreateReturnV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/query_return 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/return-settle/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayQueryReturnV1Response> ExecuteAppsECPayQueryReturnV1Async(this DouyinMicroAppClient client, Models.AppsECPayQueryReturnV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"query_return\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"query_return\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayQueryReturnV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/v1/query_platform_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/settlements/auto-settle/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPayQueryPlatformOrderV1Response> ExecuteAppsECPayQueryPlatformOrderV1Async(this DouyinMicroAppClient client, Models.AppsECPayQueryPlatformOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"v1\", \"query_platform_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"v1\", \"query_platform_order\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPayQueryPlatformOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS\n        #region SaaS - Apply\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/create_merchant 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/apply/create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSCreateMerchantResponse> ExecuteAppsECPaySaaSCreateMerchantAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSCreateMerchantRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"create_merchant\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"create_merchant\"));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSCreateMerchantResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/image_upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/apply/image-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSImageUploadResponse> ExecuteAppsECPaySaaSImageUploadAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSImageUploadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"image_upload\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"image_upload\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSImageUploadResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/query_merchant_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/apply/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryMerchantStatusResponse> ExecuteAppsECPaySaaSQueryMerchantStatusAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryMerchantStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"query_merchant_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"query_merchant_status\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryMerchantStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS - PageLinks\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/add_merchant 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/apply/merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/withdraw/merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAddMerchantResponse> ExecuteAppsECPaySaaSAddMerchantAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSAddMerchantRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppId is null)\n                request.ComponentAppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"add_merchant\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"add_merchant\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAddMerchantResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/get_app_merchant 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/apply/app-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/withdraw/app-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSGetAppMerchantResponse> ExecuteAppsECPaySaaSGetAppMerchantAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSGetAppMerchantRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppId is null)\n                request.ComponentAppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"get_app_merchant\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"get_app_merchant\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSGetAppMerchantResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/app_add_sub_merchant 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/apply/sub-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/withdraw/app-sub-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAppAddSubMerchantResponse> ExecuteAppsECPaySaaSAppAddSubMerchantAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSAppAddSubMerchantRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"app_add_sub_merchant\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"app_add_sub_merchant\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAppAddSubMerchantResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/add_sub_merchant 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/apply/sub-merchant ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/page-links/withdraw/sub-merchant ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSAddSubMerchantResponse> ExecuteAppsECPaySaaSAddSubMerchantAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSAddSubMerchantRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ComponentAppId is null)\n                request.ComponentAppId = client.Credentials.AppId;\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"add_sub_merchant\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"add_sub_merchant\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSAddSubMerchantResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SaaS - Withdraw\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/query_merchant_balance 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/withdraw/query-balance ]]> <br/>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryMerchantBalanceResponse> ExecuteAppsECPaySaaSQueryMerchantBalanceAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryMerchantBalanceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"query_merchant_balance\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"query_merchant_balance\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryMerchantBalanceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/merchant_withdraw 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/withdraw/merchant-withdraw ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSMerchantWithdrawResponse> ExecuteAppsECPaySaaSMerchantWithdrawAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSMerchantWithdrawRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"merchant_withdraw\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"merchant_withdraw\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSMerchantWithdrawResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/ecpay/saas/query_withdraw_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/withdraw/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsECPaySaaSQueryWithdrawOrderResponse> ExecuteAppsECPaySaaSQueryWithdrawOrderAsync(this DouyinMicroAppClient client, Models.AppsECPaySaaSQueryWithdrawOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"ecpay\", \"saas\", \"query_withdraw_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"ecpay\", \"saas\", \"query_withdraw_order\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsECPaySaaSQueryWithdrawOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyAppsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppClientExecuteLegacyAppsExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/interface-request-credential/get-access-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/interface-request-credential/get-access-token ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/interface-request-credential/get-access-token ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTokenV2Response> ExecuteAppsTokenV2Async(this DouyinMicroAppClient client, Models.AppsTokenV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"token\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v2\", \"token\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTokenV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v2/jscode2session 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/log-in/code-2-session ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/log-in/code-2-session ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/log-in/code-2-session ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsJsCode2SessionV2Response> ExecuteAppsJsCode2SessionV2Async(this DouyinMicroAppClient client, Models.AppsJsCode2SessionV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v2\", \"jscode2session\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v2\", \"jscode2session\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsJsCode2SessionV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Capacity\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/upload_material 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/upload-material ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityUploadMaterialV1Response> ExecuteAppsCapacityUploadMaterialV1Async(this DouyinMicroAppClient client, Models.AppsCapacityUploadMaterialV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.MaterialFileName is null)\n                request.MaterialFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.MaterialFileContentType is null)\n                request.MaterialFileContentType = MimeTypes.GetMimeMapping(request.MaterialFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"upload_material\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"upload_material\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.MaterialFileName, fileBytes: request.MaterialFileBytes, fileContentType: request.MaterialFileContentType, formDataName: \"material_file\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.MaterialType.ToString())), \"material_type\");\n\n            return await client.SendFlurlRequestAsync<Models.AppsCapacityUploadMaterialV1Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Capacity/ClueComponent\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/create_clue_component_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/clue-component-info/create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityCreateClueComponentInfoV1Response> ExecuteAppsCapacityCreateClueComponentInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityCreateClueComponentInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"create_clue_component_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"create_clue_component_info\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityCreateClueComponentInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_clue_component_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/clue-component-info/query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryClueComponentInfoV1Response> ExecuteAppsCapacityQueryClueComponentInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryClueComponentInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_clue_component_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"query_clue_component_info\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"page_no\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryClueComponentInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/update_clue_component_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/clue-component-info/update ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityUpdateClueComponentInfoV1Response> ExecuteAppsCapacityUpdateClueComponentInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityUpdateClueComponentInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"update_clue_component_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"update_clue_component_info\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityUpdateClueComponentInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [DELETE] /api/apps/v1/capacity/delete_clue_component_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/clue-component-info/delete ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityDeleteClueComponentInfoV1Response> ExecuteAppsCapacityDeleteClueComponentInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityDeleteClueComponentInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Delete, \"api\", \"apps\", \"v1\", \"capacity\", \"delete_clue_component_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"delete_clue_component_info\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityDeleteClueComponentInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Capacity/Doudian\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/bind_doudian_account 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/doudian-bind/bind-doudian-account ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityBindDoudianAccountV1Response> ExecuteAppsCapacityBindDoudianAccountV1Async(this DouyinMicroAppClient client, Models.AppsCapacityBindDoudianAccountV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"bind_doudian_account\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"bind_doudian_account\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityBindDoudianAccountV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_bind_doudian_account 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/doudian-bind/query-bind-doudian-account ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryBindDoudianAccountV1Response> ExecuteAppsCapacityQueryBindDoudianAccountV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryBindDoudianAccountV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_bind_doudian_account\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"query_bind_doudian_account\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryBindDoudianAccountV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/create_doudian_app 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/doudian-bind/create-doudian-app ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityCreateDoudianAppV1Response> ExecuteAppsCapacityCreateDoudianAppV1Async(this DouyinMicroAppClient client, Models.AppsCapacityCreateDoudianAppV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"create_doudian_app\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"create_doudian_app\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityCreateDoudianAppV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_doudian_app 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/doudian-bind/query-doudian-app ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryDoudianAppV1Response> ExecuteAppsCapacityQueryDoudianAppV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryDoudianAppV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_doudian_app\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"query_doudian_app\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryDoudianAppV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_doudian_shop_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/doudian-bind/query_doudian_shop_info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryDoudianShopInfoV1Response> ExecuteAppsCapacityQueryDoudianShopInfoV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryDoudianShopInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_doudian_shop_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"query_doudian_shop_info\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryDoudianShopInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Capacity/Mount\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/capacity/apply_capacity 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/apply-self-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/apply-live-self-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/apply-video-talent-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/capcut-video-template/apply-capacity ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/page-layout-custom/apply-capacity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityApplyCapacityV1Response> ExecuteAppsCapacityApplyCapacityV1Async(this DouyinMicroAppClient client, Models.AppsCapacityApplyCapacityV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"capacity\", \"apply_capacity\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"apply_capacity\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityApplyCapacityV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/v1/capacity/query_apply_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-video-self-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-live-self-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/query-video-talent-mount ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/capcut-video-template/query-status ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/page-layout-custom/query-capacity-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCapacityQueryApplyStatusV1Response> ExecuteAppsCapacityQueryApplyStatusV1Async(this DouyinMicroAppClient client, Models.AppsCapacityQueryApplyStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"v1\", \"capacity\", \"query_apply_status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"capacity\", \"query_apply_status\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"capacity_key\", request.CapacityKey);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCapacityQueryApplyStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Censor\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/censor/image 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/content-security/picture-detect-v2 ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/develop/picture-detect ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCensorImageResponse> ExecuteAppsCensorImageAsync(this DouyinMicroAppClient client, Models.AppsCensorImageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"censor\", \"image\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"censor\", \"image\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCensorImageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region CustomerService\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/customer_service/url 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/operation/microapp/customer-service ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsCustomerServiceUrlResponse> ExecuteAppsCustomerServiceUrlAsync(this DouyinMicroAppClient client, Models.AppsCustomerServiceUrlRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"customer_service\", \"url\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"customer_service\", \"url\"))\n                .SetQueryParam(\"access_token\", request.AccessToken)\n                .SetQueryParam(\"appid\", request.AppId)\n                .SetQueryParam(\"openid\", request.OpenId)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"scene\", request.Scene);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsCustomerServiceUrlResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Chat\n        /// <summary>\n        /// <para>异步调用 [GET] /api/apps/chat/customer_service_url 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/im/customer-service-url ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2023-08-29 下线。\")]\n        public static async Task<Models.AppsChatCustomerServiceUrlResponse> ExecuteAppsChatCustomerServiceUrlAsync(this DouyinMicroAppClient client, Models.AppsChatCustomerServiceUrlRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"apps\", \"chat\", \"customer_service_url\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"chat\", \"customer_service_url\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"appid\", request.AppId)\n                .SetQueryParam(\"openid\", request.OpenId)\n                .SetQueryParam(\"type\", request.Type)\n                .SetQueryParam(\"scene\", request.Scene)\n                .SetQueryParam(\"order_id\", request.OrderId)\n                .SetQueryParam(\"im_type\", request.IMType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsChatCustomerServiceUrlResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Live\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/upload_live_image 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/live-bg-image ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsUploadLiveImageResponse> ExecuteAppsUploadLiveImageAsync(this DouyinMicroAppClient client, Models.AppsUploadLiveImageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"upload_live_image\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"upload_live_image\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"image\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.Title)), \"title\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.PagePath)), \"start_page\");\n            if (request.RoomId is not null)\n                httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.RoomId.Value.ToString())), \"room_id\");\n\n            return await client.SendFlurlRequestAsync<Models.AppsUploadLiveImageResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/v1/live/set_black_white_list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/live-black-white-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsLiveSetBlackWhiteListV1Response> ExecuteAppsLiveSetBlackWhiteListV1Async(this DouyinMicroAppClient client, Models.AppsLiveSetBlackWhiteListV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"v1\", \"live\", \"set_black_white_list\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"v1\", \"live\", \"set_black_white_list\"))\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsLiveSetBlackWhiteListV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Message\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/message/custom/send 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/component/message-push-customer-service#%E5%8F%91%E9%80%81%E5%AE%A2%E6%9C%8D%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsMessageCustomSendResponse> ExecuteAppsMessageCustomSendAsync(this DouyinMicroAppClient client, Models.AppsMessageCustomSendRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"message\", \"custom\", \"send\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"message\", \"custom\", \"send\"))\n                .SetQueryParam(\"access_token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsMessageCustomSendResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Order\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/order/v2/push 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/order/order-sync ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/payment/pushOrder ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsOrderPushV2Response> ExecuteAppsOrderPushV2Async(this DouyinMicroAppClient client, Models.AppsOrderPushV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"order\", \"v2\", \"push\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"order\", \"v2\", \"push\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsOrderPushV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/order/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/payment/deleteOrder ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsOrderDeleteResponse> ExecuteAppsOrderDeleteAsync(this DouyinMicroAppClient client, Models.AppsOrderDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"order\", \"delete\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"order\", \"delete\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsOrderDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Qrcode\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/qrcode 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/qr-code/create-qr-code ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/thirdparty/API/smallprogram/auth-app-manage/base-info/getqrcode ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsQrcodeResponse> ExecuteAppsQrcodeAsync(this DouyinMicroAppClient client, Models.AppsQrcodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"qrcode\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"qrcode\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsQrcodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SubscribeNotification\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/subscribe_notification/developer/v1/notify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/notify ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/subscribe-notification/notify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2023-12-27 下线。\")]\n        public static async Task<Models.AppsSubscribeNotificationDeveloperNotifyV1Response> ExecuteAppsSubscribeNotificationDeveloperNotifyV1Async(this DouyinMicroAppClient client, Models.AppsSubscribeNotificationDeveloperNotifyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"subscribe_notification\", \"developer\", \"v1\", \"notify\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"subscribe_notification\", \"developer\", \"v1\", \"notify\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsSubscribeNotificationDeveloperNotifyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region ShareConfig\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/share_config 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/ShareConfig ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsShareConfigResponse> ExecuteAppsShareConfigAsync(this DouyinMicroAppClient client, Models.AppsShareConfigRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"share_config\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"share_config\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsShareConfigResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region TaskBox\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/add_task 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/taskbox-task-upload ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n        public static async Task<Models.AppsTaskBoxAddTaskResponse> ExecuteAppsTaskBoxAddTaskAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxAddTaskRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"add_task\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"add_task\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxAddTaskResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/update_task 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/updatetasks ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n        public static async Task<Models.AppsTaskBoxUpdateTaskResponse> ExecuteAppsTaskBoxUpdateTaskAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxUpdateTaskRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"update_task\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"update_task\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxUpdateTaskResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/update/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/updatetaskstatus ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n        public static async Task<Models.AppsTaskBoxUpdateStatusResponse> ExecuteAppsTaskBoxUpdateStatusAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxUpdateStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"update\", \"status\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"update\", \"status\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxUpdateStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/query_app_task_id 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/taskbox-query-app-task-id ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n        public static async Task<Models.AppsTaskBoxQueryAppTaskIdResponse> ExecuteAppsTaskBoxQueryAppTaskIdAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxQueryAppTaskIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"query_app_task_id\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"query_app_task_id\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxQueryAppTaskIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/query_task_video_data 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/taskbox-query-task-video-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n        public static async Task<Models.AppsTaskBoxQueryTaskVideoDataResponse> ExecuteAppsTaskBoxQueryTaskVideoDataAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxQueryTaskVideoDataRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"query_task_video_data\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"query_task_video_data\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxQueryTaskVideoDataResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/taskbox/update_orient_talents/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/updateorienttalent ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTaskBoxUpdateOrientTalentsResponse> ExecuteAppsTaskBoxUpdateOrientTalentsAsync(this DouyinMicroAppClient client, Models.AppsTaskBoxUpdateOrientTalentsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"taskbox\", \"update_orient_talents/\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"taskbox\", \"update_orient_talents/\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTaskBoxUpdateOrientTalentsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Video\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/convert_video_id/video_id_to_open_item_id 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/video-id-convert ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsConvertVideoIdToOpenItemIdResponse> ExecuteAppsConvertVideoIdToOpenItemIdAsync(this DouyinMicroAppClient client, Models.AppsConvertVideoIdToOpenItemIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AccessKey is null)\n                request.AccessKey = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"convert_video_id\", \"video_id_to_open_item_id\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"convert_video_id\", \"video_id_to_open_item_id\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsConvertVideoIdToOpenItemIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/convert_video_id/open_item_id_to_encrypt_id 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/video-id-convert ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsConvertOpenItemIdToEncryptIdResponse> ExecuteAppsConvertOpenItemIdToEncryptIdAsync(this DouyinMicroAppClient client, Models.AppsConvertOpenItemIdToEncryptIdRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AccessKey is null)\n                request.AccessKey = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"convert_video_id\", \"open_item_id_to_encrypt_id\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"convert_video_id\", \"open_item_id_to_encrypt_id\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsConvertOpenItemIdToEncryptIdResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyAppsGameExtensions.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyAppsGameExtensions\n    {\n        private static T PreprocessRequest<T>(DouyinMicroAppClient client, ref T request)\n            where T : Models.AppsGameWalletRequestBase, new()\n        {\n            if (client is null) throw new ArgumentNullException(nameof(request));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n            {\n                request.AppId = client.Credentials.AppId;\n            }\n\n            if (request.Timestamp is null)\n            {\n                request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds();\n            }\n\n            if (request.Signature is null)\n            {\n                string json = client.JsonSerializer.Serialize(request);\n                IDictionary<string, string> paramMap = new SortedDictionary<string, string>(Newtonsoft.Json.JsonConvert.DeserializeObject<IDictionary<string, string>>(json)!, StringComparer.Ordinal);\n                foreach (string key in paramMap.Keys.ToArray())\n                {\n                    if (key == \"mp_sig\")\n                        paramMap.Remove(key);\n                    else if (paramMap[key] is null)\n                        paramMap.Remove(key);\n                }\n\n                string message = string.Join(\"&\", paramMap.Select(e => $\"{e.Key}={e.Value}\"))\n                    + $\"&org_loc={request.GetRequestPath()}\"\n                    + $\"&method={request.GetRequestMethod()}\";\n                request.Signature = Utilities.HMACUtility.HashWithSHA256(client.Credentials.ECPaySalt!, message).Value!.ToLower();\n            }\n\n            return request;\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/game/wallet/get_balance 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/payment/acquire-mini-game-coin-balance ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsGameWalletGetBalanceResponse> ExecuteAppsGameWalletGetBalanceAsync(this DouyinMicroAppClient client, Models.AppsGameWalletGetBalanceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            PreprocessRequest(client, ref request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"game\", \"wallet\", \"get_balance\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"game\", \"wallet\", \"get_balance\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsGameWalletGetBalanceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/game/wallet/game_pay 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/payment/mini-game-coin-deduction-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsGameWalletGamePayResponse> ExecuteAppsGameWalletGamePayAsync(this DouyinMicroAppClient client, Models.AppsGameWalletGamePayRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            PreprocessRequest(client, ref request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"game\", \"wallet\", \"game_pay\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"game\", \"wallet\", \"game_pay\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsGameWalletGamePayResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/game/wallet/add_coin 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/payment/mini-game-coin-gift-interface ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsGameWalletAddCoinResponse> ExecuteAppsGameWalletAddCoinAsync(this DouyinMicroAppClient client, Models.AppsGameWalletAddCoinRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            PreprocessRequest(client, ref request);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"game\", \"wallet\", \"add_coin\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"game\", \"wallet\", \"add_coin\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsGameWalletAddCoinResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyAppsStorageExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyAppsStorageExtensions\n    {\n        private static string GenerateRequestSignature<TRequest>(DouyinMicroAppClient client, TRequest request, string signMethod, string sessionKey)\n            where TRequest : DouyinMicroAppRequest\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n            if (sessionKey is null) throw new ArgumentNullException(nameof(sessionKey));\n\n            /*\n             * REF: https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/other/user-login-sign/\n             * REF: https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/other/user-login-sign/\n             */\n\n            string json = client.JsonSerializer.Serialize(request);\n\n            switch (signMethod)\n            {\n                case \"hmac_sha256\":\n                    return Utilities.HMACUtility.HashWithSHA256(sessionKey, json).Value!.ToLower();\n\n                default:\n                    return string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/set_user_storage 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-caching/set-user-storage ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/data-caching/set-user-storage ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsSetUserStorageResponse> ExecuteAppsSetUserStorageAsync(this DouyinMicroAppClient client, Models.AppsSetUserStorageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request, request.SignMethod, request.SessionKey!);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"set_user_storage\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"set_user_storage\"))\n                .SetQueryParam(\"access_token\", request.AccessToken)\n                .SetQueryParam(\"openid\", request.OpenId)\n                .SetQueryParam(\"signature\", request.Signature)\n                .SetQueryParam(\"sig_method\", request.SignMethod);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsSetUserStorageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/remove_user_storage 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-caching/remove-user-storage ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/server/data-caching/remove-user-storage ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsRemoveUserStorageResponse> ExecuteAppsRemoveUserStorageAsync(this DouyinMicroAppClient client, Models.AppsRemoveUserStorageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.Signature is null)\n                request.Signature = GenerateRequestSignature(client, request, request.SignMethod, request.SessionKey!);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"remove_user_storage\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"remove_user_storage\"))\n                .SetQueryParam(\"access_token\", request.AccessToken)\n                .SetQueryParam(\"openid\", request.OpenId)\n                .SetQueryParam(\"signature\", request.Signature)\n                .SetQueryParam(\"sig_method\", request.SignMethod);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsRemoveUserStorageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyAppsTradeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyAppsTradeExtensions\n    {\n        private static IFlurlRequest WithByteAuthorization(this IFlurlRequest flurlRequest, string appId, string keyVersion, string publicKey)\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            /*\n             * REF: https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/invoke-api/common-parameters\n             */\n\n            return flurlRequest.BeforeCall(async (flurlCall) =>\n            {\n                string method = flurlCall.HttpRequestMessage.Method.ToString().ToUpper();\n                string url = flurlCall.HttpRequestMessage.RequestUri!.PathAndQuery ?? string.Empty;\n                string timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds().ToString();\n                string nonce = Guid.NewGuid().ToString(\"N\");\n                string body = await (flurlCall.HttpRequestMessage!.Content?.ReadAsStringAsync() ?? Task.FromResult(string.Empty)).ConfigureAwait(false);\n\n                string signData = $\"{method}\\n{url}\\n{timestamp}\\n{nonce}\\n{body}\\n\";\n                string sign;\n\n                try\n                {\n                    sign = Utilities.RSAUtility.SignWithSHA256(publicKey, signData).Value!;\n                }\n                catch (Exception ex)\n                {\n                    throw new DouyinMicroAppException(\"Failed to sign request. Please see the inner exception for more details.\", ex);\n                }\n\n                flurlCall.Request.WithHeader(\"Byte-Authorization\", $\"SHA256-RSA2048 appid=\\\"{appId}\\\",nonce_str=\\\"{nonce}\\\",timestamp=\\\"{timestamp}\\\",key_version=\\\"{keyVersion}\\\",signature=\\\"{sign}\\\"\");\n            });\n        }\n\n        #region PreOrder\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/query_cps 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/pre-order/query-cps ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeQueryCPSV2Response> ExecuteAppsTradeQueryCPSV2Async(this DouyinMicroAppClient client, Models.AppsTradeQueryCPSV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"query_cps\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"query_cps\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeQueryCPSV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/query_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/pre-order/query-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeQueryOrderV2Response> ExecuteAppsTradeQueryOrderV2Async(this DouyinMicroAppClient client, Models.AppsTradeQueryOrderV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"query_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"query_order\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeQueryOrderV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/create_order 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/pre-order/create-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeCreateOrderV2Response> ExecuteAppsTradeCreateOrderV2Async(this DouyinMicroAppClient client, Models.AppsTradeCreateOrderV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"create_order\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"create_order\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeCreateOrderV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Refund\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/create_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/refund/apply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeCreateRefundV2Response> ExecuteAppsTradeCreateRefundV2Async(this DouyinMicroAppClient client, Models.AppsTradeCreateRefundV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"create_refund\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"create_refund\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeCreateRefundV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/query_refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/refund/query-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeQueryRefundV2Response> ExecuteAppsTradeQueryRefundV2Async(this DouyinMicroAppClient client, Models.AppsTradeQueryRefundV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"query_refund\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"query_refund\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeQueryRefundV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/merchant_audit_callback 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/refund/audit-callback ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeMerchantAuditCallbackV2Response> ExecuteAppsTradeMerchantAuditCallbackV2Async(this DouyinMicroAppClient client, Models.AppsTradeMerchantAuditCallbackV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"merchant_audit_callback\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"merchant_audit_callback\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeMerchantAuditCallbackV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Settlement\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/create_settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/settlement/create-settle ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeCreateSettleV2Response> ExecuteAppsTradeCreateSettleV2Async(this DouyinMicroAppClient client, Models.AppsTradeCreateSettleV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"create_settle\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"create_settle\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeCreateSettleV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/query_settle 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/settlement/query-settle ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeQuerySettleV2Response> ExecuteAppsTradeQuerySettleV2Async(this DouyinMicroAppClient client, Models.AppsTradeQuerySettleV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"query_settle\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"query_settle\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeQuerySettleV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region WriteOff\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/delivery_prepare 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/write-off/douyin-code/delivery-preparation ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeDeliveryPrepareV2Response> ExecuteAppsTradeDeliveryPrepareV2Async(this DouyinMicroAppClient client, Models.AppsTradeDeliveryPrepareV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"delivery_prepare\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"delivery_prepare\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeDeliveryPrepareV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/delivery_verify 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/write-off/douyin-code/delivery-verify ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeDeliveryVerifyV2Response> ExecuteAppsTradeDeliveryVerifyV2Async(this DouyinMicroAppClient client, Models.AppsTradeDeliveryVerifyV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"delivery_verify\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"delivery_verify\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeDeliveryVerifyV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/query_item_order_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/write-off/douyin-code/query-item-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradeQueryItemOrderInfoV2Response> ExecuteAppsTradeQueryItemOrderInfoV2Async(this DouyinMicroAppClient client, Models.AppsTradeQueryItemOrderInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"query_item_order_info\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"query_item_order_info\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradeQueryItemOrderInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/apps/trade/v2/push_delivery 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/trading/write-off/third-party-code/push-delivery ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AppsTradePushDeliveryV2Response> ExecuteAppsTradePushDeliveryV2Async(this DouyinMicroAppClient client, Models.AppsTradePushDeliveryV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"apps\", \"trade\", \"v2\", \"push_delivery\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"apps\", \"trade\", \"v2\", \"push_delivery\"))\n                .WithHeader(\"access-token\", request.AccessToken)\n                .WithByteAuthorization(client.Credentials.AppId, client.Credentials.AppKeyVersion!, client.Credentials.AppPrivateKey!);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AppsTradePushDeliveryV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyCommentExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyCommentExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/comment/open/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/evolution/obtain-evolution ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CommentOpenGetResponse> ExecuteCommentOpenGetAsync(this DouyinMicroAppClient client, Models.CommentOpenGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"comment\", \"open\", \"get\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"comment\", \"open\", \"get\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CommentOpenGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/comment/developer/reply 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/evolution/developer-comment-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CommentDeveloperReplyResponse> ExecuteCommentDeveloperReplyAsync(this DouyinMicroAppClient client, Models.CommentDeveloperReplyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"comment\", \"developer\", \"reply\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"comment\", \"developer\", \"reply\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CommentDeveloperReplyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/comment/developer/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/evolution/developer-delete-reply ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CommentDeveloperDeleteResponse> ExecuteCommentDeveloperDeleteAsync(this DouyinMicroAppClient client, Models.CommentDeveloperDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"comment\", \"developer\", \"delete\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"comment\", \"developer\", \"delete\"));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CommentDeveloperDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLegacyTagsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLegacyTagsExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/v2/tags/text/antidirt 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/content-security/content-security-detect ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/content-security/content-security-detect ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TagsTextAntiDirtV2Response> ExecuteTagsTextAntiDirtV2Async(this DouyinMicroAppClient client, Models.TagsTextAntiDirtV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"v2\", \"tags\", \"text\", \"antidirt\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"v2\", \"tags\", \"text\", \"antidirt\"))\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TagsTextAntiDirtV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/v2/tags/image 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/open-capacity/content-security/picture-detect ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TagsImageV2Response> ExecuteTagsImageV2Async(this DouyinMicroAppClient client, Models.TagsImageV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"v2\", \"tags\", \"image\")\n                .WithUrl(url => new Url(client._BASEURL_LEGACY).AppendPathSegments(\"api\", \"v2\", \"tags\", \"image\"))\n                .WithHeader(\"X-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TagsImageV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteLiveBookingExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteLiveBookingExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /live/booking/video_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/video-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LiveBookingVideoListResponse> ExecuteLiveBookingVideoListAsync(this DouyinMicroAppClient client, Models.LiveBookingVideoListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"live\", \"booking\", \"video_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.LiveBookingVideoListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /live/booking/text_create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/text-create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LiveBookingTextCreateResponse> ExecuteLiveBookingTextCreateAsync(this DouyinMicroAppClient client, Models.LiveBookingTextCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"live\", \"booking\", \"text_create/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.LiveBookingTextCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /live/booking/text_close/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/text-close ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LiveBookingTextCloseResponse> ExecuteLiveBookingTextCloseAsync(this DouyinMicroAppClient client, Models.LiveBookingTextCloseRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"live\", \"booking\", \"text_close/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.LiveBookingTextCloseResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /live/booking/text_detail/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/live-booking/text-detail ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LiveBookingTextDetailResponse> ExecuteLiveBookingTextDetailAsync(this DouyinMicroAppClient client, Models.LiveBookingTextDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"live\", \"booking\", \"text_detail/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"open_id\", request.OpenId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.LiveBookingTextDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteMatchTaskBoxExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteMatchTaskBoxExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/add_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/add_task_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxAddTaskV2Response> ExecuteMatchTaskBoxAddTaskV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxAddTaskV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"add_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxAddTaskV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/add_room_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/room/add_room_task_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxAddRoomTaskV2Response> ExecuteMatchTaskBoxAddRoomTaskV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxAddRoomTaskV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"add_room_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxAddRoomTaskV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/update_task/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/upate_task_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxUpdateTaskV2Response> ExecuteMatchTaskBoxUpdateTaskV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxUpdateTaskV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"update_task/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxUpdateTaskV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/update_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/update_task_status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxUpdateStatusV2Response> ExecuteMatchTaskBoxUpdateStatusV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxUpdateStatusV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"update_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxUpdateStatusV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_app_task_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/query_app_task_id_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxQueryAppTaskIdV2Response> ExecuteMatchTaskBoxQueryAppTaskIdV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxQueryAppTaskIdV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_app_task_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxQueryAppTaskIdV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_task_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/query_task_info_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxQueryTaskInfoV2Response> ExecuteMatchTaskBoxQueryTaskInfoV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxQueryTaskInfoV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_task_info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxQueryTaskInfoV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_bill_link/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/QueryBillLink ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxQueryBillLinkV2Response> ExecuteMatchTaskBoxQueryBillLinkV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxQueryBillLinkV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_bill_link/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxQueryBillLinkV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/match/v2/taskbox/query_video_sum_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/promote/taskbox/DeveloperQueryVideoSum ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MatchTaskBoxQueryVideoSummaryDataV2Response> ExecuteMatchTaskBoxQueryVideoSummaryDataV2Async(this DouyinMicroAppClient client, Models.MatchTaskBoxQueryVideoSummaryDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"match\", \"v2\", \"taskbox\", \"query_video_sum_data/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MatchTaskBoxQueryVideoSummaryDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteNotificationSubscriptionExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteNotificationSubscriptionExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /api/notification/v2/subscription/query_tpl_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/query_tpl_list_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionQueryTemplateListV2Response> ExecuteNotificationSubscriptionQueryTemplateListV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionQueryTemplateListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"notification\", \"v2\", \"subscription\", \"query_tpl_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"classification\", request.Classification)\n                .SetQueryParam(\"template_type\", request.TemplateType)\n                .SetQueryParam(\"category_ids\", request.CategoryIdString)\n                .SetQueryParam(\"keyword\", request.Keyword)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionQueryTemplateListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/notification/v2/subscription/create_tpl/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/create_tpl_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionCreateTemplateV2Response> ExecuteNotificationSubscriptionCreateTemplateV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionCreateTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"notification\", \"v2\", \"subscription\", \"create_tpl/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionCreateTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/notification/v2/subscription/query_created_tpl_list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/query_created_tpl_list_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionQueryCreatedTemplateListV2Response> ExecuteNotificationSubscriptionQueryCreatedTemplateListV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionQueryCreatedTemplateListV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"notification\", \"v2\", \"subscription\", \"query_created_tpl_list/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"status\", request.Status)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionQueryCreatedTemplateListV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/notification/v2/subscription/add_app_tpl/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/add_app_tpl_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionAddAppTemplateV2Response> ExecuteNotificationSubscriptionAddAppTemplateV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionAddAppTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"notification\", \"v2\", \"subscription\", \"add_app_tpl/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionAddAppTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/notification/v2/subscription/query_app_tpl/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/query_app_tpl_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionQueryAppTemplateV2Response> ExecuteNotificationSubscriptionQueryAppTemplateV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionQueryAppTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"notification\", \"v2\", \"subscription\", \"query_app_tpl/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"classification\", request.Classification)\n                .SetQueryParam(\"category_ids\", request.CategoryIdString)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionQueryAppTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/notification/v2/subscription/delete_app_tpl/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/delete_app_tpl_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionDeleteAppTemplateV2Response> ExecuteNotificationSubscriptionDeleteAppTemplateV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionDeleteAppTemplateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"notification\", \"v2\", \"subscription\", \"delete_app_tpl/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionDeleteAppTemplateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/notification/v2/subscription/notify_user/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/subscribe-notification/notify_user_v2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.NotificationSubscriptionNotifyUserV2Response> ExecuteNotificationSubscriptionNotifyUserV2Async(this DouyinMicroAppClient client, Models.NotificationSubscriptionNotifyUserV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"notification\", \"v2\", \"subscription\", \"notify_user/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.NotificationSubscriptionNotifyUserV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecutePlatformDataAnalysisExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecutePlatformDataAnalysisExtensions\n    {\n        #region Component\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_component_with_overview/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/component-analysis/component-overview-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryComponentWithOverviewV2Response> ExecutePlatformDataAnalysisQueryComponentWithOverviewV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryComponentWithOverviewV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_component_with_overview/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryComponentWithOverviewV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_component_with_source/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/component-analysis/component-source-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryComponentWithSourceV2Response> ExecutePlatformDataAnalysisQueryComponentWithSourceV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryComponentWithSourceV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_component_with_source/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryComponentWithSourceV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_component_with_detail/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/component-analysis/component-detail-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryComponentWithDetailV2Response> ExecutePlatformDataAnalysisQueryComponentWithDetailV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryComponentWithDetailV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_component_with_detail/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryComponentWithDetailV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_component_with_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/component-analysis/component-data-analysisv3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryComponentWithDataV2Response> ExecutePlatformDataAnalysisQueryComponentWithDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryComponentWithDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_component_with_data/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryComponentWithDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Live\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_live_with_short_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/live-analysis/live-shortId-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryLiveWithShortIdV2Response> ExecutePlatformDataAnalysisQueryLiveWithShortIdV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryLiveWithShortIdV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_live_with_short_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryLiveWithShortIdV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SmallRoom\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_small_home_overview_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/small-room-analysis/small-room-overview-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQuerySmallHomeOverviewDataV2Response> ExecutePlatformDataAnalysisQuerySmallHomeOverviewDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQuerySmallHomeOverviewDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_small_home_overview_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQuerySmallHomeOverviewDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_small_home_room_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/small-room-analysis/small-room-room-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQuerySmallHomeRoomDataV2Response> ExecutePlatformDataAnalysisQuerySmallHomeRoomDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQuerySmallHomeRoomDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_small_home_room_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQuerySmallHomeRoomDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_small_home_order_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/small-room-analysis/small-room-order-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQuerySmallHomeOrderDataV2Response> ExecutePlatformDataAnalysisQuerySmallHomeOrderDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQuerySmallHomeOrderDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_small_home_order_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQuerySmallHomeOrderDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Transaction\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_deal_overview_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/overview-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryDealOverviewDataV2Response> ExecutePlatformDataAnalysisQueryDealOverviewDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryDealOverviewDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_deal_overview_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryDealOverviewDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_deal_data_with_conversion/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/deal-conversion-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryDealDataWithConversionV2Response> ExecutePlatformDataAnalysisQueryDealDataWithConversionV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryDealDataWithConversionV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_deal_data_with_conversion/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryDealDataWithConversionV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_video_deal_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/video-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryVideoDealDataV2Response> ExecutePlatformDataAnalysisQueryVideoDealDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryVideoDealDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_video_deal_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"host_name\", request.HostName);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryVideoDealDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_live_room/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/query-live-room-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryLiveRoomV2Response> ExecutePlatformDataAnalysisQueryLiveRoomV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryLiveRoomV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_live_room/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"anchor_name\", request.AnchorName);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryLiveRoomV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_live_room_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/live-room-data-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryLiveRoomDataV2Response> ExecutePlatformDataAnalysisQueryLiveRoomDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryLiveRoomDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_live_room_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"live_room_id\", request.LiveRoomId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryLiveRoomDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_live_deal_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/live-deal-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryLiveDealDataV2Response> ExecutePlatformDataAnalysisQueryLiveDealDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryLiveDealDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_live_deal_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"live_room_id\", request.LiveRoomId);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryLiveDealDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_product_deal_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/transaction-analysis/product-deal-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryProductDealDataV2Response> ExecutePlatformDataAnalysisQueryProductDealDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryProductDealDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_product_deal_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"page_num\", request.PageNumber)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"host_name\", request.HostName);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryProductDealDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region User\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_behavior_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/behavior-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryBehaviorDataV2Response> ExecutePlatformDataAnalysisQueryBehaviorDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryBehaviorDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_behavior_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"os\", request.OS)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryBehaviorDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_real_time_user_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/realtime-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryRealTimeUserDataV2Response> ExecutePlatformDataAnalysisQueryRealTimeUserDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryRealTimeUserDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_real_time_user_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryRealTimeUserDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_retention_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/retention-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryRetentionDataV2Response> ExecutePlatformDataAnalysisQueryRetentionDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryRetentionDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_retention_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"user_type\", request.UserType)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"os\", request.OS)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryRetentionDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_scene_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/scene-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQuerySceneDataV2Response> ExecutePlatformDataAnalysisQuerySceneDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQuerySceneDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_scene_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQuerySceneDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_user_portrait_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/user-portrait-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryUserPortraitDataV2Response> ExecutePlatformDataAnalysisQueryUserPortraitDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryUserPortraitDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_user_portrait_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"user_type\", request.UserType)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryUserPortraitDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_client_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/client-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryClientDataV2Response> ExecutePlatformDataAnalysisQueryClientDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryClientDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_client_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"user_type\", request.UserType)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryClientDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /api/platform/v2/data_analysis/query_page_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/user-analysis/page-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryPageDataV2Response> ExecutePlatformDataAnalysisQueryPageDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryPageDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_page_data/\")\n                .WithHeader(\"access-token\", request.AccessToken)\n                .SetQueryParam(\"start_time\", request.StartTimestamp)\n                .SetQueryParam(\"end_time\", request.EndTimestamp)\n                .SetQueryParam(\"host_name\", request.HostName)\n                .SetQueryParam(\"os\", request.OS)\n                .SetQueryParam(\"version_type\", request.VersionType);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryPageDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Video\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_short_live_id_with_awemeid/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/video-analysis/video-item-contribute-data ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/live-analysis/live-item-contribute ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Response> ExecutePlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_short_live_id_with_awemeid/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_video_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/video-analysis/video-overview-data-v3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryVideoDataV2Response> ExecutePlatformDataAnalysisQueryVideoDataV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryVideoDataV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_video_data/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryVideoDataV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_short_live_data_with_id/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/video-analysis/video-detail-analysis-data ]]> <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/live-analysis/room-detail-analysis-data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryShortLiveDataWithIdV2Response> ExecutePlatformDataAnalysisQueryShortLiveDataWithIdV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryShortLiveDataWithIdV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_short_live_data_with_id/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryShortLiveDataWithIdV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/platform/v2/data_analysis/query_video_with_source/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/data-analysis/video-analysis/video-source-analysis-datav3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PlatformDataAnalysisQueryVideoWithSourceV2Response> ExecutePlatformDataAnalysisQueryVideoWithSourceV2Async(this DouyinMicroAppClient client, Models.PlatformDataAnalysisQueryVideoWithSourceV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"platform\", \"v2\", \"data_analysis\", \"query_video_with_source/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PlatformDataAnalysisQueryVideoWithSourceV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteProductExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteProductExtensions\n    {\n        #region Activity\n        /// <summary>\n        /// <para>异步调用 [POST] /api/product/v1/app_region_add/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/set-distribute-city/add-bind-city ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAppRegionAddV1Response> ExecuteProductAppRegionAddV1Async(this DouyinMicroAppClient client, Models.ProductAppRegionAddV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"product\", \"v1\", \"app_region_add/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductAppRegionAddV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/product/v1/app_region_modify/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/set-distribute-city/modify-bind-city ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAppRegionModifyV1Response> ExecuteProductAppRegionModifyV1Async(this DouyinMicroAppClient client, Models.ProductAppRegionModifyV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"product\", \"v1\", \"app_region_modify/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductAppRegionModifyV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/product/v1/app_region_delete/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/mount/set-distribute-city/delete-bind-city ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductAppRegionDeleteV1Response> ExecuteProductAppRegionDeleteV1Async(this DouyinMicroAppClient client, Models.ProductAppRegionDeleteV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"product\", \"v1\", \"app_region_delete/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ProductAppRegionDeleteV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecutePromotionExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class DouyinMicroAppClientExecutePromotionExtensions\n    {\n        #region Activity\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/query_binded_user/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-mgmt/query-binded-user ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityQueryBindedUserV2Response> ExecutePromotionActivityQueryBindedUserV2Async(this DouyinMicroAppClient client, Models.PromotionActivityQueryBindedUserV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"query_binded_user/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityQueryBindedUserV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/bind_user_to_sidebar_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-mgmt/bind-user-to-activity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityBindUserToSidebarActivityV2Response> ExecutePromotionActivityBindUserToSidebarActivityV2Async(this DouyinMicroAppClient client, Models.PromotionActivityBindUserToSidebarActivityV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"bind_user_to_sidebar_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityBindUserToSidebarActivityV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/upload_popup_screenshot/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/upload-popup-screenshot ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityUploadPopupScreenshotV2Response> ExecutePromotionActivityUploadPopupScreenshotV2Async(this DouyinMicroAppClient client, Models.PromotionActivityUploadPopupScreenshotV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"upload_popup_screenshot/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"popup_image\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.ActivityId)), \"activity_id\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.PopupType.ToString())), \"popup_type\");\n\n            return await client.SendFlurlRequestAsync<Models.PromotionActivityUploadPopupScreenshotV2Response>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/add_self_test_accounts/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/add-self-test-accounts ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityAddSelfTestAccountsV2Response> ExecutePromotionActivityAddSelfTestAccountsV2Async(this DouyinMicroAppClient client, Models.PromotionActivityAddSelfTestAccountsV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"add_self_test_accounts/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityAddSelfTestAccountsV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/create_promotion_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/add-self-test-accounts ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityCreatePromotionActivityV2Response> ExecutePromotionActivityCreatePromotionActivityV2Async(this DouyinMicroAppClient client, Models.PromotionActivityCreatePromotionActivityV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"create_promotion_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityCreatePromotionActivityV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/modify_promotion_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/modify-promotion-activity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityModifyPromotionActivityV2Response> ExecutePromotionActivityModifyPromotionActivityV2Async(this DouyinMicroAppClient client, Models.PromotionActivityModifyPromotionActivityV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"modify_promotion_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityModifyPromotionActivityV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/update_promotion_activity_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/update-promotion-activity-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityUpdatePromotionActivityStatusV2Response> ExecutePromotionActivityUpdatePromotionActivityStatusV2Async(this DouyinMicroAppClient client, Models.PromotionActivityUpdatePromotionActivityStatusV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"update_promotion_activity_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityUpdatePromotionActivityStatusV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/activity/query_promotion_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/promotion-activity-management/query-promotion-activity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionActivityQueryPromotionActivityV2Response> ExecutePromotionActivityQueryPromotionActivityV2Async(this DouyinMicroAppClient client, Models.PromotionActivityQueryPromotionActivityV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"activity\", \"query_promotion_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionActivityQueryPromotionActivityV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Coupon\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/get_coupon_receive_info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-mgmt/get-coupon-receive-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponGetCouponReceiveInfoV1Response> ExecutePromotionCouponGetCouponReceiveInfoV1Async(this DouyinMicroAppClient client, Models.PromotionCouponGetCouponReceiveInfoV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"get_coupon_receive_info/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponGetCouponReceiveInfoV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/batch_consume_coupon/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-mgmt/batch-consume-coupon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponBatchConsumeCouponV1Response> ExecutePromotionCouponBatchConsumeCouponV1Async(this DouyinMicroAppClient client, Models.PromotionCouponBatchConsumeCouponV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.ConsumeTimestamp is null)\n                request.ConsumeTimestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds();\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"batch_consume_coupon/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponBatchConsumeCouponV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/batch_rollback_consume_coupon/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-mgmt/batch-rollback-consume-coupon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponBatchRollbackConsumeCouponV1Response> ExecutePromotionCouponBatchRollbackConsumeCouponV1Async(this DouyinMicroAppClient client, Models.PromotionCouponBatchRollbackConsumeCouponV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.RollbackConsumeTimestamp is null)\n                request.RollbackConsumeTimestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds();\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"batch_rollback_consume_coupon/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponBatchRollbackConsumeCouponV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/get_talent_coupon/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/anchor-authorization-mgmt/get-talent-coupon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponGetTalentCouponV1Response> ExecutePromotionCouponGetTalentCouponV1Async(this DouyinMicroAppClient client, Models.PromotionCouponGetTalentCouponV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"get_talent_coupon/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponGetTalentCouponV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/set_talent_coupon/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/anchor-authorization-mgmt/set-talent-coupon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponSetTalentCouponV1Response> ExecutePromotionCouponSetTalentCouponV1Async(this DouyinMicroAppClient client, Models.PromotionCouponSetTalentCouponV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"set_talent_coupon/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponSetTalentCouponV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/update_talent_coupon_status/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/anchor-authorization-mgmt/get-talent-coupon ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponUpdateTalentCouponStatusV1Response> ExecutePromotionCouponUpdateTalentCouponStatusV1Async(this DouyinMicroAppClient client, Models.PromotionCouponUpdateTalentCouponStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"update_talent_coupon_status/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponUpdateTalentCouponStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/update_talent_coupon_stock/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/anchor-authorization-mgmt/update-talent-coupon-stock ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponUpdateTalentCouponStockV1Response> ExecutePromotionCouponUpdateTalentCouponStockV1Async(this DouyinMicroAppClient client, Models.PromotionCouponUpdateTalentCouponStockV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"update_talent_coupon_stock/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponUpdateTalentCouponStockV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/send_coupon_to_designated_user/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/direct-send/send-coupon-to-designated-user ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponSendCouponToDesignatedUserV1Response> ExecutePromotionCouponSendCouponToDesignatedUserV1Async(this DouyinMicroAppClient client, Models.PromotionCouponSendCouponToDesignatedUserV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"send_coupon_to_designated_user/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponSendCouponToDesignatedUserV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/get_bill_download_url/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/get-bill-download-url ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponGetBillDownloadUrlV1Response> ExecutePromotionCouponGetBillDownloadUrlV1Async(this DouyinMicroAppClient client, Models.PromotionCouponGetBillDownloadUrlV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"get_bill_download_url/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponGetBillDownloadUrlV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Coupon/DeveloperActivity\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/create_developer_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/direct-send/create-developer-activity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponCreateDeveloperActivityV1Response> ExecutePromotionCouponCreateDeveloperActivityV1Async(this DouyinMicroAppClient client, Models.PromotionCouponCreateDeveloperActivityV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"create_developer_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponCreateDeveloperActivityV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/delete_developer_activity/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/direct-send/delete-developer-activity ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponDeleteDeveloperActivityV1Response> ExecutePromotionCouponDeleteDeveloperActivityV1Async(this DouyinMicroAppClient client, Models.PromotionCouponDeleteDeveloperActivityV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"delete_developer_activity/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponDeleteDeveloperActivityV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region CouponMeta\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/coupon/create_coupon_meta/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/create-coupon-meta ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponCreateCouponMetaV2Response> ExecutePromotionCouponCreateCouponMetaV2Async(this DouyinMicroAppClient client, Models.PromotionCouponCreateCouponMetaV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"coupon\", \"create_coupon_meta/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponCreateCouponMetaV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/coupon/modify_coupon_meta/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/modify-coupon-meta ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponModifyCouponMetaV2Response> ExecutePromotionCouponModifyCouponMetaV2Async(this DouyinMicroAppClient client, Models.PromotionCouponModifyCouponMetaV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"coupon\", \"modify_coupon_meta/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponModifyCouponMetaV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v2/coupon/query_coupon_meta/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/query-coupon-meta ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponQueryCouponMetaV2Response> ExecutePromotionCouponQueryCouponMetaV2Async(this DouyinMicroAppClient client, Models.PromotionCouponQueryCouponMetaV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v2\", \"coupon\", \"query_coupon_meta/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponQueryCouponMetaV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/delete_coupon_meta 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/delete-coupon-meta ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponDeleteCouponMetaV1Response> ExecutePromotionCouponDeleteCouponMetaV1Async(this DouyinMicroAppClient client, Models.PromotionCouponDeleteCouponMetaV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"delete_coupon_meta\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponDeleteCouponMetaV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/update_coupon_meta_stock 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/update-coupon-meta-stock ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponUpdateCouponMetaStockV1Response> ExecutePromotionCouponUpdateCouponMetaStockV1Async(this DouyinMicroAppClient client, Models.PromotionCouponUpdateCouponMetaStockV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"update_coupon_meta_stock\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponUpdateCouponMetaStockV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/update_coupon_meta_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/update-coupon-meta-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponUpdateCouponMetaStatusV1Response> ExecutePromotionCouponUpdateCouponMetaStatusV1Async(this DouyinMicroAppClient client, Models.PromotionCouponUpdateCouponMetaStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"update_coupon_meta_status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponUpdateCouponMetaStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/query_activity_meta_data/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/query_activity_meta_data ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponQueryActivityMetaDataV1Response> ExecutePromotionCouponQueryActivityMetaDataV1Async(this DouyinMicroAppClient client, Models.PromotionCouponQueryActivityMetaDataV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"query_activity_meta_data/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponQueryActivityMetaDataV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/promotion/v1/coupon/get_coupon_meta_statistics 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/merchant-coupon/coupon-meta-mgmt/get-coupon-meta-statistics ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCouponGetCouponMetaStatisticsV1Response> ExecutePromotionCouponGetCouponMetaStatisticsV1Async(this DouyinMicroAppClient client, Models.PromotionCouponGetCouponMetaStatisticsV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"promotion\", \"v1\", \"coupon\", \"get_coupon_meta_statistics\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PromotionCouponGetCouponMetaStatisticsV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteTradeAuthDeveloperExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteTradeAuthDeveloperExtensions\n    {\n        #region AuthDeposit\n        #region AuthDeposit/Auth\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_admissible_auth/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/auth/query-admissible-auth ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQueryAdmissibleAuthV1Response> ExecuteTradeAuthDeveloperQueryAdmissibleAuthV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQueryAdmissibleAuthV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_admissible_auth/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQueryAdmissibleAuthV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/create_auth_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/auth/create-auth-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCreateAuthOrderV1Response> ExecuteTradeAuthDeveloperCreateAuthOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCreateAuthOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"create_auth_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCreateAuthOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/cancel_auth_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/auth/cancel-auth-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCancelAuthOrderV1Response> ExecuteTradeAuthDeveloperCancelAuthOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCancelAuthOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"cancel_auth_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCancelAuthOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/finish_auth_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/auth/finish-auth-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperFinishAuthOrderV1Response> ExecuteTradeAuthDeveloperFinishAuthOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperFinishAuthOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"finish_auth_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperFinishAuthOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_auth_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/auth/query-auth-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQueryAuthOrderV1Response> ExecuteTradeAuthDeveloperQueryAuthOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQueryAuthOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_auth_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQueryAuthOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region AuthDeposit/Pay\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/create_pay_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/pay/create-pay-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCreatePayOrderV1Response> ExecuteTradeAuthDeveloperCreatePayOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCreatePayOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"create_pay_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCreatePayOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/close_pay_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/pay/close-pay-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperClosePayOrderV1Response> ExecuteTradeAuthDeveloperClosePayOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperClosePayOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"close_pay_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperClosePayOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_pay_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/pay/query-pay-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQueryPayOrderV1Response> ExecuteTradeAuthDeveloperQueryPayOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQueryPayOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_pay_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQueryPayOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region AuthDeposit/Refund\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/create_refund/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/refund/create-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCreateRefundV1Response> ExecuteTradeAuthDeveloperCreateRefundV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCreateRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"create_refund/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCreateRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_refund/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/auth-deposit/refund/query-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQueryRefundV1Response> ExecuteTradeAuthDeveloperQueryRefundV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQueryRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_refund/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQueryRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region PeriodicDeduction\n        #region PeriodicDeduction/Pay\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/create_sign_pay/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/pay/create-sign-pay ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCreateSignPayV1Response> ExecuteTradeAuthDeveloperCreateSignPayV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCreateSignPayV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"create_sign_pay/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCreateSignPayV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_sign_pay/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/pay/query-sign-pay ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQuerySignPayV1Response> ExecuteTradeAuthDeveloperQuerySignPayV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQuerySignPayV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_sign_pay/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQuerySignPayV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region PeriodicDeduction/Refund\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/create_sign_refund/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/refund/create-sign-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperCreateSignRefundV1Response> ExecuteTradeAuthDeveloperCreateSignRefundV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperCreateSignRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"create_sign_refund/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperCreateSignRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_sign_refund/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/refund/query-sign-refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQuerySignRefundV1Response> ExecuteTradeAuthDeveloperQuerySignRefundV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQuerySignRefundV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_sign_refund/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQuerySignRefundV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region PeriodicDeduction/Sign\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/terminate_sign/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/sign/terminate-sign ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperTerminateSignV1Response> ExecuteTradeAuthDeveloperTerminateSignV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperTerminateSignV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"terminate_sign/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperTerminateSignV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_auth/v1/developer/query_sign_order/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/management-capacity/periodic-deduction/sign/query-sign-order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeAuthDeveloperQuerySignOrderV1Response> ExecuteTradeAuthDeveloperQuerySignOrderV1Async(this DouyinMicroAppClient client, Models.TradeAuthDeveloperQuerySignOrderV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_auth\", \"v1\", \"developer\", \"query_sign_order/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeAuthDeveloperQuerySignOrderV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Extensions/DouyinMicroAppClientExecuteTradeBasicDeveloperExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp\n{\n    public static class DouyinMicroAppClientExecuteTradeBasicDeveloperExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/tag_query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/tag/tag_group_query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperTagQueryV1Response> ExecuteTradeBasicDeveloperTagQueryV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperTagQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"tag_query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperTagQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/query_cps/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/order/query-cps ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperQueryCPSV1Response> ExecuteTradeBasicDeveloperQueryCPSV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperQueryCPSV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"query_cps/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperQueryCPSV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/order_query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/order/query_order ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperOrderQueryV1Response> ExecuteTradeBasicDeveloperOrderQueryV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperOrderQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"order_query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperOrderQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/fulfill_push_status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/trade_fulfill/push_fulfill_statsus ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperFulfillPushStatusV1Response> ExecuteTradeBasicDeveloperFulfillPushStatusV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperFulfillPushStatusV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"fulfill_push_status\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperFulfillPushStatusV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/refund_create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/refund/create_refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperRefundCreateV1Response> ExecuteTradeBasicDeveloperRefundCreateV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperRefundCreateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"refund_create/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperRefundCreateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/refund_query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/refund/query_refund ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperRefundQueryV1Response> ExecuteTradeBasicDeveloperRefundQueryV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperRefundQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"refund_query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperRefundQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/refund_audit_callback/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/refund/refund_audit ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperRefundAuditCallbackV1Response> ExecuteTradeBasicDeveloperRefundAuditCallbackV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperRefundAuditCallbackV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"refund_audit_callback/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperRefundAuditCallbackV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/settle_create/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/trade_settle/settle_create ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperSettleCreateV1Response> ExecuteTradeBasicDeveloperSettleCreateV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperSettleCreateV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"settle_create/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperSettleCreateV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /api/trade_basic/v1/developer/settle_query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/trade-system/general/trade_settle/settle_query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.TradeBasicDeveloperSettleQueryV1Response> ExecuteTradeBasicDeveloperSettleQueryV1Async(this DouyinMicroAppClient client, Models.TradeBasicDeveloperSettleQueryV1Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"api\", \"trade_basic\", \"v1\", \"developer\", \"settle_query/\")\n                .WithHeader(\"access-token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.TradeBasicDeveloperSettleQueryV1Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementAddV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/ad_placement/add/ 接口的请求。</para>\n    /// </summary>\n    public class AppsAdPlacementAddV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置广告位名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_placement_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_name\")]\n        public string AdPlacementName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置广告位类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_placement_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_type\")]\n        public int AdPlacementType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementAddV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/ad_placement/add/ 接口的响应。</para>\n    /// </summary>\n    public class AppsAdPlacementAddV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/ad_placement/query/ 接口的请求。</para>\n    /// </summary>\n    public class AppsAdPlacementQueryV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/ad_placement/query/ 接口的响应。</para>\n    /// </summary>\n    public class AppsAdPlacementQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AdPlacement\n                    {\n                        /// <summary>\n                        /// 获取或设置广告位 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_placement_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_id\")]\n                        public string AdPlacementId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置广告位名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_placement_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_name\")]\n                        public string AdPlacementName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置广告位类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_placement_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_type\")]\n                        public int AdPlacementType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告位列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_placement_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_list\")]\n                public Types.AdPlacement[] AdPlacementList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementUpdateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/ad_placement/update/ 接口的请求。</para>\n    /// </summary>\n    public class AppsAdPlacementUpdateV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置广告位 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_placement_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_placement_id\")]\n        public string AdPlacementId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAdPlacement/AppsAdPlacementUpdateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/ad_placement/update/ 接口的响应。</para>\n    /// </summary>\n    public class AppsAdPlacementUpdateV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAuth/AppsAuthGetRelatedIdV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/auth/get_related_id/ 接口的请求。</para>\n    /// </summary>\n    public class AppsAuthGetRelatedIdV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsAuth/AppsAuthGetRelatedIdV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/auth/get_related_id/ 接口的响应。</para>\n    /// </summary>\n    public class AppsAuthGetRelatedIdV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置用户在相同主体下的唯一标志。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"allied_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"allied_id\")]\n                public string AlliedId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Ad/AppsCapacityQueryAdIncomeV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v3/capacity/query_ad_income/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryAdIncomeV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string StartDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结束日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string EndDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Ad/AppsCapacityQueryAdIncomeV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v3/capacity/query_ad_income/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryAdIncomeV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class IncomeData\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置收入金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"income\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"income\")]\n                        public int Income { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置收入数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"income_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"income_list\")]\n                public Types.IncomeData[] IncomeDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Ad/AppsCapacityQueryAdSettlementListV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v3/capacity/query_ad_settlement_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryAdSettlementListV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置结算周期字符串（格式：yyyy-MM）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PeriodString { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Ad/AppsCapacityQueryAdSettlementListV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v3/capacity/query_ad_settlement_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryAdSettlementListV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Settlement\n                    {\n                        /// <summary>\n                        /// 获取或设置结算单编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_serial\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_serial\")]\n                        public string SerialNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算单名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算周期（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_period\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_period\")]\n                        public string PeriodString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置发票税率。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_rate\")]\n                        public decimal TaxRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_total_amount\")]\n                        public int Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结算单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settlement_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settlement_list\")]\n                public Types.Settlement[] SettlementList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityBindAwemeRelationV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/bind_aweme_relation/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityBindAwemeRelationV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class TemplateInfo\n            {\n                public static class Types\n                {\n                    public class TemplateContent\n                    {\n                        /// <summary>\n                        /// 获取或设置资质名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置上传材料 MaterielId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"materiel_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"materiel_id\")]\n                        public string? MaterielId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"val_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"val_type\")]\n                        public int? ValueType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置内容列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"val_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"val_list\")]\n                        public IList<string>? ValueList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置模版 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TemplateId { get; set; }\n\n                /// <summary>\n                /// 获取或设置模版标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置内容列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_content\")]\n                public IList<Types.TemplateContent> TemplateContentList { get; set; } = new List<Types.TemplateContent>();\n            }\n\n            public class CooperationInfo\n            {\n                /// <summary>\n                /// 获取或设置合作类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cooperation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_type\")]\n                public string CooperationType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置关系过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"relation_expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"relation_expire_date\")]\n                public long RelationExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                public string? CompanyName { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_code\")]\n                public string? BusinessLicenseNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置真实姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"real_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"real_name\")]\n                public string? RealName { get; set; }\n\n                /// <summary>\n                /// 获取或设置身份证号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identity_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identity_number\")]\n                public string? IdCardNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作合同照片 MaterielId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contract_image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contract_image\")]\n                public string? ContractImageMaterielId { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作合同照片 MaterielId 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contract_image_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contract_image_list\")]\n                public IList<string>? ContractImageMaterielIdList { get; set; }\n            }\n\n            public class EmployeeInfo\n            {\n                /// <summary>\n                /// 获取或设置关系过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"relation_expire_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"relation_expire_date\")]\n                public long RelationExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置真实姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"real_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"real_name\")]\n                public string RealName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置身份证号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identity_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identity_number\")]\n                public string IdCardNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置劳动合同照片 MaterielId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contract_image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contract_image\")]\n                public string? ContractImageMaterielId { get; set; }\n\n                /// <summary>\n                /// 获取或设置劳动合同照片 MaterielId 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"contract_image_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"contract_image_list\")]\n                public IList<string>? ContractImageMaterielIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n                public string? QualificationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质材料 MaterielId 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_image_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_image_list\")]\n                public IList<string>? QualificationImageMaterielIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string AwemeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定能力标识列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"capacity_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"capacity_list\")]\n        public IList<string> CapacityKeyList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置是否相同主体。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"co_subject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"co_subject\")]\n        public bool? IsCoSubject { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否相同主体。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audit_template_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audit_template_info\")]\n        public IDictionary<string, Types.TemplateInfo> AuditTemplateInfoMap { get; set; } = new Dictionary<string, Types.TemplateInfo>();\n\n        /// <summary>\n        /// 获取或设置合作号信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cooperation_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_info\")]\n        public Types.CooperationInfo? CooperationInfo { get; set; }\n\n        /// <summary>\n        /// 获取或设置员工号信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"employee_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"employee_info\")]\n        public Types.EmployeeInfo? EmployeeInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityBindAwemeRelationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/bind_aweme_relation/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityBindAwemeRelationV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateInfoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/get_aweme_bind_template_info/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeBindTemplateInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string AwemeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置资质模版 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public IList<long> TemplateIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateInfoV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/get_aweme_bind_template_info/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeBindTemplateInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TemplateInfo\n                    {\n                        public static class Types\n                        {\n                            public class TemplateContent\n                            {\n                                /// <summary>\n                                /// 获取或设置资质名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资质描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"desc\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                                public string Description { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置加粗标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"mainTitle\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"mainTitle\")]\n                                public string? MainTitle { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置上传材料 MaterielId。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"materiel_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"materiel_id\")]\n                                public string? MaterielId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"val_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"val_type\")]\n                                public int? ValueType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置内容列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"val_list\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"val_list\")]\n                                public string[]? ValueList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置选择项列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"val_example\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"val_example\")]\n                                public string[]? ValueExampleList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置拒绝原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string? RejectReason { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置模版 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TemplateId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置模版标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模版描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"desc\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置内容列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_content\")]\n                        public Types.TemplateContent[] TemplateContentList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置资质模版字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_info\")]\n                public IDictionary<long, Types.TemplateInfo> TemplateInfoMap { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateListV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/get_aweme_bind_template_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeBindTemplateListV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string AwemeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定能力标识列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"capacity_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"capacity_list\")]\n        public IList<string> CapacityKeyList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateListV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/get_aweme_bind_template_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeBindTemplateListV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TemplateInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置模版 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TemplateId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置模版标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置所属的类目 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置所属的类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                        public string CategoryName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否可以使用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_apply\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_apply\")]\n                        public bool CanApply { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不可使用的原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? Reason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置资质模版字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_map\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_map\")]\n                public IDictionary<string, Types.TemplateInfo[]> TemplateInfoMap { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeRelationBindQrcodeV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/get_aweme_relation_bind_qrcode/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeRelationBindQrcodeV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定能力标识列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> CapacityKeyList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置是否相同主体。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsCoSubject { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityGetAwemeRelationBindQrcodeV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/get_aweme_relation_bind_qrcode/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityGetAwemeRelationBindQrcodeV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置二维码图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qrcode_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qrcode_url\")]\n                public string QrcodeUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置二维码数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qrcode_parse_content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qrcode_parse_content\")]\n                public string QrcodeData { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityQueryAwemeRelationListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_aweme_relation_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryAwemeRelationListV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityQueryAwemeRelationListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_aweme_relation_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryAwemeRelationListV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AwemeRelation\n                    {\n                        public static class Types\n                        {\n                            public class Capacity\n                            {\n                                /// <summary>\n                                /// 获取或设置能力标识。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"capacity_key\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"capacity_key\")]\n                                public string CapacityKey { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置绑定状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public int Status { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置绑定失败原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                                public string? FailReason { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string AwemeId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置账号类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n                        public int AccountType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置绑定能力列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"capacity_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"capacity_list\")]\n                        public Types.Capacity[] CapacityList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置绑定状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n                        public int BindStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置绑定失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? FailReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置绑定抖音号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.AwemeRelation[] AwemeRelationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityUnbindAwemeRelationV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/unbind_aweme_relation/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityUnbindAwemeRelationV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string AwemeId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置绑定类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeBind/AppsCapacityUnbindAwemeRelationV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/unbind_aweme_relation/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityUnbindAwemeRelationV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityAddAwemeVideoKeywordV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/add_aweme_video_keyword/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityAddAwemeVideoKeywordV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置关键词。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n        public string Keyword { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置申请原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public string? Reason { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityAddAwemeVideoKeywordV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/add_aweme_video_keyword/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityAddAwemeVideoKeywordV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityDeleteAwemeVideoKeywordV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/delete_aweme_video_keyword/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityDeleteAwemeVideoKeywordV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置关键词 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_id\")]\n        public string KeywordId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityDeleteAwemeVideoKeywordV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/delete_aweme_video_keyword/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityDeleteAwemeVideoKeywordV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityQueryAwemeVideoKeywordListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_aweme_video_keyword_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryAwemeVideoKeywordListV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/AwemeKeyword/AppsCapacityQueryAwemeVideoKeywordListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_aweme_video_keyword_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryAwemeVideoKeywordListV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Keyword\n                    {\n                        /// <summary>\n                        /// 获取或设置关键词 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_id\")]\n                        public string KeywordId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置关键词字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n                        public string KeywordString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason_list\")]\n                        public string[]? RejectReasonList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置关键词列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n                public Types.Keyword[] KeywordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityCreateAliasV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /aweme/apps/v1/alias/create_alias/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityCreateAliasV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序别名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"alias_word\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"alias_word\")]\n        public string Alias { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityCreateAliasV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /aweme/apps/v1/alias/create_alias/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityCreateAliasV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityDeleteAliasV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/delete_alias/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityDeleteAliasV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序别名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"alias\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"alias\")]\n        public string Alias { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityDeleteAliasV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/delete_alias/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityDeleteAliasV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityListAliasV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /aweme/apps/v1/alias/list_alias/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityListAliasV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityListAliasV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /aweme/apps/v1/alias/list_alias/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityListAliasV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AliasItem\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序别名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"alias\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"alias\")]\n                        public string Alias { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ctime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ctime\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"utime\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"utime\")]\n                        public long UpdateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置本周还剩余修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"week_available_times\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"week_available_times\")]\n                public int WeekAvailableTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置每周总共可修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"week_total_times\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"week_total_times\")]\n                public int WeekTotalTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置别名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alias_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alias_list\")]\n                public Types.AliasItem[] AliasList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityModifyAliasV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/modify_alias/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityModifyAliasV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置修改前小程序别名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"before_alias\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"before_alias\")]\n        public string OldAlias { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置修改后小程序别名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"after_alias\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"after_alias\")]\n        public string NewAlias { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityModifyAliasV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/modify_alias/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityModifyAliasV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityQuerySearchTagListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_search_tag_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQuerySearchTagListV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacityQuerySearchTagListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_search_tag_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQuerySearchTagListV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TagItem\n                    {\n                        /// <summary>\n                        /// 获取或设置搜索标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"search_tag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"search_tag\")]\n                        public string Tag { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                        public int AuditStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置本月还剩余修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"month_available_times\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"month_available_times\")]\n                public int MonthAvailableTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置每月总共可修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"month_total_times\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"month_total_times\")]\n                public int MonthTotalTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置搜索标签列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_tag_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_tag_list\")]\n                public Types.TagItem[] TagList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacitySetSearchTagV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/set_search_tag/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacitySetSearchTagV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class ModifiedTag\n            {\n                /// <summary>\n                /// 获取或设置修改前搜索标签。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"before_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"before_tag\")]\n                public string OldTag { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置修改后搜索标签。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_tag\")]\n                public string NewTag { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置新增的搜索标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"add_tag_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"add_tag_list\")]\n        public IList<string>? AddedTagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置删除的搜索标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delete_tag_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delete_tag_list\")]\n        public IList<string>? DeletedTagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置修改的搜索标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"modify_tag_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"modify_tag_list\")]\n        public IList<Types.ModifiedTag>? ModifiedTagList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/Delivery/AppsCapacitySetSearchTagV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/set_search_tag/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacitySetSearchTagV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityAddSimpleQrcodeBindV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/add_simple_qr_bind/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityAddSimpleQrcodeBindV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置链接地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qr_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qr_url\")]\n        public string Url { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"load_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"load_path\")]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置测试范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stage\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stage\")]\n        public string Stage { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否独占该链接作为前缀。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclusive_qr_url_prefix\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclusive_qr_url_prefix\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool IsPrefixExclusive { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityAddSimpleQrcodeBindV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/add_simple_qr_bind/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityAddSimpleQrcodeBindV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityDeleteSimpleQrcodeBindV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/delete_simple_qr_bind/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityDeleteSimpleQrcodeBindV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置链接地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qr_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qr_url\")]\n        public string Url { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityDeleteSimpleQrcodeBindV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/delete_simple_qr_bind/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityDeleteSimpleQrcodeBindV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityQuerySimpleQrcodeBindListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v2/capacity/query_simple_qr_bind_list/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQuerySimpleQrcodeBindListV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityQuerySimpleQrcodeBindListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v2/capacity/query_simple_qr_bind_list/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQuerySimpleQrcodeBindListV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Qrcode\n                    {\n                        /// <summary>\n                        /// 获取或设置绑定的链接地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qr_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qr_url\")]\n                        public string Url { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置绑定的小程序页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"load_path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"load_path\")]\n                        public string PagePath { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置测试范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"stage\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"stage\")]\n                        public string Stage { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否独占该链接作为前缀。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exclusive_qr_url_prefix\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exclusive_qr_url_prefix\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool IsPrefixExclusive { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置绑定的二维码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qr_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qr_list\")]\n                public Types.Qrcode[] QrcodeList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置目前绑定的链接数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总共可以绑定的链接数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bind_upper_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bind_upper_limit\")]\n                public int BindLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置剩余可以绑定的链接数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bind_rest_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bind_rest_count\")]\n                public int BindRestCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置当月总共可以发布的次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"release_upper_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"release_upper_limit\")]\n                public int ReleaseLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置当月剩余可以的发布次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"release_rest_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"release_rest_count\")]\n                public int ReleaseRestCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindStatusV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/update_simple_qr_bind_status/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityUpdateSimpleQrcodeBindStatusV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置链接地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qr_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qr_url\")]\n        public string Url { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindStatusV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/update_simple_qr_bind_status/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityUpdateSimpleQrcodeBindStatusV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/update_simple_qr_bind/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityUpdateSimpleQrcodeBindV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置更新前的链接地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"before_qr_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"before_qr_url\")]\n        public string OldUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置链接地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qr_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qr_url\")]\n        public string NewUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"load_path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"load_path\")]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置测试范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stage\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stage\")]\n        public string Stage { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否独占该链接作为前缀。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclusive_qr_url_prefix\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclusive_qr_url_prefix\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool IsPrefixExclusive { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/capacity/update_simple_qr_bind/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityUpdateSimpleQrcodeBindV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SubService/AppsCapacityCreateMicroAppSubServiceV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_ma_sub_service/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityCreateMicroAppSubServiceV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置检索关键词列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_key_word\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_key_word\")]\n        public IList<string> SearchKeywordList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置对应功能服务页面的路径链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page_url\")]\n        public string StartPageUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置搜索直达子服务的名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_service_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_service_name\")]\n        public string SubServiceName { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SubService/AppsCapacityCreateMicroAppSubServiceV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_ma_sub_service/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityCreateMicroAppSubServiceV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SubService/AppsCapacityQueryMicroAppSubServiceV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_ma_sub_service/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryMicroAppSubServiceV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? ApprovalState { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCapacity/SubService/AppsCapacityQueryMicroAppSubServiceV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_ma_sub_service/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryMicroAppSubServiceV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SubService\n                    {\n                        public static class Types\n                        {\n                            public class RejectReason\n                            {\n                                /// <summary>\n                                /// 获取或设置审核拒绝标签。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audit_field\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audit_field\")]\n                                public string AuditField { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核拒绝原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                                public string Reason { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置子服务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_service_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_service_id\")]\n                        public string SubServiceId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置子服务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_service_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_service_name\")]\n                        public string SubServiceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"micro_app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_id\")]\n                        public string MicroAppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"micro_app_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_icon\")]\n                        public string MicroAppIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置检索关键词列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"search_key_word\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"search_key_word\")]\n                        public string[] SearchKeywordList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置对应功能服务页面的路径链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_page_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_page_url\")]\n                        public string StartPageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"approval_state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"approval_state\")]\n                        public int ApprovalState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reasons\")]\n                        public Types.RejectReason[]? RejectReasonList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置搜索直达子服务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ma_sub_service_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ma_sub_service_info_list\")]\n                public Types.SubService[] SubServiceList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCategory/AppsCategoryQueryAppCategoriesV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/category/query_app_categories/ 接口的请求。</para>\n    /// </summary>\n    public class AppsCategoryQueryAppCategoriesV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCategory/AppsCategoryQueryAppCategoriesV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/category/query_app_categories/ 接口的响应。</para>\n    /// </summary>\n    public class AppsCategoryQueryAppCategoriesV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AppCategoryAuditInfo\n                    {\n                        public static class Types\n                        {\n                            public class Certificate\n                            {\n                                /// <summary>\n                                /// 获取或设置资质 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int Id { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置资质名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资质文件路径列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pathList\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pathList\")]\n                                public string[] FilePathList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称字符串（以短横线分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryName\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目资质 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryCertIds\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedNumberArrayWithCommaSplitConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryCertIds\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedNumberArrayWithCommaSplitConverter))]\n                        public int[] CertificationIdList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置本月剩余更改次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryCert\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryCert\")]\n                        public Types.Certificate[] CertificationList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"categoryAuditState\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"categoryAuditState\")]\n                        public int AuditState { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置本月剩余更改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"remainingTimes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"remainingTimes\")]\n                public int RemainingTimes { get; set; }\n\n                /// <summary>\n                /// 获取或设置本月总共可以修改次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryChangeLimit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryChangeLimit\")]\n                public int CategoryChangeLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置最多可以设置的服务类目数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categoryLimit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categoryLimit\")]\n                public int CategoryLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置服务类目列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"appCategoryAuditInfo\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"appCategoryAuditInfo\")]\n                public Types.AppCategoryAuditInfo[] AppCategoryAuditList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCensor/AppsCensorImageV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/censor/image 接口的请求。</para>\n    /// </summary>\n    public class AppsCensorImageV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL。与字段 <see cref=\"EncodingImageData\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n        public string? ImageUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置经过 Base64 编码的图片数据。与字段 <see cref=\"ImageUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_data\")]\n        public string? EncodingImageData { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsCensor/AppsCensorImageV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/censor/image 接口的响应。</para>\n    /// </summary>\n    public class AppsCensorImageV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Predict\n            {\n                /// <summary>\n                /// 获取或设置置信度模型或标签。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"model_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"model_name\")]\n                public string ModelName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置置信度结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hit\")]\n                public bool IsHit { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置置信度列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"predicts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"predicts\")]\n        public Types.Predict[] PredictList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/developer_toolbox/image_material/function_config/add/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置功能配置列表字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene_function_config\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene_function_config\")]\n        public IDictionary<string, IList<string>> SceneFunctionConfigMap { get; set; } = new Dictionary<string, IList<string>>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/developer_toolbox/image_material/function_config/add/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/developer_toolbox/image_material/function_config/query_status/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置功能 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string FunctionId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/developer_toolbox/image_material/function_config/query_status/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置功能配置状态字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"function_config_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"function_config_status\")]\n                public IDictionary<string, int> FunctionConfigStatusMap { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialUploadV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/developer_toolbox/image_material/upload/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialUploadV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置图片素材 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_material_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_material_url\")]\n        public string ImageMaterialUrl { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialUploadV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/developer_toolbox/image_material/upload/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDeveloperToolboxImageMaterialUploadV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片素材 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_material_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_material_id\")]\n                public string ImageMaterialId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/InteractTask/AppsDouyinCreateInteractTaskV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/create_interact_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDouyinCreateInteractTaskV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class InteractRule\n            {\n                /// <summary>\n                /// 获取或设置目标值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"target_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"target_count\")]\n                public int TargetCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置阶段值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stage_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stage_count\")]\n                public int? StageCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务类型。\n        /// <para>默认值：3</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_type\")]\n        public int TaskType { get; set; } = 3;\n\n        /// <summary>\n        /// 获取或设置可重复参加次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int MaxCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置挂载链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mount_link\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mount_link\")]\n        public string? MountLink { get; set; }\n\n        /// <summary>\n        /// 获取或设置发布类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"publish_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"publish_type\")]\n        public IList<int>? PublishTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置话题标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n        public IList<string>? TagList { get; set; }\n\n        /// <summary>\n        /// 获取或设置互动任务目标配置字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interact_rules\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interact_rules\")]\n        public IDictionary<string, Types.InteractRule>? InteractRuleMap { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/InteractTask/AppsDouyinCreateInteractTaskV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/create_interact_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDouyinCreateInteractTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/InteractTask/AppsDouyinQueryUserInteractTaskV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/query_user_interact_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDouyinQueryUserInteractTaskV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开启任务的用户 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public IList<string> TaskIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/InteractTask/AppsDouyinQueryUserInteractTaskV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/query_user_interact_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDouyinQueryUserInteractTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TaskInfo\n                    {\n                        public static class Types\n                        {\n                            public class Video\n                            {\n                                public static class Types\n                                {\n                                    public class InteractInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置是否已完成。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"completed\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"completed\")]\n                                        public bool IsCompleted { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置阶段值。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"stage\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"stage\")]\n                                        public int? Stage { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                                public string VideoId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                                public int VideoStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否已完成。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"completed\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"completed\")]\n                                public bool IsCompleted { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置互动数据字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interact_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interact_info\")]\n                                public IDictionary<string, Types.InteractInfo> InteractInfoMap { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        public string TaskId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否有效。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_valid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_valid\")]\n                        public bool IsValid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最多参与次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n                        public int MaxCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置成功次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success_count\")]\n                        public int SuccessCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_info\")]\n                        public Types.Video[] VideoList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_info_list\")]\n                public IDictionary<string, Types.TaskInfo> TaskInfoMap { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/Task/AppsDouyinCreateTaskV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/create_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDouyinCreateTaskV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务类型。\n        /// <para>默认值：2</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_type\")]\n        public int TaskType { get; set; } = 2;\n\n        /// <summary>\n        /// 获取或设置规则类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rule_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rule_type\")]\n        public int RuleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置目标次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_count\")]\n        public int TargetCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置挂载链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mount_link\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mount_link\")]\n        public string? MountLink { get; set; }\n\n        /// <summary>\n        /// 获取或设置发布类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"publish_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"publish_type\")]\n        public IList<int>? PublishTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置话题标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tags\")]\n        public IList<string>? TagList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/Task/AppsDouyinCreateTaskV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/create_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDouyinCreateTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/Task/AppsDouyinQueryUserTaskV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/query_user_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsDouyinQueryUserTaskV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开启任务的用户 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public IList<string> TaskIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsDouyin/Task/AppsDouyinQueryUserTaskV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/douyin/query_user_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsDouyinQueryUserTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TaskInfo\n                    {\n                        public static class Types\n                        {\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                                public string VideoId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                                public int VideoStatus { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        public string TaskId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否有效。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_valid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_valid\")]\n                        public bool IsValid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置目标次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target_count\")]\n                        public int TargetCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置成功次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success_count\")]\n                        public int SuccessCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已完成。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"completed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"completed\")]\n                        public bool IsCompleted { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_info\")]\n                        public Types.Video[] VideoList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_info_list\")]\n                public IDictionary<string, Types.TaskInfo> TaskInfoMap { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/Bill/AppsBillsV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v3/bills/ 接口的请求。</para>\n    /// </summary>\n    public class AppsBillsV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string? MerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_type\")]\n        public string BillType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_date\")]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/Bill/AppsBillsV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v3/bills/ 接口的响应。</para>\n    /// </summary>\n    public class AppsBillsV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置账单下载链接列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bill_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bill_list\")]\n                public string[] DownloadUrlList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/Bill/AppsFundBillsV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v3/fund/bills/ 接口的请求。</para>\n    /// </summary>\n    public class AppsFundBillsV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string? MerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账户类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n        public string AccountType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置交易类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"trade_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"trade_type\")]\n        public string TradeType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置收支类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_type\")]\n        public string PaymentType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_date\")]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/Bill/AppsFundBillsV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v3/fund/bills/ 接口的响应。</para>\n    /// </summary>\n    public class AppsFundBillsV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置账单下载链接列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fund_bill_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fund_bill_list\")]\n                public string[] DownloadUrlList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSCreateMerchantV3Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/create_merchant/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSCreateMerchantV3Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Picture\n            {\n                /// <summary>\n                /// 获取或设置渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel\")]\n                public string Channel { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string ImageId { get; set; } = string.Empty;\n            }\n\n            public class BusinessLicense\n            {\n                /// <summary>\n                /// 获取或设置证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_type\")]\n                public int LicenseType { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_code\")]\n                public string LicenseCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件正面照片图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_picurl\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_picurl\")]\n                public IList<Picture> LicenseFrontPictureList { get; set; } = new List<Picture>();\n\n                /// <summary>\n                /// 获取或设置证件背面照片图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_back_picurl\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_back_picurl\")]\n                public IList<Picture>? LicenseBackPictureList { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string LicenseBeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n                public string LicenseEndDateString { get; set; } = string.Empty;\n            }\n\n            public class LegalPerson\n            {\n                /// <summary>\n                /// 获取或设置证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int IdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_no\")]\n                public string IdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string IdName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? IdAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件正面照片图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_pic_url\")]\n                public IList<Picture> IdFrontPictureList { get; set; } = new List<Picture>();\n\n                /// <summary>\n                /// 获取或设置证件背面照片图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_pic_url\")]\n                public IList<Picture>? IdBackPictureList { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string IdBeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exp_date\")]\n                public string IdEndDateString { get; set; } = string.Empty;\n            }\n\n            public class MerchantCardInfo\n            {\n                /// <summary>\n                /// 获取或设置银行户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                public string AccountName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置银行账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_no\")]\n                public string AccountNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置开户支行名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bank_full_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bank_full_name\")]\n                public string BankFullName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置结算类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_type\")]\n                public int SettleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置银行卡类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n                public string CardType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置支付宝结算类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_settle_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_settle_type\")]\n                public int AlipaySettleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付宝结算账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_account_no\")]\n                public string? AlipayAccountNumber { get; set; }\n            }\n\n            public class MerchantOperationInfo\n            {\n                /// <summary>\n                /// 获取或设置联系人名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_name\")]\n                public string ManagerName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_mobile\")]\n                public string ManagerMobileNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_email\")]\n                public string ManagerEmail { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_person_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_person_type\")]\n                public int ManagerType { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int? ManagerIdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_id_no\")]\n                public string ManagerIdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_begin_date\")]\n                public string? ManagerIdBeginDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_exp_date\")]\n                public string? ManagerIdEndDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件正面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_front_pic_url\")]\n                public string? ManagerIdFrontPictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件背面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_back_pic_url\")]\n                public string? ManagerIdBackPictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付宝账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_account_no\")]\n                public string? AlipayAccountNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string? ShopName { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_url\")]\n                public string? ShopUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权函图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_authorization_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_authorization_letter\")]\n                public string? AuthorizationLetterImageId { get; set; }\n            }\n\n            public class Beneficiary\n            {\n                /// <summary>\n                /// 获取或设置受益人证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int IdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置受益人证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_no\")]\n                public string IdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string IdName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? IdAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置受益人证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string IdBeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exp_date\")]\n                public string IdEndDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件正面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_pic_url\")]\n                public string IdFrontPictureImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件背面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_pic_url\")]\n                public string? IdBackPictureImageId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。与字段 <see cref=\"ComponentAppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。与字段 <see cref=\"AppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置进件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string? SubMerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义进件单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置进件渠道列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channels\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channels\")]\n        public IList<string> ChannelList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置商户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_type\")]\n        public int MerchantType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_name\")]\n        public string MerchantName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户简称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_short_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_short_name\")]\n        public string MerchantShortName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n        public string ProvinceCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置城市编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"city_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n        public string CityCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置区县编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"district_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"district_code\")]\n        public string DistrictCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_addr\")]\n        public string RegisteredAddress { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_license\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_license\")]\n        public Types.BusinessLicense BusinessLicense { get; set; } = new Types.BusinessLicense();\n\n        /// <summary>\n        /// 获取或设置法人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n        public Types.LegalPerson LegalPerson { get; set; } = new Types.LegalPerson();\n\n        /// <summary>\n        /// 获取或设置结算账户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_card_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_card_info\")]\n        public Types.MerchantCardInfo MerchantCardInfo { get; set; } = new Types.MerchantCardInfo();\n\n        /// <summary>\n        /// 获取或设置商户管理员信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_operation_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_operation_info\")]\n        public Types.MerchantOperationInfo MerchantOperationInfo { get; set; } = new Types.MerchantOperationInfo();\n\n        /// <summary>\n        /// 获取或设置行业编码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public IList<string> IndustryCodeList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_name\")]\n        public string CreateName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置受益人类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"beneficiary_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"beneficiary_type\")]\n        public string? BeneficiaryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置受益人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"beneficiary\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"beneficiary\")]\n        public Types.Beneficiary? Beneficiary { get; set; }\n\n        /// <summary>\n        /// 获取或设置补充材料图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_evidences\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_evidences\")]\n        public IList<Types.Picture>? ExtendedEvidencePictureList { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业资质材料图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_info_pic_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_info_pic_urls\")]\n        public IList<Types.Picture>? IndustryInfoPictureList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSCreateMerchantV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/create_merchant/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSCreateMerchantV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置申请单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n                public string ApplyId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string MerchantId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSImageUploadV3Request.cs",
    "content": "using System;\nusing System.Text;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/image_upload/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSImageUploadV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置图片类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_type\")]\n        public string ImageType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_content\")]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSImageUploadV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/image_upload/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSImageUploadV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string ImageId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSQueryMerchantStatusV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/query_merchant_status/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantStatusV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。与字段 <see cref=\"AppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序的 AppId。与字段 <see cref=\"ComponentAppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string? SubMerchantId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Applyment/AppsECPaySaaSQueryMerchantStatusV3Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/query_merchant_status/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantStatusV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class MerchantStatusInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商户号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                        public string? MerchantId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人验证页面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_validation_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_validation_url\")]\n                        public string? LegalPersonValidationUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人签名页面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"legal_sign_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"legal_sign_url\")]\n                        public string? LegalPersonSignUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置抖音信息主体渠道进件状态信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_status_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_status_info\")]\n                public IDictionary<string, Types.MerchantStatusInfo>? MerchantStatusInfoMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置光合信号主体渠道进件状态信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"new_merchant_status_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"new_merchant_status_info\")]\n                public IDictionary<string, Types.MerchantStatusInfo>? NewMerchantStatusInfoMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置担保支付企业版渠道进件状态信息字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_status_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_status_info\")]\n                public IDictionary<string, Types.MerchantStatusInfo>? PayStatusInfoMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAddMerchantV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/add_merchant/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddMerchantV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_component_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_component_id\")]\n        public string ComponentAppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付解决方案类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"prod_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"prod_id\")]\n        public int? ProductType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAddMerchantV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/add_merchant/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddMerchantV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置请求页面链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string MerchantId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAddSubMerchantV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/add_sub_merchant/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddSubMerchantV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string ComponentAppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string SubMerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n        public int? Role { get; set; }\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付解决方案类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"prod_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"prod_id\")]\n        public int? ProductType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAddSubMerchantV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/add_sub_merchant/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddSubMerchantV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置请求页面链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string MerchantId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAppAddSubMerchantV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/app_add_sub_merchant/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAppAddSubMerchantV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序的 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string SubMerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户角色。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n        public int? Role { get; set; }\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int? UrlType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSAppAddSubMerchantV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/app_add_sub_merchant/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAppAddSubMerchantV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置请求页面链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string MerchantId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSGetAppMerchantV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/get_app_merchant/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSGetAppMerchantV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string ComponentAppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序的 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Links/AppsECPaySaaSGetAppMerchantV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v3/saas/get_app_merchant/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSGetAppMerchantV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置请求页面链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string MerchantId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/merchant_withdraw/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSMerchantWithdrawV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户主体标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n        public int? MerchantEntity { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"withdraw_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"withdraw_amount\")]\n        public int WithdrawAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户提现单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/merchant_withdraw/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSMerchantWithdrawV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商户主体标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n                public int? MerchantEntity { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台提现单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_balance/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantBalanceV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户主体标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n        public int? MerchantEntity { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_balance/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantBalanceV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Account\n                    {\n                        /// <summary>\n                        /// 获取或设置在途余额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"online_balance\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"online_balance\")]\n                        public int OnlineBalance { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置可提现余额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"withdrawable_balacne\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"withdrawable_balacne\")]\n                        public int WithdrawableBalance { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置冻结准备金余额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"freeze_balance\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"freeze_balance\")]\n                        public int FreezeBalance { get; set; }\n                    }\n\n                    public class Settlement\n                    {\n                        /// <summary>\n                        /// 获取或设置结算类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_type\")]\n                        public int SettleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付宝账号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_account\")]\n                        public string SettleAccount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置银行卡号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bankcard_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bankcard_no\")]\n                        public string BankCardNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置银行名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bank_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bank_name\")]\n                        public string BankName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商户主体标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n                public int? MerchantEntity { get; set; }\n\n                /// <summary>\n                /// 获取或设置余额信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_info\")]\n                public Types.Account Account { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置结算信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_info\")]\n                public Types.Settlement Settlement { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderV3Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_withdraw_order/ 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryWithdrawOrderV3Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户提现单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderV3Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_withdraw_order/ 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryWithdrawOrderV3Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置提现状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置提现状态描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status_msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status_msg\")]\n                public string StatusMessage { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetBaseV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_base/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCGetBaseV1Request : AppsItemGetBaseV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetBaseV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_base/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCGetBaseV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsItemGetBaseV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCGetCommentV1Request : AppsItemGetCommentV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCGetCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsItemGetCommentV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetLikeV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_like/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCGetLikeV1Request : AppsItemGetLikeV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetLikeV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_like/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCGetLikeV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsItemGetLikeV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetPlayV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_play/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCGetPlayV1Request : AppsItemGetPlayV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetPlayV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_play/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCGetPlayV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsItemGetPlayV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetShareV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_share/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCGetShareV1Request : AppsItemGetShareV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemBCGetShareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/get_share/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCGetShareV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsItemGetShareV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetBaseV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_base/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemGetBaseV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetBaseV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_base/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemGetBaseV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置平均播放时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avg_play_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avg_play_duration\")]\n                        public decimal AveragePlayDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_play\")]\n                        public long TotalPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_comment\")]\n                        public long TotalCommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_like\")]\n                        public long TotalLikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_share\")]\n                        public long TotalShareCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result\")]\n                public Types.Result Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemGetCommentV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DataType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemGetCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n                        public long CommentCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetLikeV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_like/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemGetLikeV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DataType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetLikeV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_like/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemGetLikeV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like\")]\n                        public long LikeCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetPlayV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_play/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemGetPlayV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DataType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetPlayV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_play/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemGetPlayV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"play\")]\n                        public long PlayCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetShareV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_share/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemGetShareV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DataType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/AppsItemGetShareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/get_share/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemGetShareV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share\")]\n                        public long ShareCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCListCommentReplyV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/list_comment_reply/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCListCommentReplyV1Request : AppsItemListCommentReplyV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCListCommentReplyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/list_comment_reply/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCListCommentReplyV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Reply : AppsItemListCommentReplyV1Response.Types.Data.Types.Reply\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置回复列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Reply[] ReplyList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCListCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/list_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCListCommentV1Request : AppsItemListCommentV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCListCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item_bc/list_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCListCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Comment : AppsItemListCommentV1Response.Types.Data.Types.Comment\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCReplyCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item_bc/reply_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCReplyCommentV1Request : AppsItemReplyCommentV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCReplyCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item_bc/reply_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCReplyCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data : AppsItemReplyCommentV1Response.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCTopCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item_bc/top_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemBCTopCommentV1Request : AppsItemTopCommentV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemBCTopCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item_bc/top_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemBCTopCommentV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemListCommentReplyV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/list_comment_reply/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemListCommentReplyV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; } = 0;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemListCommentReplyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/list_comment_reply/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemListCommentReplyV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Reply\n                    {\n                        /// <summary>\n                        /// 获取或设置评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                        public string CommentId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置回复评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_id\")]\n                        public string? ReplyCommentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_user_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_user_id\")]\n                        public string UserId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置评论内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                        public int DiggCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_comment_total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_total\")]\n                        public int ReplyCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n                        public bool IsTop { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置回复列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Reply[] ReplyList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemListCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/list_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemListCommentV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long PageCursor { get; set; } = 0;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemListCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/item/list_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemListCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Comment\n                    {\n                        /// <summary>\n                        /// 获取或设置评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                        public string CommentId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_user_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_user_id\")]\n                        public string UserId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置评论内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                        public string AvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string Nickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                        public int DiggCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_comment_total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_comment_total\")]\n                        public int ReplyCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n                        public bool IsTop { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                public long? NextCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemReplyCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item/reply_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemReplyCommentV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string Content { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemReplyCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item/reply_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemReplyCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置评论 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n                public string CommentId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemTopCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item/top_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsItemTopCommentV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string ItemId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        public string CommentId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否置顶。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"top\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"top\")]\n        public bool IsTop { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsItem/Comment/AppsItemTopCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/item/top_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsItemTopCommentV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsLiveBooking/AppsLiveBookingVideoCancelV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/live_booking/video_cancel/ 接口的请求。</para>\n    /// </summary>\n    public class AppsLiveBookingVideoCancelV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID。与字段 <see cref=\"VideoUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string? ItemId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频分享链接。与字段 <see cref=\"ItemId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n        public string? VideoUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsLiveBooking/AppsLiveBookingVideoCancelV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/live_booking/video_cancel/ 接口的响应。</para>\n    /// </summary>\n    public class AppsLiveBookingVideoCancelV2Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置操作结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"success\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n        public bool Result { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsLiveBooking/AppsLiveBookingVideoCreateV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/live_booking/video_create/ 接口的请求。</para>\n    /// </summary>\n    public class AppsLiveBookingVideoCreateV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预计开播时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"live_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"live_time\")]\n        public long LiveTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。与字段 <see cref=\"VideoUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string? ItemId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频分享链接。与字段 <see cref=\"ItemId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n        public string? VideoUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsLiveBooking/AppsLiveBookingVideoCreateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/live_booking/video_create/ 接口的响应。</para>\n    /// </summary>\n    public class AppsLiveBookingVideoCreateV2Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置操作结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"success\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n        public bool Result { get; set; }\n\n        /// <summary>\n        /// 获取或设置预约 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"booking_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"booking_id\")]\n        public string? BookingId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPlayletBusiness/AppsPlayletBusinessUploadV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/playlet_business/upload/ 接口的请求。</para>\n    /// </summary>\n    public class AppsPlayletBusinessUploadV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Context\n            {\n                public static class Types\n                {\n                    public class Device\n                    {\n                        /// <summary>\n                        /// 获取或设置用户的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string? OpenId { get; set; }\n                    }\n\n                    public class Ad\n                    {\n                        /// <summary>\n                        /// 获取或设置广告回调参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"callback\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"callback\")]\n                        public string? Callback { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置设备信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"device\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"device\")]\n                public Types.Device? Device { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad\")]\n                public Types.Ad? Ad { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置上下文信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"context\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"context\")]\n        public Types.Context Context { get; set; } = new Types.Context();\n\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n        public string EventType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置事件参数 JSON 字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"properties\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"properties\")]\n        public string? PropertiesJson { get; set; }\n\n        /// <summary>\n        /// 获取或设置事件发生时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"timestamp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"timestamp\")]\n        public long Timestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPlayletBusiness/AppsPlayletBusinessUploadV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/playlet_business/upload/ 接口的响应。</para>\n    /// </summary>\n    public class AppsPlayletBusinessUploadV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPrivacySetting/AppsPrivacySettingAddV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/privacy_setting/add/ 接口的请求。</para>\n    /// </summary>\n    public class AppsPrivacySettingAddV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class PrivacyItem\n            {\n                /// <summary>\n                /// 获取或设置隐私条例 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public int Id { get; set; }\n\n                /// <summary>\n                /// 获取或设置隐私条例描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_desc\")]\n                public string ApplyDescription { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否需要收集用户隐私。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_privacy_config\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_privacy_config\")]\n        public bool IsPrivacyConfig { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact_way\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact_way\")]\n        public int? ContactWay { get; set; }\n\n        /// <summary>\n        /// 获取或设置邮箱。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string? Email { get; set; }\n\n        /// <summary>\n        /// 获取或设置座机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"land_line\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"land_line\")]\n        public string? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone\")]\n        public string? MobileNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置隐私项列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"privacy_item_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"privacy_item_list\")]\n        public IList<Types.PrivacyItem> PrivacyItemList { get; set; } = new List<Types.PrivacyItem>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPrivacySetting/AppsPrivacySettingAddV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/privacy_setting/add/ 接口的响应。</para>\n    /// </summary>\n    public class AppsPrivacySettingAddV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPrivacySetting/AppsPrivacySettingQueryV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/privacy_setting/query/ 接口的请求。</para>\n    /// </summary>\n    public class AppsPrivacySettingQueryV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsPrivacySetting/AppsPrivacySettingQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/privacy_setting/query/ 接口的响应。</para>\n    /// </summary>\n    public class AppsPrivacySettingQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否已配置。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_configure\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_configure\")]\n                public bool IsConfigured { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsQrcode/AppsQrcodeCreateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/qrcode/create/ 接口的请求。</para>\n    /// </summary>\n    public class AppsQrcodeCreateV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Color\n            {\n                /// <summary>\n                /// 获取或设置 RGB 红色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"r\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"r\")]\n                public byte Red { get; set; }\n\n                /// <summary>\n                /// 获取或设置 RGB 绿色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"g\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"g\")]\n                public byte Green { get; set; }\n\n                /// <summary>\n                /// 获取或设置 RGB 蓝色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b\")]\n                public byte Blue { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置 URL 编码后的小程序启动路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? EncodedPath { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码宽度（单位：像素）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"width\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n        public int? Width { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码线条颜色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"line_color\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"line_color\")]\n        public Types.Color? LineColor { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码背景颜色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"background\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"background\")]\n        public Types.Color? BackgroundColor { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否展示小程序 Icon。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"set_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"set_icon\")]\n        public bool? RequireSetIcon { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否生成抖音码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_circle_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_circle_code\")]\n        public bool? IsCircleCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsQrcode/AppsQrcodeCreateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/qrcode/create/ 接口的响应。</para>\n    /// </summary>\n    public class AppsQrcodeCreateV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置经过 Base64 编码的二维码图片数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"img\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"img\")]\n                public string EncodingImageData { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsSearch/AppsSearchDeleteIndexV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/search/delete_index/ 接口的请求。</para>\n    /// </summary>\n    public class AppsSearchDeleteIndexV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置待删除页面路径列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path_list\")]\n        public IList<string> PagePathList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsSearch/AppsSearchDeleteIndexV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/search/delete_index/ 接口的响应。</para>\n    /// </summary>\n    public class AppsSearchDeleteIndexV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsSearch/AppsSearchUploadSitemapV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/search/upload_sitemap/ 接口的请求。</para>\n    /// </summary>\n    public class AppsSearchUploadSitemapV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面路径列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_paths\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_paths\")]\n        public IList<string> PagePathList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsSearch/AppsSearchUploadSitemapV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/search/upload_sitemap/ 接口的响应。</para>\n    /// </summary>\n    public class AppsSearchUploadSitemapV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsShare/Task/AppsShareCreateTaskV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/share/create_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsShareCreateTaskV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_type\")]\n        public int TaskType { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置目标次数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_count\")]\n        public int TargetCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsShare/Task/AppsShareCreateTaskV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/share/create_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsShareCreateTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsShare/Task/AppsShareQueryUserTaskV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/share/query_user_task/ 接口的请求。</para>\n    /// </summary>\n    public class AppsShareQueryUserTaskV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开启任务的用户 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string TaskId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsShare/Task/AppsShareQueryUserTaskV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/share/query_user_task/ 接口的响应。</para>\n    /// </summary>\n    public class AppsShareQueryUserTaskV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否有效。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_valid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_valid\")]\n                public bool IsValid { get; set; }\n\n                /// <summary>\n                /// 获取或设置目标次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"target_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"target_count\")]\n                public int TargetCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置成功次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_count\")]\n                public int SuccessCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否已完成。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"completed\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"completed\")]\n                public bool IsCompleted { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskCreateLiveV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/create_live/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTaskCreateLiveV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置条件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"conditions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"conditions\")]\n        public IList<string>? ConditionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置条件阈值列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"condition_value\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"condition_value\")]\n        public IList<long>? ConditionValueList { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_id\")]\n        public string? AwemeId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskCreateLiveV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/create_live/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTaskCreateLiveV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n                public int TaskStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskCreateVideoV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/create_video/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTaskCreateVideoV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置条件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"conditions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"conditions\")]\n        public IList<string>? ConditionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置条件阈值列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"condition_value\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"condition_value\")]\n        public IList<long>? ConditionValueList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。与字段 <see cref=\"VideoUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n        public string? ItemId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 URL。与字段 <see cref=\"ItemId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n        public string? VideoUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskCreateVideoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/create_video/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTaskCreateVideoV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置任务状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n                public int TaskStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskWriteoffLiveV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/writeoff_live/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTaskWriteoffLiveV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string TaskId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskWriteoffLiveV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/writeoff_live/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTaskWriteoffLiveV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskWriteoffVideoV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/writeoff_video/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTaskWriteoffVideoV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public string TaskId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTask/AppsTaskWriteoffVideoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/task/writeoff_video/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTaskWriteoffVideoV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitButtonWhiteSettingV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/button_white_setting 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeToolkitButtonWhiteSettingV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置按钮类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"button_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"button_type\")]\n        public int ButtonType { get; set; }\n\n        /// <summary>\n        /// 获取或设置白名单。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"uid_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"uid_list\")]\n        public IList<int>? Whitelist { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否全量用户可见。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_all\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_all\")]\n        public bool? IsOpenAll { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitButtonWhiteSettingV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/button_white_setting 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeToolkitButtonWhiteSettingV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitQueryTextV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/query_text 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeToolkitQueryTextV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置文案类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text_type\")]\n        public int? TextType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitQueryTextV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/query_text 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeToolkitQueryTextV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Text\n                    {\n                        public static class Types\n                        {\n                            public class Content\n                            {\n                                /// <summary>\n                                /// 获取或设置文案 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text_id\")]\n                                public string TextId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置文案内容。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text_content\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text_content\")]\n                                public string TextContent { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置文案类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text_type\")]\n                        public int TextType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文案内容列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text_content_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text_content_list\")]\n                        public Types.Content[] ContentList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置文案列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text_list\")]\n                public Types.Text[] TextList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitUpdateMerchantConfigV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/update_merchant_conf 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeToolkitUpdateMerchantConfigV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class DeliveryAppInfo\n            {\n                /// <summary>\n                /// 获取或设置引导文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"guidance_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"guidance_text_id\")]\n                public string? GuidanceTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销预约按钮文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"button_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"button_text_id\")]\n                public string? ButtonTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置详情页按钮文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail_page_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail_page_text_id\")]\n                public string? DetailPageTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二维码展示方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"display_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"display_mode\")]\n                public int? DisplayMode { get; set; }\n            }\n\n            public class ProductDoubleOpenInfo\n            {\n                /// <summary>\n                /// 获取或设置引导文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"guidance_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"guidance_text_id\")]\n                public string? GuidanceTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置到店按钮文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"arrival_store_button_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"arrival_store_button_text_id\")]\n                public string? ArrivalStoreButtonTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置到家按钮文案 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"arrival_home_button_text_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"arrival_home_button_text_id\")]\n                public string? ArrivalHomeButtonTextId { get; set; }\n\n                /// <summary>\n                /// 获取或设置二维码展示方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"display_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"display_mode\")]\n                public int? DisplayMode { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置绑定的小程序类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_biz_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_biz_type\")]\n        public int BindBusinessType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家团购账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置核销工具相关信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_app_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_app_info\")]\n        public Types.DeliveryAppInfo? DeliveryAppInfo { get; set; }\n\n        /// <summary>\n        /// 获取或设置混合双开相关信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_double_open_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_double_open_info\")]\n        public Types.ProductDoubleOpenInfo? ProductDoubleOpenInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitUpdateMerchantConfigV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/update_merchant_conf 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeToolkitUpdateMerchantConfigV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitUpdateMerchantPathV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/update_merchant_path 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeToolkitUpdateMerchantPathV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class PathData\n            {\n                /// <summary>\n                /// 获取或设置跳转路径类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path_type\")]\n                public int PathType { get; set; }\n\n                /// <summary>\n                /// 获取或设置跳转路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string Path { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置绑定的小程序类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_biz_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_biz_type\")]\n        public int BindBusinessType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家团购账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_id\")]\n        public string AccountId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置跳转路径列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path_data_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path_data_list\")]\n        public IList<Types.PathData> PathDataList { get; set; } = new List<Types.PathData>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrade/AppsTradeToolkitUpdateMerchantPathV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/toolkit/update_merchant_path 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeToolkitUpdateMerchantPathV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrafficPermission/AppsTrafficPermissionOpenV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/traffic_permission/open/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTrafficPermissionOpenV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置省份。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n        public string Province { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置城市。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"city\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n        public string City { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public string PhoneNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置纳税人性质。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tax_nature\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tax_nature\")]\n        public int TaxNatureType { get; set; }\n\n        /// <summary>\n        /// 获取或设置银行账号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bank_account_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bank_account_number\")]\n        public string BankAccountNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开户银行名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bank_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bank_name\")]\n        public string BankName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开户支行名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bank_branch\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bank_branch\")]\n        public string BankBranch { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrafficPermission/AppsTrafficPermissionOpenV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/traffic_permission/open/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTrafficPermissionOpenV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrafficPermission/AppsTrafficPermissionQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/traffic_permission/query/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTrafficPermissionQueryV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsTrafficPermission/AppsTrafficPermissionQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/traffic_permission/query/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTrafficPermissionQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否可开通。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_open\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_open\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                public bool CanOpen { get; set; }\n\n                /// <summary>\n                /// 获取或设置开通状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkGenerateV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/generate 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlLinkGenerateV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string AppName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? PagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面查询参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n        public string? QueryString { get; set; }\n\n        /// <summary>\n        /// 获取或设置失效时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n        public long ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkGenerateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/generate 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlLinkGenerateV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url_link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url_link\")]\n                public string UrlLink { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkQueryInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/query_info 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlLinkQueryInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_link\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_link\")]\n        public string UrlLink { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkQueryInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/query_info 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlLinkQueryInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序的 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置宿主名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string? PagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面查询参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                public string? QueryString { get; set; }\n\n                /// <summary>\n                /// 获取或设置生成时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置失效时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public long ExpireTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkQueryQuotaV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/query_quota 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlLinkQueryQuotaV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlLink/AppsUrlLinkQueryQuotaV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url_link/query_quota 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlLinkQueryQuotaV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置已生成次数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url_link_used\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url_link_used\")]\n                public int UsedCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置次数上限。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url_link_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url_link_limit\")]\n                public int LimitCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlGenerateSchemaV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/generate_schema/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlGenerateSchemaV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序的 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? PagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面查询参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n        public string? QueryString { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否永不失效。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"no_expire\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"no_expire\")]\n        public bool IsNoExpire { get; set; }\n\n        /// <summary>\n        /// 获取或设置失效时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n        public long? ExpireTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlGenerateSchemaV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/generate_schema/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlGenerateSchemaV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"schema\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n                public string UrlSchema { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlQuerySchemaQuotaV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/query_schema_quota/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlQuerySchemaQuotaV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlQuerySchemaQuotaV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/query_schema_quota/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlQuerySchemaQuotaV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Quota\n                    {\n                        /// <summary>\n                        /// 获取或设置已生成次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"schema_used\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"schema_used\")]\n                        public int UsedCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置次数上限。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"schema_limit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"schema_limit\")]\n                        public int LimitCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置长期有效的配额信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"long_term_schema_quota\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"long_term_schema_quota\")]\n                public Types.Quota LongTermQuota { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置短期有效的配额信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"short_term_schema_quota\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"short_term_schema_quota\")]\n                public Types.Quota ShortTermQuota { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlQuerySchemaV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/query_schema/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUrlQuerySchemaV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schema\")]\n        public string UrlSchema { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUrlSchema/AppsUrlQuerySchemaV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/url/query_schema/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUrlQuerySchemaV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序的 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string? PagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置页面查询参数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n                public string? QueryString { get; set; }\n\n                /// <summary>\n                /// 获取或设置生成时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置失效时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_time\")]\n                public long ExpireTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetCommentV1Request : AppsUserGetCommentV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetCommentV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetFansV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_fans/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetFansV1Request : AppsUserGetFansV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetFansV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_fans/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetFansV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetFansV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetItemV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_item/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetItemV1Request : AppsUserGetItemV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetItemV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_item/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetItemV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetItemV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetLikeV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_like/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetLikeV1Request : AppsUserGetLikeV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetLikeV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_like/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetLikeV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetLikeV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetProfileV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_profile/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetProfileV1Request : AppsUserGetProfileV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetProfileV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_profile/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetProfileV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetProfileV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetShareV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_share/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserBCGetShareV1Request : AppsUserGetShareV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserBCGetShareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user_bc/get_share/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserBCGetShareV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : AppsUserGetShareV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetCommentV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_comment/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetCommentV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetCommentV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_comment/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetCommentV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_comment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_comment\")]\n                        public long NewCommentCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetFansV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_fans/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetFansV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetFansV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_fans/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetFansV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_fans\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_fans\")]\n                        public long NewFansCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_fans\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_fans\")]\n                        public long TotalFansCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetItemV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_item/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetItemV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetItemV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_item/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetItemV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增播放数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_play\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_play\")]\n                        public long NewPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发布内容数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_issue\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_issue\")]\n                        public long NewIssueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置内容总数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_issue\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_issue\")]\n                        public long TotalIssueCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetLikeV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_like/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetLikeV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetLikeV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_like/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetLikeV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_like\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_like\")]\n                        public long NewLikeCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetProfileV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_profile/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetProfileV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetProfileV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_profile/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetProfileV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置个人主页访问人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"profile_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"profile_uv\")]\n                        public long ProfileUV { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetShareV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_share/ 接口的请求。</para>\n    /// </summary>\n    public class AppsUserGetShareV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置数据范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int DateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsUser/AppsUserGetShareV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/user/get_share/ 接口的响应。</para>\n    /// </summary>\n    public class AppsUserGetShareV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增分享数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_share\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_share\")]\n                        public long NewShareCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置返回结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"result_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"result_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsConvertOpenItemIdToEncryptIdV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/convert_video_id/open_item_id_to_encrypt_id/ 接口的请求。</para>\n    /// </summary>\n    public class AppsConvertOpenItemIdToEncryptIdV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置访问密钥。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_key\")]\n        public string? AccessKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ItemId 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> OpenItemIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsConvertOpenItemIdToEncryptIdV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/convert_video_id/open_item_id_to_encrypt_id/ 接口的响应。</para>\n    /// </summary>\n    public class AppsConvertOpenItemIdToEncryptIdV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置转换结果字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"convert_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"convert_result\")]\n                public IDictionary<string, string> Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsConvertVideoIdToOpenItemIdV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/convert_video_id/video_id_to_open_item_id/ 接口的请求。</para>\n    /// </summary>\n    public class AppsConvertVideoIdToOpenItemIdV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置访问密钥。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_key\")]\n        public string? AccessKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> VideoIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsConvertVideoIdToOpenItemIdV1Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/convert_video_id/video_id_to_open_item_id/ 接口的响应。</para>\n    /// </summary>\n    public class AppsConvertVideoIdToOpenItemIdV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置转换结果字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"convert_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"convert_result\")]\n                public IDictionary<string, string> Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsVideoBCQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/video_bc/query/ 接口的请求。</para>\n    /// </summary>\n    public class AppsVideoBCQueryV1Request : AppsVideoQueryV1Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsVideoBCQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/video_bc/query/ 接口的响应。</para>\n    /// </summary>\n    public class AppsVideoBCQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video : AppsVideoQueryV1Response.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsVideoQueryV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/video/query/ 接口的请求。</para>\n    /// </summary>\n    public class AppsVideoQueryV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。与字段 <see cref=\"VideoIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_ids\")]\n        public IList<string>? ItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。与字段 <see cref=\"ItemIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string>? VideoIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/AppsVideo/AppsVideoQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/video/query/ 接口的响应。</para>\n    /// </summary>\n    public class AppsVideoQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        public static class Types\n                        {\n                            public class Statistics\n                            {\n                                /// <summary>\n                                /// 获取或设置点赞数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"digg_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"digg_count\")]\n                                public int DiggCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置下载数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"download_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"download_count\")]\n                                public int DownloadCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置转发数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"forward_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"forward_count\")]\n                                public int ForwardCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置播放数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"play_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"play_count\")]\n                                public int PlayCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分享数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                                public int ShareCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置评论数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                                public int CommentCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string? ItemId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string? VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_status\")]\n                        public int VideoStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享链接 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否审核结束。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_reviewed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_reviewed\")]\n                        public bool IsReviewed { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否置顶。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_top\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_top\")]\n                        public bool IsTop { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置媒体类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n                        public int MediaType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置统计数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statistics\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statistics\")]\n                        public Types.Statistics Statistics { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceConfigLimitOperatePointV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/config/limit_op_point/ 接口的请求。</para>\n    /// </summary>\n    public class ECommerceConfigLimitOperatePointV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n        public int OperateType { get; set; }\n\n        /// <summary>\n        /// 获取或设置单日单用户增加积分次数上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"daily_add_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"daily_add_count\")]\n        public long? DailyAddCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置单日单用户减少积分次数上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"daily_deduct_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"daily_deduct_count\")]\n        public long? DailyDeductCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置单次增加积分上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"single_add_limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"single_add_limit\")]\n        public long? SingleAddLimit { get; set; }\n\n        /// <summary>\n        /// 获取或设置单次减少积分上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"single_deduct_limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"single_deduct_limit\")]\n        public long? SingleDeductLimit { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceConfigLimitOperatePointV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/config/limit_op_point/ 接口的响应。</para>\n    /// </summary>\n    public class ECommerceConfigLimitOperatePointV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceConfigRegisterMicroAppV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/config/register_ma_app/ 接口的请求。</para>\n    /// </summary>\n    public class ECommerceConfigRegisterMicroAppV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置电商类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ecom_microapp_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ecom_microapp_type\")]\n        public int ECommerceType { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string? CallbackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置额外信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置预览图 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"preview_photo_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"preview_photo_url\")]\n        public string? PreviewPhotoUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceConfigRegisterMicroAppV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/config/register_ma_app/ 接口的响应。</para>\n    /// </summary>\n    public class ECommerceConfigRegisterMicroAppV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceCustomizationQueryStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/customization/query_status/ 接口的请求。</para>\n    /// </summary>\n    public class ECommerceCustomizationQueryStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceCustomizationQueryStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/customization/query_status/ 接口的响应。</para>\n    /// </summary>\n    public class ECommerceCustomizationQueryStatusV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置定制状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_code\")]\n                public int Status { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceShopMemberLeaveV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/shop_member/leave/ 接口的请求。</para>\n    /// </summary>\n    public class ECommerceShopMemberLeaveV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        public int? ShopId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/ECommerce/ECommerceShopMemberLeaveV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/ecom/v1/shop_member/leave/ 接口的响应。</para>\n    /// </summary>\n    public class ECommerceShopMemberLeaveV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Gift/GiftReceiveRewardRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/gift/receive_reward 接口的请求。</para>\n    /// </summary>\n    public class GiftReceiveRewardRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置礼包码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gift_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gift_code\")]\n        public string GiftCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置兑奖用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置兑奖通用唯一 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"uuid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"uuid\")]\n        public string RequestUUID { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置环境类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"env_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"env_type\")]\n        public string? EnvironmentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Gift/GiftReceiveRewardResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/gift/receive_reward 接口的响应。</para>\n    /// </summary>\n    public class GiftReceiveRewardResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class GiftInfo\n            {\n                public static class Types\n                {\n                    public class Property\n                    {\n                        /// <summary>\n                        /// 获取或设置道具 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prop_id\")]\n                        public string PropId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"icon\")]\n                        public string IconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置道具名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置道具数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                        public int Count { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置礼包 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gift_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gift_id\")]\n                public string GiftId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置礼包有效开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gift_effective_start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gift_effective_start_time\")]\n                public long GiftEffectiveStartTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置礼包有效结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gift_effective_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gift_effective_end_time\")]\n                public long GiftEffectiveEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置图标 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"icon_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"icon_url\")]\n                public string IconUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置礼包名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置玩法类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"play_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"play_type\")]\n                public int PlayType { get; set; }\n\n                /// <summary>\n                /// 获取或设置关联道具列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"prop_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"prop_list\")]\n                public Types.Property[]? PropertyList { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户领奖说明列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_receive_guide\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_receive_guide\")]\n                public string[]? UserReceiveGuideList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置操作结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gift_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gift_info\")]\n        public Types.GiftInfo GiftInfo { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextCloseRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live/booking/text_close/ 接口的请求。</para>\n    /// </summary>\n    public class LiveBookingTextCloseRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextCloseResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live/booking/text_close/ 接口的响应。</para>\n    /// </summary>\n    public class LiveBookingTextCloseResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置操作结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"success\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n        public bool Result { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextCreateRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live/booking/text_create/ 接口的请求。</para>\n    /// </summary>\n    public class LiveBookingTextCreateRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置公告类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text_type\")]\n        public int TextType { get; set; }\n\n        /// <summary>\n        /// 获取或设置公告内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string Content { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开播时间字符串（格式：HHmm）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"live_time\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"live_time\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n        public string? LiveTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置开播日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"live_date\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"live_date\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n        public string? LiveDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置开播日列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"live_weekdays\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"live_weekdays\")]\n        public IList<int>? LiveWeekdays { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextCreateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /live/booking/text_create/ 接口的响应。</para>\n    /// </summary>\n    public class LiveBookingTextCreateResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置操作结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"success\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"success\")]\n        public bool Result { get; set; }\n\n        /// <summary>\n        /// 获取或设置预约 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"booking_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"booking_id\")]\n        public string? BookingId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextDetailRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live/booking/text_detail/ 接口的请求。</para>\n    /// </summary>\n    public class LiveBookingTextDetailRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingTextDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live/booking/text_detail/ 接口的响应。</para>\n    /// </summary>\n    public class LiveBookingTextDetailResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Booking\n            {\n                /// <summary>\n                /// 获取或设置预约 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"booking_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"booking_id\")]\n                public string BookingId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置主播 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"anchor_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"anchor_id\")]\n                public long AnchorId { get; set; }\n\n                /// <summary>\n                /// 获取或设置公告内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                public string Content { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开播时间字符串（格式：HHmm）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                public string? LiveTimeString { get; set; }\n\n                /// <summary>\n                /// 获取或设置开播日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_date\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_date\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                public string? LiveDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置开播日列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_weekdays\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_weekdays\")]\n                public int[]? LiveWeekdays { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否已预约。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"has_booking\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"has_booking\")]\n        public bool HasBooking { get; set; }\n\n        /// <summary>\n        /// 获取或设置预约信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text_booking\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text_booking\")]\n        public Types.Booking Booking { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingVideoListRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live/booking/video_list/ 接口的请求。</para>\n    /// </summary>\n    public class LiveBookingVideoListRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/LiveBooking/LiveBookingVideoListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /live/booking/video_list/ 接口的响应。</para>\n    /// </summary>\n    public class LiveBookingVideoListResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Booking\n                    {\n                        /// <summary>\n                        /// 获取或设置预约 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"booking_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"booking_id\")]\n                        public string BookingId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置预计开播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_time\")]\n                        public long LiveTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置主播 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_id\")]\n                        public long AnchorId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置额外信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n                        public string? Extra { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置预约列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Booking[] BookingList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxAddRoomTaskV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/add_room_task/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxAddRoomTaskV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n        public int TaskSettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n        public string? PagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间页面标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_title\")]\n        public string? RoomTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置内容标签。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content_tag\")]\n        public string? ContentTag { get; set; }\n\n        /// <summary>\n        /// 获取或设置形态标签。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"form_tag\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"form_tag\")]\n        public string? FormTag { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务图标 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n        public string TaskIconUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n        public long TaskStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n        public long TaskEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n        public string TaskDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置示例视频 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n        public IList<string>? ReferVideoUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n        public IList<string>? ReferMicroAppCaptureUrlList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxAddRoomTaskV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/add_room_task/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxAddRoomTaskV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_url\")]\n                public string TaskUrl { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxAddTaskV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/add_task/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxAddTaskV2Request : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n        public int TaskSettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_type\")]\n        public int? PageType { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n        public string? PagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置锚点标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n        public string? AnchorTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务图标 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n        public string TaskIconUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n        public long TaskStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n        public long TaskEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n        public string TaskDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置示例视频 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n        public IList<string>? ReferVideoUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n        public IList<string> TaskTagList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置小程序截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n        public IList<string>? ReferMicroAppCaptureUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频的 GID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n        public IList<long>? ReferGIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务最大退款周期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_refund_period\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_refund_period\")]\n        public int? TaskRefundPeriod { get; set; }\n\n        /// <summary>\n        /// 获取或设置指定推广达人列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_ids\")]\n        public IList<string>? DouyinIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置混合分成比例字典（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mix_payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mix_payment_allocate_ratio\")]\n        public IDictionary<int, int>? MixPaymentAllocateRatioMap { get; set; }\n\n        /// <summary>\n        /// 获取或设置分成比例（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_allocate_ratio\")]\n        public int? PaymentAllocateRatio { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人混合分成比例字典（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_mix_payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_mix_payment_allocate_ratio\")]\n        public IDictionary<int, int>? TalentMixPaymentAllocateRatioMap { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人分成比例（单位：万分数）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_payment_allocate_ratio\")]\n        public int? TalentPaymentAllocateRatio { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxAddTaskV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/add_task/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxAddTaskV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryAppTaskIdV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_app_task_id/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryAppTaskIdV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置创建时间起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_start_time\")]\n        public long StartCreateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间终止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_end_time\")]\n        public long EndCreateTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryAppTaskIdV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_app_task_id/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryAppTaskIdV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_ids\")]\n                public long[] TaskIdList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryBillLinkV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_bill_link/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryBillLinkV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置计费日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_date\")]\n        public string BillDateString { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryBillLinkV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_bill_link/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryBillLinkV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置账单文件下载链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bill_link\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bill_link\")]\n                public string BillLink { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryTaskInfoV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_task_info/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryTaskInfoV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置查询参数类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_params_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_params_type\")]\n        public int QueryParameterType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询参数内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_params_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_params_content\")]\n        public string QueryParameterContent { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryTaskInfoV2Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_task_info/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryTaskInfoV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Task\n                    {\n                        public static class Types\n                        {\n                            public class OrientedTalent\n                            {\n                                /// <summary>\n                                /// 获取或设置达人抖音号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                                public string DouyinId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置合作状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cooperation_state\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cooperation_state\")]\n                                public int CooperationState { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置取消方类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cancel_operator\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_operator\")]\n                                public int? CancelOperatorType { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long TaskId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务所属小程序。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"appid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n                        public string TaskName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n                        public int TaskSettleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置页面类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_type\")]\n                        public int? PageType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序页面地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n                        public string? PagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置锚点标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n                        public string? AnchorTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n                        public string TaskIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n                        public long TaskStartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n                        public long TaskEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务简介。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n                        public string TaskDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_type\")]\n                        public int TaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int TaskStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置驳回原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置示例视频 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n                        public string[]? ReferVideoUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n                        public string[] TaskTagList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n                        public string[]? ReferMicroAppCaptureUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置示例视频截图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_video_captures\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_video_captures\")]\n                        public string[]? ReferVideoCaptureUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频的 GID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n                        public long[]? ReferGIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置专属达人列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"oriented_talent_rel_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"oriented_talent_rel_list\")]\n                        public Types.OrientedTalent[]? OrientedTalentList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置任务最大退款周期（单位：天）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_refund_period\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_refund_period\")]\n                        public int? TaskRefundPeriod { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置混合分成比例字典（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mix_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mix_payment_allocate_ratio\")]\n                        public IDictionary<int, int>? MixPaymentAllocateRatioMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分成比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_allocate_ratio\")]\n                        public int? PaymentAllocateRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人混合分成比例字典（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_mix_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_mix_payment_allocate_ratio\")]\n                        public IDictionary<int, int>? TalentMixPaymentAllocateRatioMap { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人分成比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_payment_allocate_ratio\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_payment_allocate_ratio\")]\n                        public int? TalentPaymentAllocateRatio { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台小程序版地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_address_app\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_address_app\")]\n                        public string? PlatformMicroAppPagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台 Web 版地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_address_web\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_address_web\")]\n                        public string? PlatformWebUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置任务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tasks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n                public Types.Task[] TaskList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置总页数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_count\")]\n                public int PageCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置推广计划小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryVideoSummaryDataV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_video_sum_data/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryVideoSummaryDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> VideoIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxQueryVideoSummaryDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/query_video_sum_data/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxQueryVideoSummaryDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string VideoId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置团长 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n                public string? AgentId { get; set; }\n\n                /// <summary>\n                /// 获取或设置发布时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_time\")]\n                public long PublishTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务关联的交易金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"billing_gmv_td\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"billing_gmv_td\")]\n                public long BillingGMV { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务关联的交易金额累计退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"biling_refund_gmv_td\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"biling_refund_gmv_td\")]\n                public long BillingRefundGMV { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxUpdateStatusV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/update_status/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxUpdateStatusV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n        public int TaskStatus { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxUpdateStatusV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/update_status/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxUpdateStatusV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data : MatchTaskBoxAddTaskV2Response.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxUpdateTaskV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/update_task/ 接口的请求。</para>\n    /// </summary>\n    public class MatchTaskBoxUpdateTaskV2Request : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n        public int TaskSettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置页面类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_type\")]\n        public int? PageType { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n        public string? PagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置锚点标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n        public string? AnchorTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务图标 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n        public string TaskIconUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n        public long TaskStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n        public long TaskEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n        public string TaskDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置示例视频 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n        public IList<string>? ReferVideoUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n        public IList<string> TaskTagList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置小程序截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n        public IList<string>? ReferMicroAppCaptureUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频的 GID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n        public IList<long>? ReferGIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/MatchTaskBox/MatchTaskBoxUpdateTaskV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/match/v2/taskbox/update_task/ 接口的响应。</para>\n    /// </summary>\n    public class MatchTaskBoxUpdateTaskV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data : MatchTaskBoxAddTaskV2Response.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionAddAppTemplateV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/add_app_tpl/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionAddAppTemplateV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n        public long TemplateId { get; set; }\n\n        /// <summary>\n        /// 获取或设置关键词列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n        public IList<string> KeywordList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionAddAppTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/add_app_tpl/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionAddAppTemplateV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置消息模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n                public string MessageId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionCreateTemplateV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/create_tpl/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionCreateTemplateV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_ids\")]\n        public string CategoryIdString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订阅消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"classification\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"classification\")]\n        public int Classification { get; set; }\n\n        /// <summary>\n        /// 获取或设置模板标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置宿主 App 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_list\")]\n        public IList<string> HostNameList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置关键词列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n        public IList<string> KeywordList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionCreateTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/create_tpl/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionCreateTemplateV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionDeleteAppTemplateV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/delete_app_tpl/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionDeleteAppTemplateV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置消息模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string MessageId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionDeleteAppTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/delete_app_tpl/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionDeleteAppTemplateV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionNotifyUserV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/notify_user/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionNotifyUserV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置消息模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n        public string MessageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置模板内容信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public IDictionary<string, string> Data { get; set; } = new Dictionary<string, string>();\n\n        /// <summary>\n        /// 获取或设置跳转的页面。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public string? PagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionNotifyUserV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/notification/v2/subscription/notify_user/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionNotifyUserV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryAppTemplateV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_app_tpl/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryAppTemplateV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订阅消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Classification { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryIdString { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryAppTemplateV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_app_tpl/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryAppTemplateV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Template : NotificationSubscriptionQueryTemplateListV2Response.Types.Data.Types.Template\n                    {\n                        /// <summary>\n                        /// 获取或设置消息模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"msg_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"msg_id\")]\n                        public string MessageId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_list\")]\n                public Types.Template[] TemplateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryCreatedTemplateListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_created_tpl_list/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryCreatedTemplateListV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryCreatedTemplateListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_created_tpl_list/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryCreatedTemplateListV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Template\n                    {\n                        /// <summary>\n                        /// 获取或设置订阅消息类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"classification\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"classification\")]\n                        public int Classification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置模板标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置宿主 App 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"host_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"host_list\")]\n                        public string[] HostNameList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置关键词列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n                        public string[] KeywordList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置操作时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operating_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operating_time\")]\n                        public long OperatingTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                        public string? FailReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_list\")]\n                public Types.Template[] TemplateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryTemplateListV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_tpl_list/ 接口的请求。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryTemplateListV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订阅消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Classification { get; set; }\n\n        /// <summary>\n        /// 获取或设置模板类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? TemplateType { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryIdString { get; set; }\n\n        /// <summary>\n        /// 获取或设置关键词。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/NotificationSubscription/NotificationSubscriptionQueryTemplateListV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/notification/v2/subscription/query_tpl_list/ 接口的响应。</para>\n    /// </summary>\n    public class NotificationSubscriptionQueryTemplateListV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Template\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                        public long TemplateId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订阅消息类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"classification\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"classification\")]\n                        public int Classification { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                        public string CategoryName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模板标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置宿主 App 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"host_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"host_list\")]\n                        public string[] HostNameList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置关键词列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"keyword_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"keyword_list\")]\n                        public string[] KeywordList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_list\")]\n                public Types.Template[] TemplateList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDataV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置组件配置 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"componentId_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"componentId_list\")]\n        public IList<string>? ComponentIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否查询短视频维度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_query_video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_query_video\")]\n        public bool IsQueryVideo { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否查询直播维度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_query_live\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_query_live\")]\n        public bool IsQueryLive { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ComponentData : PlatformDataAnalysisQueryComponentWithDetailV2Response.Types.Data.Types.VideoData.Types.VideoData.Types.Statistics\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置留资组件数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"DataList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"DataList\")]\n                public Types.ComponentData[] ComponentDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"Total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"Total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDetailV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_detail/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithDetailV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置组件配置 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"componentId_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"componentId_list\")]\n        public IList<string>? ComponentIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否查询短视频维度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_query_video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_query_video\")]\n        public bool IsQueryVideo { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否查询直播维度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_query_live\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_query_live\")]\n        public bool IsQueryLive { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDetailV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_detail/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithDetailV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class VideoData\n                    {\n                        public static class Types\n                        {\n                            public class VideoData\n                            {\n                                public static class Types\n                                {\n                                    public class AnchorInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置抖音号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"AwemeShortID\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"AwemeShortID\")]\n                                        public string AwemeShortId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置账号类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"AccountType\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"AccountType\")]\n                                        public int AccountType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置昵称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"Nickname\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"Nickname\")]\n                                        public string Nickname { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置头像 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"Avat\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"Avat\")]\n                                        public string AvatarUrl { get; set; } = default!;\n                                    }\n\n                                    public class Statistics : PlatformDataAnalysisQueryComponentWithSourceV2Response.Types.Data.Types.ComponentData.Types.Statistics\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置留资组件 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"ComponentId\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentId\")]\n                                        public string ComponentId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置留资组件名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"ComponentName\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentName\")]\n                                        public string ComponentName { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemId\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemId\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemTitle\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemTitle\")]\n                                public string ItemTitle { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频封面 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemCover\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemCover\")]\n                                public string ItemCoverUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频播放 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemAddr\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemAddr\")]\n                                public string ItemPlayerUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频时长（单位：秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemDuration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemDuration\")]\n                                public int ItemDuration { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemCreateTime\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemCreateTime\")]\n                                public long ItemCreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频播放次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemVv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemVv\")]\n                                public int ItemVV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置作者信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ShortInfo\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ShortInfo\")]\n                                public Types.AnchorInfo AnchorInfo { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置统计数据。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"Data\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"Data\")]\n                                public Types.Statistics Statistics { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置短视频留资数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"DataList\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"DataList\")]\n                        public Types.VideoData[] VideoDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置总数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Total\")]\n                        public int TotalCount { get; set; }\n                    }\n\n                    public class LiveData\n                    {\n                        public static class Types\n                        {\n                            public class LiveData\n                            {\n                                public static class Types\n                                {\n                                    public class AnchorInfo : VideoData.Types.VideoData.Types.AnchorInfo\n                                    {\n                                    }\n\n                                    public class Statistics : VideoData.Types.VideoData.Types.Statistics\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置直播间 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomId\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomId\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string LiveRoomId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置直播时长（单位：秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomDuration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomDuration\")]\n                                public int LiveRoomDuration { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置直播创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomCreateTime\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomCreateTime\")]\n                                public long LiveRoomCreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频播放次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ItemVv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ItemVv\")]\n                                public int ItemVV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置主播信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ShortInfo\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ShortInfo\")]\n                                public Types.AnchorInfo AnchorInfo { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置统计数据。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"Data\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"Data\")]\n                                public Types.Statistics Statistics { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置直播留资数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"DataList\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"DataList\")]\n                        public Types.LiveData[] LiveDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置总数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Total\")]\n                        public int TotalCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置短视频数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"VideoData\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"VideoData\")]\n                public Types.VideoData? VideoData { get; set; }\n\n                /// <summary>\n                /// 获取或设置直播数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"LiveData\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"LiveData\")]\n                public Types.LiveData? LiveData { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithOverviewV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_overview/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithOverviewV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置组件配置 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"componentId_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"componentId_list\")]\n        public IList<string>? ComponentIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithOverviewV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_overview/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithOverviewV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ComponentOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置组件点击次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentClickPv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentClickPv\")]\n                        public int ComponentClickPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组件点击人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentClickUv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentClickUv\")]\n                        public int ComponentClickUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组件留资次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentReportPv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentReportPv\")]\n                        public int ComponentReportPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组件留资人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentReportUv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentReportUv\")]\n                        public int ComponentReportUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组件曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentShowPv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentShowPv\")]\n                        public int ComponentShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组件曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ComponentShowUv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ComponentShowUv\")]\n                        public int ComponentShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当日线索数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ClueCnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ClueCnt\")]\n                        public int ClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当日线索用户数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ClueUcnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ClueUcnt\")]\n                        public int ClueUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当日有效线索数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ValidClueCnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ValidClueCnt\")]\n                        public int ValidClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置当日有效线索用户数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ValidClueUcnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ValidClueUcnt\")]\n                        public int ValidClueUserCount { get; set; }\n                    }\n\n                    public class ComponentData : ComponentOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyyMMdd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Date\")]\n                        public string? DateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小时字符串（格式：HH）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Hour\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Hour\")]\n                        public string? HourString { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置组件使用总览数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ComponentOverviewData\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentOverviewData\")]\n                public Types.ComponentOverviewData ComponentOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置组件使用数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ComponentDataInfoList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentDataInfoList\")]\n                public Types.ComponentData[] ComponentDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithSourceV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_source/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithSourceV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置组件配置 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"componentId_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"componentId_list\")]\n        public IList<string>? ComponentIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithSourceV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_component_with_source/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryComponentWithSourceV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ComponentData\n                    {\n                        public static class Types\n                        {\n                            public class Statistics\n                            {\n                                /// <summary>\n                                /// 获取或设置组件点击次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentClickPv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentClickPv\")]\n                                public int ComponentClickPV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组件点击人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentClickUv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentClickUv\")]\n                                public int ComponentClickUV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组件留资次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentReportPv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentReportPv\")]\n                                public int ComponentReportPV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组件留资人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentReportUv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentReportUv\")]\n                                public int ComponentReportUV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组件曝光次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentShowPv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentShowPv\")]\n                                public int ComponentShowPV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组件曝光人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ComponentShowUv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ComponentShowUv\")]\n                                public int ComponentShowUV { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置场景值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Scenes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Scenes\")]\n                        public string Scene { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置场景名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ScenesName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ScenesName\")]\n                        public string SceneName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置统计数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Data\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Data\")]\n                        public Types.Statistics Statistics { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置组件流量来源数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ScenesDataList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ScenesDataList\")]\n                public Types.ComponentData[] ComponentDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Live/PlatformDataAnalysisQueryLiveWithShortIdV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_live_with_short_id/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveWithShortIdV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_short_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_short_id_list\")]\n        public IList<string>? AwemeShortIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Live/PlatformDataAnalysisQueryLiveWithShortIdV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_live_with_short_id/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveWithShortIdV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AnchorData\n                    {\n                        public static class Types\n                        {\n                            public class AnchorInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置抖音号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"AwemeShortID\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"AwemeShortID\")]\n                                public string AwemeShortId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置账号类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"AccountType\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"AccountType\")]\n                                public int AccountType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置昵称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"Nickname\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"Nickname\")]\n                                public string Nickname { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置头像 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"Avat\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"Avat\")]\n                                public string AvatarUrl { get; set; } = default!;\n                            }\n\n                            public class Statistics\n                            {\n                                /// <summary>\n                                /// 获取或设置直播总时长（单位：秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomDuration\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomDuration\")]\n                                public int RoomDuration { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置直播最高在线人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomHighestOnlineCount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomHighestOnlineCount\")]\n                                public int RoomHighestOnlineCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置直播新增粉丝数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomNewFans\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomNewFans\")]\n                                public int RoomNewFansCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置直播场次。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"RoomSessionCnt\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"RoomSessionCnt\")]\n                                public int RoomSessionCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"PayCustomerCnt\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"PayCustomerCnt\")]\n                                public int PayUserCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置支付订单金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"PayOrderAmount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"PayOrderAmount\")]\n                                public long PayOrderAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置客单价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"CustomerOncePrice\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"CustomerOncePrice\")]\n                                public long CustomerOncePrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置单均价（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                                public long OrderOncePrice { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置主播信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ShortInfo\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ShortInfo\")]\n                        public Types.AnchorInfo AnchorInfo { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置统计数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Data\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Data\")]\n                        public Types.Statistics Statistics { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置主播数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ShortDataList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ShortDataList\")]\n                public Types.AnchorData[] AnchorDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"Total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"Total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOrderDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_order_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeOrderDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：0</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 0;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOrderDataV2Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_order_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeOrderDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SmallHomeOrderData\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                        public string AppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_id\")]\n                        public string AnchorId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string AnchorNickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                        public string LiveRoomId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public string OrderStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long DeliverySuccessAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long PayTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long RefundSuccessAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小房子直播间数据字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_data\")]\n                public IDictionary<string, Types.SmallHomeOrderData> SmallHomeRoomDataMap { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_num\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOverviewDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_overview_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeOverviewDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOverviewDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_overview_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeOverviewDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SmallHomeOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                        public string AppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置核销订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int DeliverySuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long DeliverySuccessAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计主播数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_anchors_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_anchors_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveAnchorCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计直播时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计直播场次。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveSessionCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播最高在线人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max_watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max_watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveHighestOnlineUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播累计观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveWatchUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播累计观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"watch_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"watch_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveWatchDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播人均观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"per_watch_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"per_watch_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveOnceWatchDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int RefundSuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long RefundSuccessAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小房子直播总览数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"over_view_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"over_view_data\")]\n                public Types.SmallHomeOverviewData SmallHomeOverviewData { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeRoomDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_room_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeRoomDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeRoomDataV2Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_small_home_room_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySmallHomeRoomDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SmallHomeRoomData\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                        public string AppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_id\")]\n                        public string AnchorId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"nick_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"nick_name\")]\n                        public string AnchorNickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置直播开播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public long StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播下播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long EndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int DeliverySuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long DeliverySuccessAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计主播数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_anchors_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_anchors_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveAnchorCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计直播时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计直播场次。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveSessionCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播最高在线人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max_watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max_watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveHighestOnlineUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播累计观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"watch_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveWatchUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播累计观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"watch_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"watch_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveWatchDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播人均观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"per_watch_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"per_watch_duration\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int LiveOnceWatchDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int RefundSuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long RefundSuccessAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                public string AppName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小房子直播间数据字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"room_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"room_data\")]\n                public IDictionary<string, Types.SmallHomeRoomData> SmallHomeRoomDataMap { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_num\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealDataWithConversionV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_deal_data_with_conversion/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryDealDataWithConversionV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置流量来源渠道列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scenes_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scenes_list\")]\n        public IList<string>? SceneList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealDataWithConversionV2Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_deal_data_with_conversion/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryDealDataWithConversionV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DealData\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"MpShowPv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"MpShowPv\")]\n                        public int MicroAppShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"MpShowUv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"MpShowUv\")]\n                        public int MicroAppShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"MpDrainagePv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"MpDrainagePv\")]\n                        public int MicroAppDrainagePV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"MpDrainageUv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"MpDrainageUv\")]\n                        public int MicroAppDrainageUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"CreateOrderCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"CreateOrderCount\")]\n                        public int CreateOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"CreateUserCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"CreateUserCount\")]\n                        public int CreateUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"PayOrderCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"PayOrderCount\")]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"PayPeopleCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"PayPeopleCount\")]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"RefundOrderCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"RefundOrderCount\")]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_amount\")]\n                        public long RefundOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"RefundPeopleCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"RefundPeopleCount\")]\n                        public int RefundUserCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置流量转化数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"Data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"Data\")]\n                public Types.DealData DealData { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealOverviewDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_deal_overview_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryDealOverviewDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealOverviewDataV2Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_deal_overview_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryDealOverviewDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置创建订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_count\")]\n                        public int CreateOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_amount\")]\n                        public long CreateOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_count\")]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_amount\")]\n                        public long PayOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success_user_cnt\")]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_cnt\")]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_amount\")]\n                        public long RefundOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_cnt\")]\n                        public int RefundSuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_user_cnt\")]\n                        public int RefundSuccessUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_amount\")]\n                        public long RefundSuccessOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置动销商品数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sale_product_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sale_product_cnt\")]\n                        public int SaleProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客单价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_once_price\")]\n                        public long CustomerOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单均价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                        public long OrderOncePrice { get; set; }\n                    }\n\n                    public class DealData : DealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置交易分析总览数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"deal_overview_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"deal_overview_data\")]\n                public Types.DealOverviewData DealOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置交易分析每日数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"deal_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"deal_data_list\")]\n                public Types.DealData[] DealDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveDealDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_deal_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveDealDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long LiveRoomId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveDealDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_deal_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveDealDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class LiveDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置点击次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"click_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"click_count\")]\n                        public int ClickCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"show_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"show_count\")]\n                        public int ShowCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_count\")]\n                        public int CreateOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_user_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_user_count\")]\n                        public int CreateUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_amount\")]\n                        public long CreateOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_count\")]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"success_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"success_user_cnt\")]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_amount\")]\n                        public long PayOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_cnt\")]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_amount\")]\n                        public long RefundOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_cnt\")]\n                        public int RefundSuccessOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_user_cnt\")]\n                        public int RefundSuccessUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_success_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_success_order_amount\")]\n                        public long RefundSuccessOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置动销商品数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sale_product_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sale_product_cnt\")]\n                        public int SaleProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客单价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_once_price\")]\n                        public long CustomerOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单均价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                        public long OrderOncePrice { get; set; }\n                    }\n\n                    public class LiveDealData : LiveDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置直播交易总览数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"deal_overview_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"deal_overview_data\")]\n                public Types.LiveDealOverviewData LiveDealOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置直播交易数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"deal_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"deal_data_list\")]\n                public Types.LiveDealData[] LiveDealDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_room_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveRoomDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long LiveRoomId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_room_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveRoomDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class LiveOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置累计观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cumulative_audience_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cumulative_audience_count\")]\n                        public int CumulativeAudienceCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最高在线人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"online_user_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"online_user_count\")]\n                        public int OnlineUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置人均观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"per_capita_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"per_capita_time\")]\n                        public decimal AudienceTimePerUser { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置新增粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"increased_fans_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"increased_fans_count\")]\n                        public int IncreasedFansCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                        public int CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                        public int ShareTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like_times\")]\n                        public int LikeTimes { get; set; }\n                    }\n\n                    public class LiveData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置累计观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cumulative_audience_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cumulative_audience_count\")]\n                        public int CumulativeAudienceCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                        public int CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                        public int ShareTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like_times\")]\n                        public int LikeTimes { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置直播总览数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_data_overview\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_data_overview\")]\n                public Types.LiveOverviewData LiveOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置直播数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_data_list\")]\n                public Types.LiveData[] LiveDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_room/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveRoomV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置主播昵称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AnchorName { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_live_room/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryLiveRoomV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class LiveRoom\n                    {\n                        /// <summary>\n                        /// 获取或设置主播昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"anchor_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_name\")]\n                        public string AnchorName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_room_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_room_id\")]\n                        public long LiveRoomId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_room_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_room_name\")]\n                        public string LiveRoomName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置当前直播间列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"current_live_room\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"current_live_room\")]\n                public Types.LiveRoom[] CurrentLiveRoomList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置历史直播间列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"history_live_room\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"history_live_room\")]\n                public Types.LiveRoom[] HistoryLiveRoomList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryProductDealDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_product_deal_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryProductDealDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页页数。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryProductDealDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_product_deal_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryProductDealDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductDealData\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                        public string ProductName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_amount\")]\n                        public long PayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品销售量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_product_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_product_cnt\")]\n                        public int PayProductCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_user_cnt\")]\n                        public int PayUserCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品交易分析数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"deal_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"deal_data_list\")]\n                public Types.ProductDealData[] ProductDealDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryVideoDealDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_video_deal_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoDealDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryVideoDealDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_video_deal_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoDealDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class VideoDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置视频播放次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_cnt\")]\n                        public int VideoPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_user_cnt\")]\n                        public int VideoPlayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_vv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_vv\")]\n                        public int ItemVV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_uv\")]\n                        public int ItemUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_pv\")]\n                        public int MicroAppShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_uv\")]\n                        public int MicroAppShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_pv\")]\n                        public int MicroAppClickPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_pv\")]\n                        public int MicroAppDrainagePV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_uv\")]\n                        public int MicroAppDrainageUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置线索数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_cnt\")]\n                        public int ClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置线索人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_ucnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_ucnt\")]\n                        public int ClueUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效线索数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_clue_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_clue_cnt\")]\n                        public int ValidClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效线索人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_clue_ucnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_clue_ucnt\")]\n                        public int ValidClueUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_cnt\")]\n                        public int CreateOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_customer_cnt\")]\n                        public int CreateUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_amount\")]\n                        public long CreateOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_cnt\")]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_customer_cnt\")]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_amount\")]\n                        public long PayOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_cnt\")]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_customer_cnt\")]\n                        public int RefundUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                        public long RefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客单价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_once_price\")]\n                        public long CustomerOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单均价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                        public long OrderOncePrice { get; set; }\n                    }\n\n                    public class VideoDealData : VideoDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置短视频交易分析总览数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_deal_overview_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_deal_overview_data\")]\n                public Types.VideoDealOverviewData VideoDealOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置短视频交易分析每日数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_deal_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_deal_data_list\")]\n                public Types.VideoDealData[] VideoDealDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryBehaviorDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_behavior_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryBehaviorDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作系统。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OS { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryBehaviorDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_behavior_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryBehaviorDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SummaryData\n                    {\n                        /// <summary>\n                        /// 获取或设置活跃用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"active_user_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"active_user_num\")]\n                        public int ActiveUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置新增用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"new_user_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"new_user_num\")]\n                        public int NewUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置累计用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_user_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_user_num\")]\n                        public int TotalUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_time\")]\n                        public int ShareTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置打开次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_time\")]\n                        public int OpenTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置人均打开次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"per_user_open_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"per_user_open_time\")]\n                        public decimal OpenTimesPerUser { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置人均停留时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"per_user_stay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"per_user_stay_time\")]\n                        public decimal StayTimePerUser { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置次均停留时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avg_stay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avg_stay_time\")]\n                        public decimal AverageStayTime { get; set; }\n                    }\n\n                    public class BehaviorData : SummaryData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间格式类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                        public int TimeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行为分析数据汇总信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sum\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sum\")]\n                public Types.SummaryData SummaryData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置行为分析数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"behaviors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"behaviors\")]\n                public Types.BehaviorData[] BehaviorDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryClientDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_client_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryClientDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? UserType { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryClientDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_client_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryClientDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ClientData\n                    {\n                        /// <summary>\n                        /// 获取或设置项目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public int UserCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置客户端版本分布数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_version\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_version\")]\n                public Types.ClientData[] AppVersionDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置基础库版本分布数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"lib_version\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"lib_version\")]\n                public Types.ClientData[] LibraryVersionDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置终端品牌分布数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand\")]\n                public Types.ClientData[] BrandDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置终端机型分布数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"model\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"model\")]\n                public Types.ClientData[] ModelDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryPageDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_page_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryPageDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作系统。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OS { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryPageDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_page_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryPageDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PageData\n                    {\n                        /// <summary>\n                        /// 获取或设置页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                        public string PagePath { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置页面访问人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_uv\")]\n                        public int UV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置页面浏览次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_pv\")]\n                        public int PV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置次均停留时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_avg_stay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_avg_stay_time\")]\n                        public decimal AverageStayTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_share_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_share_time\")]\n                        public int ShareTimes { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置页面分析数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_list\")]\n                public Types.PageData[] PageDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRealTimeUserDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_real_time_user_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryRealTimeUserDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRealTimeUserDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_real_time_user_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryRealTimeUserDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SummaryData\n                    {\n                        /// <summary>\n                        /// 获取或设置活跃用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"active_user_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"active_user_num\")]\n                        public int ActiveUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置打开次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_time\")]\n                        public int OpenTimes { get; set; }\n                    }\n\n                    public class BehaviorData : SummaryData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置行为分析数据汇总信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sum\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sum\")]\n                public Types.SummaryData SummaryData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置行为分析数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"behaviors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"behaviors\")]\n                public Types.BehaviorData[] BehaviorDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRetentionDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_retention_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryRetentionDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? UserType { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作系统。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OS { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRetentionDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_retention_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryRetentionDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class RetentionData\n                    {\n                        public static class Types\n                        {\n                            public class RetentionRate\n                            {\n                                /// <summary>\n                                /// 获取或设置几天后。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"day\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"day\")]\n                                public int Days { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置留存率（范围：0～1）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rate\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rate\")]\n                                public decimal Rate { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活跃用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"active_user_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"active_user_num\")]\n                        public int ActiveUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置留存率列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retention_rate_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retention_rate_list\")]\n                        public Types.RetentionRate[] RetentionRateList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置留存数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"retention_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"retention_data_list\")]\n                public Types.RetentionData[] RetentionDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQuerySceneDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_scene_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySceneDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQuerySceneDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_scene_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQuerySceneDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SceneData\n                    {\n                        public static class Types\n                        {\n                            public class SceneAverageStayTimeData\n                            {\n                                /// <summary>\n                                /// 获取或设置时间格式类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                                public int TimeType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                                public string TimeString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置次均停留时长（单位：毫秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scene_avg_stay_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scene_avg_stay_time\")]\n                                public decimal AverageStayTime { get; set; }\n                            }\n\n                            public class SceneUVData\n                            {\n                                /// <summary>\n                                /// 获取或设置时间格式类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                                public int TimeType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                                public string TimeString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置活跃用户数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scene_uv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scene_uv\")]\n                                public int UV { get; set; }\n                            }\n\n                            public class SceneNewUVData\n                            {\n                                /// <summary>\n                                /// 获取或设置时间格式类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                                public int TimeType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                                public string TimeString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置新增用户数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scene_new_uv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scene_new_uv\")]\n                                public int NewUV { get; set; }\n                            }\n\n                            public class SceneOpenPVData\n                            {\n                                /// <summary>\n                                /// 获取或设置时间格式类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                                public int TimeType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                                public string TimeString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置打开次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scene_open_pv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scene_open_pv\")]\n                                public int OpenPV { get; set; }\n                            }\n\n                            public class ScenePVData\n                            {\n                                /// <summary>\n                                /// 获取或设置时间格式类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time_type\")]\n                                public int TimeType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置时间字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                                public string TimeString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置访问次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scene_pv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scene_pv\")]\n                                public int PV { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置场景值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_id\")]\n                        public string SceneId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置场景名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_name\")]\n                        public string SceneName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置次均停留时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_avg_stay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_avg_stay_time\")]\n                        public decimal AverageStayTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置次均停留时长数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_avg_stay_time_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_avg_stay_time_list\")]\n                        public Types.SceneAverageStayTimeData[] AverageStayTimeDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活跃用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_uv\")]\n                        public int UV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活跃用户数数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_uv_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_uv_list\")]\n                        public Types.SceneUVData[] UVDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置新增用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_new_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_new_uv\")]\n                        public int NewUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置新增用户数数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_new_uv_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_new_uv_list\")]\n                        public Types.SceneNewUVData[] NewUVDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置打开次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_open_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_open_pv\")]\n                        public int OpenPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置打开次数数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_open_pv_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_open_pv_list\")]\n                        public Types.SceneOpenPVData[] OpenPVDataList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置访问次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_pv\")]\n                        public int PV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置访问次数数据列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_pv_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_pv_list\")]\n                        public Types.ScenePVData[] PVDataList { get; set; } = default!;\n\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置来源数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene_list\")]\n                public Types.SceneData[] SceneDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryUserPortraitDataV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_user_portrait_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryUserPortraitDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? UserType { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置版本类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VersionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/User/PlatformDataAnalysisQueryUserPortraitDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/platform/v2/data_analysis/query_user_portrait_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryUserPortraitDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class UserPortraitData\n                    {\n                        /// <summary>\n                        /// 获取或设置项目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public int UserCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置总用户数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_user\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_user\")]\n                public int TotalUserCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户省份画像数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public Types.UserPortraitData[] ProvinceUserPortraitDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户城市画像数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public Types.UserPortraitData[] CityUserPortraitDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户性别画像数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"gender\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n                public Types.UserPortraitData[] GenderUserPortraitDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户年龄画像数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"age\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"age\")]\n                public Types.UserPortraitData[] AgeUserPortraitDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveDataWithIdV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_short_live_data_with_id/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryShortLiveDataWithIdV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询数据的挂载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_bind_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_bind_type\")]\n        public int QueryBindType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询数据的列表类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_data_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_data_type\")]\n        public int QueryDataType { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_short_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_short_id_list\")]\n        public IList<string>? AwemeShortIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id_list\")]\n        public IList<string>? ItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置加密的视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_item_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_item_id_list\")]\n        public IList<string>? OpenItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置直播间 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"room_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"room_id_list\")]\n        public IList<string>? LiveRoomIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_no\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveDataWithIdV2Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_short_live_data_with_id/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryShortLiveDataWithIdV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ShortLiveData\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        public string? ItemId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置加密的视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_item_id_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_item_id_list\")]\n                        public string? OpenItemId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_title\")]\n                        public string? ItemTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_cover\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_cover\")]\n                        public string? ItemCoverUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_addr\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_addr\")]\n                        public string? ItemPlayerUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频作者的抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_aweme_shortid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_aweme_shortid\")]\n                        public string? ItemAwemeShortId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频作者的类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_aweme_type\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_aweme_type\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemAwemeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频作者的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_aweme_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_aweme_name\")]\n                        public string? ItemAwemeNickname { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频作者的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_aweme_avatar\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_aweme_avatar\")]\n                        public string? ItemAwemeAvatarUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_duration\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_duration\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long? ItemCreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频完播次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_last_frame_watch_cnt\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_last_frame_watch_cnt\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemLastFrameWatchCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频完播率字符串（格式：d%）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_completion_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_completion_rate\")]\n                        public string? ItemCompletionRateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频评论次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_comment_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_comment_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemCommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_like_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_like_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemLikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_share_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_share_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemShareCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_vv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_vv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemVV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? ItemUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_id\")]\n                        public string? LiveRoomId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间作者的抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_aweme_shortid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_aweme_shortid\")]\n                        public string? LiveRoomAwemeShortId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间作者的类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_aweme_type\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_aweme_type\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomAwemeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间作者的昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_aweme_nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_aweme_nickname\")]\n                        public string? LiveRoomAwemeNickname { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间作者的头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_aweme_avt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_aweme_avt\")]\n                        public string? LiveRoomAwemeAvatarUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间开播时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_duration\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_duration\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间开播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long? LiveRoomCreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间关播时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_finish_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_finish_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long? LiveRoomFinishTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间最高在线人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_highest_online_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_highest_online_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomHighestOnlineUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间人均观看时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_once_watch_duration\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_once_watch_duration\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomOnceWatchDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间评论次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_comment_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_comment_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomCommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间评论人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_comment_user_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_comment_user_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomCommentUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_like_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_like_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomLikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间点赞人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_like_user_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_like_user_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomLikeUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_share_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_share_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomShareCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间分享人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_share_user_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_share_user_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomShareUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_pv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_pv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_pv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_pv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppClickPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppClickUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击率字符串（格式：d%）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_rate\")]\n                        public string? MicroAppClickRateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_pv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_pv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppDrainagePV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int MicroAppDrainageUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_show_pv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_show_pv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_show_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_show_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间观看次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_watch_pv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_watch_pv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomWatchPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间观看人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_watch_uv\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_watch_uv\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? LiveRoomWatchUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间看播率字符串（格式：d%）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_watch_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_watch_rate\")]\n                        public string? LiveRoomWatchRateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间互动率字符串（格式：d%）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_interactive_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_interactive_rate\")]\n                        public string? LiveRoomInteractiveRateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_cnt\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_customer_cnt\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_amount\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long PayOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_cnt\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_customer_cnt\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int RefundUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long RefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客单价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_once_price\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_once_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long CustomerOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单均价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long OrderOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播间 UV 价值（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_uv_price\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_uv_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public long? LiveRoomUVPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 BC 账号绑定关系。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bc_relation_bind_type\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bc_relation_bind_type\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? BCRelationBindType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开播平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_type\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_type\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int? AppType { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置短视频或直播间数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_list\")]\n                public Types.ShortLiveData[]? ShortLiveDataList { get; set; }\n\n                /// <summary>\n                /// 获取或设置短视频或直播间每日数据字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"detail_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"detail_data\")]\n                public IDictionary<long, Types.ShortLiveData>? ShortLiveDailyDataMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sum\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sum\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_short_live_id_with_awemeid/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询数据的挂载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_bind_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_bind_type\")]\n        public int QueryBindType { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询数据的列表类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_data_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_data_type\")]\n        public int? QueryDataType { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_short_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_short_id_list\")]\n        public IList<string> AwemeShortIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Response.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_short_live_id_with_awemeid/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class OverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置播放视频数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_watched_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_watched_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? ItemWatchedCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频投稿数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_contribute_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_contribute_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? ItemContributeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开播场次。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_session_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? RoomSessionCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开播天数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"room_broadcast_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"room_broadcast_cnt\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int? RoomBroadcastCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置总览信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"over_view_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"over_view_data\")]\n                public Types.OverviewData OverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置抖音号发布的短视频 ID 列表字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_data\")]\n                public IDictionary<string, string[]>? ItemIdListMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖音号发布的直播间 ID 列表字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_data\")]\n                public IDictionary<string, string[]>? LiveRoomIdListMap { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoDataV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_video_data/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoDataV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询数据的挂载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_bind_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_bind_type\")]\n        public int QueryBindType { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_short_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_short_id_list\")]\n        public IList<string>? AwemeShortIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_id_list\")]\n        public IList<string>? ItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置加密的视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_item_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_item_id_list\")]\n        public IList<string>? OpenItemIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoDataV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_video_data/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoDataV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class VideoDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置视频播放次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_cnt\")]\n                        public int VideoPlayCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_user_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_user_cnt\")]\n                        public int VideoPlayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_pv\")]\n                        public int MicroAppShowPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序曝光人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_show_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_show_uv\")]\n                        public int MicroAppShowUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_pv\")]\n                        public int MicroAppClickPV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置小程序点击人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_click_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_click_uv\")]\n                        public int MicroAppClickUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_pv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_pv\")]\n                        public int MicroAppDrainagePV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置进入小程序人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"mp_drainage_uv\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"mp_drainage_uv\")]\n                        public int MicroAppDrainageUV { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置线索数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_cnt\")]\n                        public int ClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效线索数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_clue_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_clue_cnt\")]\n                        public int ValidClueCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_cnt\")]\n                        public int CreateOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_customer_cnt\")]\n                        public int CreateUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建订单金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_order_amount\")]\n                        public long CreateOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_cnt\")]\n                        public int PayOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_customer_cnt\")]\n                        public int PayUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_amount\")]\n                        public long PayOrderAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款订单数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_order_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_order_cnt\")]\n                        public int RefundOrderCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款人数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_customer_cnt\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_customer_cnt\")]\n                        public int RefundUserCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                        public long RefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客单价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_once_price\")]\n                        public long CustomerOncePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单均价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_once_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_once_price\")]\n                        public long OrderOncePrice { get; set; }\n                    }\n\n                    public class VideoDealData : VideoDealOverviewData\n                    {\n                        /// <summary>\n                        /// 获取或设置时间字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"time\")]\n                        public string TimeString { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置短视频总览数据信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_deal_overview_data\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_deal_overview_data\")]\n                public Types.VideoDealOverviewData VideoDealOverviewData { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置短视频每日数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_deal_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_deal_data_list\")]\n                public Types.VideoDealData[] VideoDealDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoWithSourceV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_video_with_source/ 接口的请求。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoWithSourceV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public long StartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"host_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"host_name\")]\n        public string? HostName { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_short_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_short_id_list\")]\n        public IList<string>? AwemeShortIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoWithSourceV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/platform/v2/data_analysis/query_video_with_source/ 接口的响应。</para>\n    /// </summary>\n    public class PlatformDataAnalysisQueryVideoWithSourceV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class VideoData\n                    {\n                        public static class Types\n                        {\n                            public class CommonData\n                            {\n                                /// <summary>\n                                /// 获取或设置小程序曝光次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"MpShowPv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"MpShowPv\")]\n                                public int MicroAppShowPV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置小程序曝光人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"MpShowUv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"MpShowUv\")]\n                                public int MicroAppShowUV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置进入小程序次数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"MpDrainagePv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"MpDrainagePv\")]\n                                public int MicroAppDrainagePV { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置进入小程序人数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"MpDrainageUv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"MpDrainageUv\")]\n                                public int MicroAppDrainageUV { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置场景值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"Scenes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"Scenes\")]\n                        public string Scene { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置场景名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ScenesName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ScenesName\")]\n                        public string SceneName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置统计数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"CommonData\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"CommonData\")]\n                        public Types.CommonData CommonData { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频播放次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"VideoPlayCount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"VideoPlayCount\")]\n                        public int VideoPlayCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置短视频流量来源数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"DataList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"DataList\")]\n                public Types.VideoData[] VideoDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionAddV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_add/ 接口的请求。</para>\n    /// </summary>\n    public class ProductAppRegionAddV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置城市绑定归属维度。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bind_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bind_type\")]\n        public int BindType { get; set; }\n\n        /// <summary>\n        /// 获取或设置关联地区编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_id\")]\n        public string RegionId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? PagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionAddV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_add/ 接口的响应。</para>\n    /// </summary>\n    public class ProductAppRegionAddV1Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置绑定数据的唯一记录 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data_id\")]\n        public string DataId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionDeleteV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_delete/ 接口的请求。</para>\n    /// </summary>\n    public class ProductAppRegionDeleteV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置关联地区编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_id\")]\n        public string RegionId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? PagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionDeleteV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_delete/ 接口的响应。</para>\n    /// </summary>\n    public class ProductAppRegionDeleteV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionModifyV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_modify/ 接口的请求。</para>\n    /// </summary>\n    public class ProductAppRegionModifyV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置原关联地区编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin_region\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin_region\")]\n        public string OriginRegionId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置新关联地区编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"current_region\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"current_region\")]\n        public string CurrentRegionId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置页面路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? PagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Product/Region/ProductAppRegionModifyV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/product/v1/app_region_modify/ 接口的响应。</para>\n    /// </summary>\n    public class ProductAppRegionModifyV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityAddSelfTestAccountsV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/add_self_test_accounts/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityAddSelfTestAccountsV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置测试账号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"test_accounts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"test_accounts\")]\n        public IList<string> TestAccountList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityAddSelfTestAccountsV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/add_self_test_accounts/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityAddSelfTestAccountsV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityBindUserToSidebarActivityV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/bind_user_to_sidebar_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityBindUserToSidebarActivityV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityBindUserToSidebarActivityV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/bind_user_to_sidebar_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityBindUserToSidebarActivityV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityCreatePromotionActivityV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/create_promotion_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityCreatePromotionActivityV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Activity\n            {\n                public static class Types\n                {\n                    public class LiveActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置用户领券玩法。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_task_type\")]\n                        public int? CouponTaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置线索组件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_component_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_component_id\")]\n                        public string? ClueComponentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n                    }\n\n                    public class IMActivity\n                    {\n                        public static class Types\n                        {\n                            public class ShareFissionConfig\n                            {\n                                /// <summary>\n                                /// 获取或设置奖励类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_type\")]\n                                public int AwardType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置奖励券的模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_coupon_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_coupon_id\")]\n                                public long? AwardCouponId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置奖励券的数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_coupon_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_coupon_num\")]\n                                public long? AwardCouponNumber { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户领券玩法。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_task_type\")]\n                        public int? CouponTaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享裂变配置信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_fission_config\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_fission_config\")]\n                        public Types.ShareFissionConfig? ShareFissionConfig { get; set; }\n                    }\n\n                    public class SidebarActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置引流方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"action_trigger\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"action_trigger\")]\n                        public int? ActionTrigger { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高价值区展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"high_value_content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"high_value_content\")]\n                        public string? HighValueContent { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置跳转按钮展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"jump_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"jump_text\")]\n                        public string? JumpText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近使用区小程序右上角气泡展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recent_bubble_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recent_bubble_text\")]\n                        public string? RecentBubbleText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置短标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_title\")]\n                        public string? ShortTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置完成次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"complete_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"complete_times\")]\n                        public int? CompleteTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否绑定用户。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"need_bind\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"need_bind\")]\n                        public bool? RequireBind { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n                public string ActivityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置用户领取次数限制。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_limit\")]\n                public int ReceiveLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置发放场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"send_scene\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"send_scene\")]\n                public int SendScene { get; set; }\n\n                /// <summary>\n                /// 获取或设置直播间发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_activity\")]\n                public Types.LiveActivity? LiveActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置 IM 私域发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"im_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"im_activity\")]\n                public Types.IMActivity? IMActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置复访发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sidebar_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sidebar_activity\")]\n                public Types.SidebarActivity? SidebarActivity { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置活动信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_activity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_activity\")]\n        public Types.Activity Activity { get; set; } = new Types.Activity();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityCreatePromotionActivityV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/create_promotion_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityCreatePromotionActivityV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                public string ActivityId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityModifyPromotionActivityV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/modify_promotion_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityModifyPromotionActivityV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Activity\n            {\n                public static class Types\n                {\n                    public class LiveActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置线索组件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_component_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_component_id\")]\n                        public string? ClueComponentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n                    }\n\n                    public class IMActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long? ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long? ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n                    }\n\n                    public class SidebarActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long? ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long? ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高价值区展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"high_value_content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"high_value_content\")]\n                        public string? HighValueContent { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置跳转按钮展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"jump_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"jump_text\")]\n                        public string? JumpText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近使用区小程序右上角气泡展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recent_bubble_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recent_bubble_text\")]\n                        public string? RecentBubbleText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置短标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_title\")]\n                        public string? ShortTitle { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                public string ActivityId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置活动名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n                public string? ActivityName { get; set; }\n\n                /// <summary>\n                /// 获取或设置直播间发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_activity\")]\n                public Types.LiveActivity? LiveActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置 IM 私域发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"im_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"im_activity\")]\n                public Types.IMActivity? IMActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置复访发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sidebar_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sidebar_activity\")]\n                public Types.SidebarActivity? SidebarActivity { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置活动信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_activity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_activity\")]\n        public Types.Activity Activity { get; set; } = new Types.Activity();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityModifyPromotionActivityV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/modify_promotion_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityModifyPromotionActivityV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityQueryBindedUserV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/query_binded_user/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityQueryBindedUserV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityQueryBindedUserV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/query_binded_user/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityQueryBindedUserV2Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置是否已圈选。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_binded\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_binded\")]\n        public bool IsBinded { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityQueryPromotionActivityV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/query_promotion_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityQueryPromotionActivityV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityQueryPromotionActivityV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/query_promotion_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityQueryPromotionActivityV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Activity\n            {\n                public static class Types\n                {\n                    public class LiveActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置用户领券玩法。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_task_type\")]\n                        public int CouponTaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置线索组件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"clue_component_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"clue_component_id\")]\n                        public string? ClueComponentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n                    }\n\n                    public class IMActivity\n                    {\n                        public static class Types\n                        {\n                            public class ShareFissionConfig\n                            {\n                                /// <summary>\n                                /// 获取或设置奖励类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_type\")]\n                                public int AwardType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置奖励券的模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_coupon_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_coupon_id\")]\n                                public long? AwardCouponId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置奖励券的名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_coupon_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_coupon_name\")]\n                                public string? AwardCouponName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置奖励券的数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"award_coupon_num\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"award_coupon_num\")]\n                                public long? AwardCouponNumber { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户领券玩法。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_task_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_task_type\")]\n                        public int CouponTaskType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notice_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notice_text\")]\n                        public string? NoticeText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享裂变配置信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_fission_config\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_fission_config\")]\n                        public Types.ShareFissionConfig? ShareFissionConfig { get; set; }\n                    }\n\n                    public class SidebarActivity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动生效开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动生效结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置引流方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"action_trigger\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"action_trigger\")]\n                        public int? ActionTrigger { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高价值区展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"high_value_content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"high_value_content\")]\n                        public string? HighValueContent { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置跳转按钮展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"jump_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"jump_text\")]\n                        public string? JumpText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最近使用区小程序右上角气泡展示的内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recent_bubble_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recent_bubble_text\")]\n                        public string? RecentBubbleText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置短标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"short_title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"short_title\")]\n                        public string? ShortTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置完成次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"complete_times\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"complete_times\")]\n                        public int? CompleteTimes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否绑定用户。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"need_bind\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"need_bind\")]\n                        public bool? RequireBind { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n                public string ActivityName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户领取次数限制。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_limit\")]\n                public int ReceiveLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置发放场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"send_scene\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"send_scene\")]\n                public int SendScene { get; set; }\n\n                /// <summary>\n                /// 获取或设置直播间发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"live_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"live_activity\")]\n                public Types.LiveActivity? LiveActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置 IM 私域发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"im_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"im_activity\")]\n                public Types.IMActivity? IMActivity { get; set; }\n\n                /// <summary>\n                /// 获取或设置复访发放场景信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sidebar_activity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sidebar_activity\")]\n                public Types.SidebarActivity? SidebarActivity { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置活动信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_activity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_activity\")]\n        public Types.Activity Activity { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityUpdatePromotionActivityStatusV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/update_promotion_activity_status/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityUpdatePromotionActivityStatusV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n\n        /// <summary>\n        /// 获取或设置业务类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_type\")]\n        public int? BusinessType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityUpdatePromotionActivityStatusV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/update_promotion_activity_status/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityUpdatePromotionActivityStatusV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityUploadPopupScreenshotV2Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/upload_popup_screenshot/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionActivityUploadPopupScreenshotV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置弹窗类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PopupType { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Activity/PromotionActivityUploadPopupScreenshotV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/activity/upload_popup_screenshot/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionActivityUploadPopupScreenshotV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/DeveloperActivity/PromotionCouponCreateDeveloperActivityV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/create_developer_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponCreateDeveloperActivityV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商家活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_activity_id\")]\n        public string MerchantActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n        public string ActivityName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置计划库存数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_stock_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_stock_number\")]\n        public int CouponStockNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/DeveloperActivity/PromotionCouponCreateDeveloperActivityV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/create_developer_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponCreateDeveloperActivityV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                public string ActivityId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/DeveloperActivity/PromotionCouponDeleteDeveloperActivityV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/delete_developer_activity/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponDeleteDeveloperActivityV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/DeveloperActivity/PromotionCouponDeleteDeveloperActivityV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/delete_developer_activity/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponDeleteDeveloperActivityV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponBatchConsumeCouponV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/batch_consume_coupon/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponBatchConsumeCouponV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者核销单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consume_out_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consume_out_no\")]\n        public string OutConsumeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id_list\")]\n        public IList<string> CouponIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置核销时间戳。如果不指定将使用当前时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consume_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consume_time\")]\n        public long? ConsumeTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponBatchConsumeCouponV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/batch_consume_coupon/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponBatchConsumeCouponV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n                        public string CouponId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_no\")]\n                        public int ErrorNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"err_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"err_msg\")]\n                        public string? ErrorMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponBatchRollbackConsumeCouponV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/batch_rollback_consume_coupon/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponBatchRollbackConsumeCouponV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者核销单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"consume_out_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"consume_out_no\")]\n        public string OutConsumeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者撤销核销单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rollback_consume_out_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rollback_consume_out_no\")]\n        public string OutRollbackConsumeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id_list\")]\n        public IList<string> CouponIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置撤销核销时间戳。如果不指定将使用当前时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"rollback_consume_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"rollback_consume_time\")]\n        public long? RollbackConsumeTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponBatchRollbackConsumeCouponV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/batch_rollback_consume_coupon/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponBatchRollbackConsumeCouponV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result : PromotionCouponBatchConsumeCouponV1Response.Types.Data.Types.Result\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetBillDownloadUrlV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_bill_download_url/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponGetBillDownloadUrlV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_date\")]\n        public string BillDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_type\")]\n        public string BillType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetBillDownloadUrlV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_bill_download_url/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponGetBillDownloadUrlV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置账单下载链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bill_download_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bill_download_url\")]\n                public string BillDownloadUrl { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetCouponReceiveInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_coupon_receive_info/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponGetCouponReceiveInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n        public string? CouponId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_status\")]\n        public int? CouponStatus { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetCouponReceiveInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_coupon_receive_info/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponGetCouponReceiveInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Coupon\n                    {\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n                        public string CouponId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                        public string CouponName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_status\")]\n                        public int CouponStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置领券时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_time\")]\n                        public long ReceiveTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家券模板编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_meta_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_meta_no\")]\n                        public string MerchantMetaNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券有效期开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券有效期结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放券的主播的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_open_id\")]\n                        public string? TalentOpenId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发放券的主播的抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n                        public string? TalentAccount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n                        public int DiscountType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int? DiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置满减门槛金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min_pay_amount\")]\n                        public int? MinPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置去使用券的小程序落地页页面路径。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consume_path\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consume_path\")]\n                        public string? ConsumePagePath { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置领取须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_desc\")]\n                        public string? ReceiveDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consume_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consume_desc\")]\n                        public string? ConsumeDescription { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_receive_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_receive_list\")]\n                public Types.Coupon[] CouponList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetTalentCouponV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_talent_coupon/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponGetTalentCouponV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账号类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n        public int AccountType { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? TalentOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n        public string? TalentAccount { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponGetTalentCouponV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_talent_coupon/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponGetTalentCouponV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置账号类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n                public int AccountType { get; set; }\n\n                /// <summary>\n                /// 获取或设置主播的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string? TalentOpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置主播抖音号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n                public string? TalentAccount { get; set; }\n\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置发券状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存发放上限。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_limit\")]\n                public long StockLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置奖励券的数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"award_assigned_num\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"award_assigned_num\")]\n                public long? AwardAssignedNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置发放场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"send_scene\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"send_scene\")]\n                public int? SendScene { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponSendCouponToDesignatedUserV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/send_coupon_to_designated_user/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponSendCouponToDesignatedUserV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置接口发券幂等键。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_coupon_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_coupon_id\")]\n        public string? MerchantCouponId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponSendCouponToDesignatedUserV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/send_coupon_to_designated_user/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponSendCouponToDesignatedUserV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Coupon\n                    {\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_id\")]\n                        public string CouponId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                        public string CouponName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_status\")]\n                        public int CouponStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n                        public int DiscountType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int? DiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置满减门槛金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min_pay_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min_pay_amount\")]\n                        public int? MinPayAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家券模板编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_meta_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_meta_no\")]\n                        public string MerchantMetaNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置使用有效期开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                        public long ValidBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用有效期结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long ValidEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置领取时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_time\")]\n                        public long ReceiveTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置券信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_info\")]\n                public Types.Coupon Coupon { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponSetTalentCouponV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/set_talent_coupon/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponSetTalentCouponV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账号类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n        public int AccountType { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? TalentOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n        public string? TalentAccount { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置库存发放上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"stock_limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"stock_limit\")]\n        public long StockLimit { get; set; }\n\n        /// <summary>\n        /// 获取或设置奖励券的库存上限。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"award_stock_limit\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"award_stock_limit\")]\n        public long AwardStockLimit { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponSetTalentCouponV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/set_talent_coupon/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponSetTalentCouponV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponUpdateTalentCouponStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_talent_coupon_status/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponUpdateTalentCouponStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账号类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n        public int AccountType { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? TalentOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n        public string? TalentAccount { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发券状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponUpdateTalentCouponStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_talent_coupon_status/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponUpdateTalentCouponStatusV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponUpdateTalentCouponStockV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_talent_coupon_stock/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponUpdateTalentCouponStockV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账号类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_type\")]\n        public int AccountType { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string? TalentOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n        public string? TalentAccount { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置请求幂等唯一键。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"unique_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"unique_key\")]\n        public string UniqueKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置增减动作。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置增减数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"number\")]\n        public long Number { get; set; }\n\n        /// <summary>\n        /// 获取或设置奖励券的数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"award_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"award_number\")]\n        public long? AwardNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/Coupon/PromotionCouponUpdateTalentCouponStockV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_talent_coupon_stock/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponUpdateTalentCouponStockV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponCreateCouponMetaV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/create_coupon_meta/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponCreateCouponMetaV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class CouponMeta\n            {\n                /// <summary>\n                /// 获取或设置券名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                public string CouponName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置使用须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_desc\")]\n                public string ConsumeDescription { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置使用链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_path\")]\n                public string ConsumePagePath { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商家券模板编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_meta_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_meta_no\")]\n                public string MerchantMetaNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置优惠类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n                public int DiscountType { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_begin_time\")]\n                public long ReceiveBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_end_time\")]\n                public long ReceiveEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置领取须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_desc\")]\n                public string? ReceiveDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置最大库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_number\")]\n                public long StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_type\")]\n                public int ValidType { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                public long? ValidBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                public long? ValidEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效时长（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_duration\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_duration\")]\n                public int? ValidDuration { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n                public string? CallbackUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置优惠金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                public int? DiscountAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置满减门槛金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"min_pay_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"min_pay_amount\")]\n                public int? MinPayAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置关联内容类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"related_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"related_type\")]\n                public int? RelatedType { get; set; }\n\n                /// <summary>\n                /// 获取或设置关联内容 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n                public string? RelatedOriginId { get; set; }\n\n                /// <summary>\n                /// 获取或设置密钥类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"secret_source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"secret_source\")]\n                public int? SecretSource { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置券模板信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta\")]\n        public Types.CouponMeta CouponMeta { get; set; } = new Types.CouponMeta();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponCreateCouponMetaV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/create_coupon_meta/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponCreateCouponMetaV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponDeleteCouponMetaV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/delete_coupon_meta 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponDeleteCouponMetaV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。与字段 <see cref=\"MerchantMetaNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string? CouponMetaId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家券模板编号。与字段 <see cref=\"CouponMetaId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_meta_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_meta_no\")]\n        public string? MerchantMetaNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponDeleteCouponMetaV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/delete_coupon_meta 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponDeleteCouponMetaV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponGetCouponMetaStatisticsV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_coupon_meta_statistics 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponGetCouponMetaStatisticsV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string? ActivityId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_open_id\")]\n        public string? TalentOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主播抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n        public string? TalentAccount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponGetCouponMetaStatisticsV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/get_coupon_meta_statistics 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponGetCouponMetaStatisticsV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ActivityData\n                    {\n                        /// <summary>\n                        /// 获取或设置活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                        public string ActivityId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置领取数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consumed_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consumed_num\")]\n                        public long ConsumedNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"received_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"received_num\")]\n                        public long ReceivedNumber { get; set; }\n                    }\n\n                    public class TalentData\n                    {\n                        /// <summary>\n                        /// 获取或设置主播的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_open_id\")]\n                        public string TalentOpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置主播抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"talent_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"talent_account\")]\n                        public string TalentAccount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置曝光数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exposed_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exposed_num\")]\n                        public long ExposedNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置领取数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consumed_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consumed_num\")]\n                        public long ConsumedNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"received_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"received_num\")]\n                        public long ReceivedNumber { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动发券统计数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_stats\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_stats\")]\n                public Types.ActivityData[] ActivityDataList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置主播发券统计数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"talent_stats\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"talent_stats\")]\n                public Types.TalentData[] TalentDataList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponModifyCouponMetaV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/modify_coupon_meta/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponModifyCouponMetaV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class CouponMeta\n            {\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置券名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                public string? CouponName { get; set; }\n\n                /// <summary>\n                /// 获取或设置使用须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_desc\")]\n                public string? ConsumeDescription { get; set; } \n\n                /// <summary>\n                /// 获取或设置使用链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_path\")]\n                public string? ConsumePagePath { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_begin_time\")]\n                public long? ReceiveBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_end_time\")]\n                public long? ReceiveEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置领取须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_desc\")]\n                public string? ReceiveDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_type\")]\n                public int? ValidType { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                public long? ValidBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                public long? ValidEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效时长（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_duration\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_duration\")]\n                public int? ValidDuration { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置券模板信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta\")]\n        public Types.CouponMeta CouponMeta { get; set; } = new Types.CouponMeta();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponModifyCouponMetaV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/modify_coupon_meta/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponModifyCouponMetaV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponQueryActivityMetaDataV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/query_activity_meta_data/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponQueryActivityMetaDataV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public int ActivityStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置发放场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"send_scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"send_scene\")]\n        public int SendScene { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string? CouponMetaId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n        public string? CouponName { get; set; }\n\n        /// <summary>\n        /// 获取或设置优惠类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n        public int? DiscountType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_num\")]\n        public int PageNumber { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponQueryActivityMetaDataV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/query_activity_meta_data/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponQueryActivityMetaDataV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Activity\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n                        public string AppName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_icon\")]\n                        public string AppIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                        public string ActivityId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_name\")]\n                        public string ActivityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用须知。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consume_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consume_desc\")]\n                        public string? ConsumeDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用时间说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"consume_time_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"consume_time_desc\")]\n                        public string? ConsumeTimeDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置券模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                        public string CouponMetaId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_meta_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_name\")]\n                        public string CouponName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券图标 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"coupon_icon\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_icon\")]\n                        public string CouponIconUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优惠类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n                        public int DiscountType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠类型名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_type_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_type_name\")]\n                        public string DiscountTypeName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置可领取开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_begin_time\")]\n                        public long ReceiveBeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置可领取结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"receive_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"receive_end_time\")]\n                        public long ReceiveEndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置剩余库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remain_stock\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remain_stock\")]\n                        public long RemainStock { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总库存。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_stock\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_stock\")]\n                        public long TotalStock { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int DiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否支持分享裂变。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"support_share_fission\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"support_share_fission\")]\n                        public bool IsSupportShareFission { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享裂变说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_fission_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_fission_desc\")]\n                        public string? ShareFissionDescription { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_list\")]\n                public Types.Activity[] ActivityList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponQueryCouponMetaV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/query_coupon_meta/ 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponQueryCouponMetaV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponQueryCouponMetaV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v2/coupon/query_coupon_meta/ 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponQueryCouponMetaV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class CouponMeta\n            {\n                /// <summary>\n                /// 获取或设置券模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n                public string CouponMetaId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon_name\")]\n                public string CouponName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置使用须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_desc\")]\n                public string ConsumeDescription { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置使用链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"consume_path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"consume_path\")]\n                public string ConsumePagePath { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商家券模板编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_meta_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_meta_no\")]\n                public string MerchantMetaNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置券模板状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置优惠类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_type\")]\n                public int DiscountType { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_begin_time\")]\n                public long ReceiveBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置可领取结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_end_time\")]\n                public long ReceiveEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置领取须知。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"receive_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"receive_desc\")]\n                public string? ReceiveDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置最大库存。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stock_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stock_number\")]\n                public long StockNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_type\")]\n                public int ValidType { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_begin_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_begin_time\")]\n                public long? ValidBeginTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                public long? ValidEndTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效时长（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_duration\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_duration\")]\n                public int? ValidDuration { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n                public string? CallbackUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置优惠金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                public int? DiscountAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置满减门槛金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"min_pay_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"min_pay_amount\")]\n                public int? MinPayAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置关联内容类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"related_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"related_type\")]\n                public int? RelatedType { get; set; }\n\n                /// <summary>\n                /// 获取或设置关联内容 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n                public string? RelatedOriginId { get; set; }\n\n                /// <summary>\n                /// 获取或设置密钥类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"secret_source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"secret_source\")]\n                public int SecretSource { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置券模板信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta\")]\n        public Types.CouponMeta CouponMeta { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_coupon_meta_status 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponUpdateCouponMetaStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券模板状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_status\")]\n        public int Status { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_coupon_meta_status 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponUpdateCouponMetaStatusV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStockV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_coupon_meta_stock 接口的请求。</para>\n    /// </summary>\n    public class PromotionCouponUpdateCouponMetaStockV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置券模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"coupon_meta_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"coupon_meta_id\")]\n        public string CouponMetaId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置请求幂等唯一键。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"unique_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"unique_key\")]\n        public string UniqueKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置增减动作。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n        public string Action { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置增减数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"number\")]\n        public long Number { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStockV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/promotion/v1/coupon/update_coupon_meta_stock 接口的响应。</para>\n    /// </summary>\n    public class PromotionCouponUpdateCouponMetaStockV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCancelAuthOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/cancel_auth_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCancelAuthOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置信用单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCancelAuthOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/cancel_auth_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCancelAuthOrderV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCreateAuthOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_auth_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateAuthOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置准入 Token。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"admissible_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"admissible_token\")]\n        public string AdmissibleToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者信用单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_auth_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_auth_order_no\")]\n        public string OutAuthOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回调通知 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCreateAuthOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_auth_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateAuthOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置信用单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n                public string AuthOrderId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperFinishAuthOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/finish_auth_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperFinishAuthOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置信用单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperFinishAuthOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/finish_auth_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperFinishAuthOrderV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAdmissibleAuthV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_admissible_auth/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryAdmissibleAuthV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置免押场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene\")]\n        public int Scene { get; set; }\n\n        /// <summary>\n        /// 获取或设置信用模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n        public string ServiceId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置押金金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置收款商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAdmissibleAuthV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_admissible_auth/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryAdmissibleAuthV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置准入性。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"admissibility\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"admissibility\")]\n                public int Admissibility { get; set; }\n\n                /// <summary>\n                /// 获取或设置准入 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"admissible_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"admissible_token\")]\n                public string? AdmissibleToken { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expire_seconds\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expire_seconds\")]\n                public int? ExpiresIn { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAuthOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_auth_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryAuthOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者信用单号。与字段 <see cref=\"AuthOrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_auth_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_auth_order_no\")]\n        public string? OutAuthOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置信用单 ID。与字段 <see cref=\"OutAuthOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string? AuthOrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAuthOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_auth_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryAuthOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者信用单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_auth_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_auth_order_no\")]\n                public string OutAuthOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置信用单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n                public string AuthOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置信用单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置免押场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"scene\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"scene\")]\n                public int Scene { get; set; }\n\n                /// <summary>\n                /// 获取或设置信用模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n                public string ServiceId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置押金金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string MerchantId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置签约时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sign_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sign_time\")]\n                public long? SignTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperClosePayOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/close_pay_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperClosePayOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置扣款单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string PayOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperClosePayOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/close_pay_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperClosePayOrderV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperCreatePayOrderV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_pay_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreatePayOrderV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class FeeDetail\n            {\n                /// <summary>\n                /// 获取或设置扣款项目名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置扣款项目描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置扣款项目金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                public int Amount { get; set; }\n\n                /// <summary>\n                /// 获取或设置扣款项目数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置信用单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者扣款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n        public string OutPayOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置费用明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fee_detail_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fee_detail_list\")]\n        public IList<Types.FeeDetail> FeeDetailList { get; set; } = new List<Types.FeeDetail>();\n\n        /// <summary>\n        /// 获取或设置扣款金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperCreatePayOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_pay_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreatePayOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置扣款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperQueryPayOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_pay_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryPayOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者扣款单号。与字段 <see cref=\"PayOrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n        public string? OutPayOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置扣款单 ID。与字段 <see cref=\"OutPayOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string? PayOrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperQueryPayOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_pay_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryPayOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FeeDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置扣款项目名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置扣款项目描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置扣款项目金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public int Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置扣款项目数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置信用单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n                public string AuthOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者扣款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n                public string OutPayOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置费用明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fee_detail_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fee_detail_list\")]\n                public Types.FeeDetail[] FeeDetailList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                public int? PayChannel { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道支付单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                public string? ChannelPayId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public long? PayTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperCreateRefundV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_refund/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateRefundV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class FeeDetail : TradeAuthDeveloperCreatePayOrderV1Request.Types.FeeDetail\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置扣款单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string PayOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n        public string OutPayRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置费用明细列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fee_detail_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fee_detail_list\")]\n        public IList<Types.FeeDetail> FeeDetailList { get; set; } = new List<Types.FeeDetail>();\n\n        /// <summary>\n        /// 获取或设置退款总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n        public int RefundTotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n        public string? RefundReason { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperCreateRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_refund/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateRefundV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置退款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n                public string PayRefundId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperQueryRefundV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_refund/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryRefundV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者退款单号。与字段 <see cref=\"PayRefundId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n        public string? OutPayRefundNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单 ID。与字段 <see cref=\"OutPayRefundNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n        public string? PayRefundId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperQueryRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_refund/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQueryRefundV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FeeDetail : TradeAuthDeveloperQueryPayOrderV1Response.Types.Data.Types.FeeDetail\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者退款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n                public string OutPayRefundNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n                public string PayRefundId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置费用明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fee_detail_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fee_detail_list\")]\n                public Types.FeeDetail[] FeeDetailList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款总金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                public int RefundTotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n                public string? RefundReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string? ResultMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                public long? RefundTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperCreateSignPayV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_sign_pay/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateSignPayV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置签约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者扣款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n        public string OutPayOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置扣款金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置收款商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string? MerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置代扣超时时间（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expire_seconds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expire_seconds\")]\n        public int? ExpiresIn { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperCreateSignPayV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_sign_pay/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateSignPayV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置扣款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperQuerySignPayV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_pay/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignPayV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者扣款单号。与字段 <see cref=\"PayOrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n        public string? OutPayOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置扣款单 ID。与字段 <see cref=\"OutPayOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string? PayOrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperQuerySignPayV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_pay/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignPayV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置签约单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n                public string AuthOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者扣款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_pay_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_order_no\")]\n                public string OutPayOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置扣款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                public int? PayChannel { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道支付单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                public string? ChannelPayId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public long? PayTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperCreateSignRefundV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_sign_refund/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateSignRefundV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置扣款单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string PayOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n        public string OutPayRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n        public int RefundTotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n        public string? RefundReason { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperCreateSignRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/create_sign_refund/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperCreateSignRefundV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置退款单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n                public string PayRefundId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperQuerySignRefundV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_refund/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignRefundV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置扣款单 ID。与字段 <see cref=\"OutPayRefundNumber\"/>、<see cref=\"PayRefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n        public string? PayOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。与字段 <see cref=\"PayRefundId\"/>、<see cref=\"PayOrderId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n        public string? OutPayRefundNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单 ID。与字段 <see cref=\"OutPayRefundNumber\"/>、<see cref=\"PayOrderId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n        public string? PayRefundId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperQuerySignRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_refund/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignRefundV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Refund\n                    {\n                        /// <summary>\n                        /// 获取或设置小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                        public string AppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置扣款单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                        public string PayOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开发者退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_pay_refund_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_pay_refund_no\")]\n                        public string OutPayRefundNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_refund_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_refund_id\")]\n                        public string PayRefundId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                        public int RefundTotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n                        public string? RefundReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回调通知地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                        public string? NotifyUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_at\")]\n                        public long? CreateTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                        public long? RefundTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退款列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_list\")]\n                public Types.Refund[] RefundList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperQuerySignOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_order/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置签约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperQuerySignOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/query_sign_order/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperQuerySignOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者签约单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_auth_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_auth_order_no\")]\n                public string OutAuthOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置签约单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n                public string AuthOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置签约单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置签约模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"service_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"service_id\")]\n                public string ServiceId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回调通知地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n                public string? NotifyUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置签约时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sign_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sign_time\")]\n                public long? SignTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置解约来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_source\")]\n                public int? CancelSource { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperTerminateSignV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/terminate_sign/ 接口的请求。</para>\n    /// </summary>\n    public class TradeAuthDeveloperTerminateSignV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置签约单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_order_id\")]\n        public string AuthOrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperTerminateSignV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_auth/v1/developer/terminate_sign/ 接口的响应。</para>\n    /// </summary>\n    public class TradeAuthDeveloperTerminateSignV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperFulfillPushStatusV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/fulfill_push_status 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperFulfillPushStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id_list\")]\n        public IList<string> ItemOrderIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置目标状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"to_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"to_status\")]\n        public string ToStatus { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperFulfillPushStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/fulfill_push_status 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperFulfillPushStatusV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperOrderQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/order_query/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperOrderQueryV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperOrderQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/order_query/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperOrderQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ItemOrder\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_amount\")]\n                        public int Amount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单总金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单优惠金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                public int DiscountAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置交易时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"trade_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"trade_time\")]\n                public long TradeTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_list\")]\n                public Types.ItemOrder[] ItemOrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                public int? PayChannel { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置渠道支付单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                public string? ChannelPayId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public long? PayTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperQueryCPSV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/query_cps/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperQueryCPSV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperQueryCPSV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/query_cps/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperQueryCPSV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CPSItem\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置售价（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sell_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sell_amount\")]\n                        public int SellAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"source_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"source_type\")]\n                        public int SourceType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_amount\")]\n                        public int CommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分佣比例（单位：万分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_rate\")]\n                        public int CommissionRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置达人抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_user_douyinid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_user_douyinid\")]\n                        public string CommissionUserDouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置达人昵称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commission_user_nickname\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commission_user_nickname\")]\n                        public string CommissionUserNickname { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置任务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                        public string TaskId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置短视频或直播间 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ItemId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单总佣金（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_commission_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_commission_amount\")]\n                public int TotalCommissionAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单 CPS 信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cps_item_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cps_item_list\")]\n                public Types.CPSItem[] CPSItemList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundAuditCallbackV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_audit_callback/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundAuditCallbackV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n        public string RefundId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_status\")]\n        public int AuditStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置不同意退款信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deny_message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deny_message\")]\n        public string? DenyMessage { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundAuditCallbackV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_audit_callback/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundAuditCallbackV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundCreateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_create/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundCreateV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class ItemOrder\n            {\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string ItemOrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n            }\n\n            public class RefundReason\n            {\n                /// <summary>\n                /// 获取或设置退款原因编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int Code { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款原因描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"text\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                public string Text { get; set; } = string.Empty;\n            }\n\n            public class MicroAppSchema\n            {\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string Path { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置页面参数字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                public string? ParamsString { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n        public int RefundTotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n        public IList<Types.ItemOrder>? ItemOrderList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否整单退款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_all\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_all\")]\n        public bool? IsRefundAll { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款原因列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_reason\")]\n        public IList<Types.RefundReason> RefundReasonList { get; set; } = new List<Types.RefundReason>();\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单详情页的 Schema。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n        public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundCreateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_create/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundCreateV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置退款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                public string RefundId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核的最后期限毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_audit_deadline\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_deadline\")]\n                public long AuditDeadlineMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_query/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundQueryV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutRefundNumber\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string? OutRefundNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutRefundNumber\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n        public string? RefundId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperRefundQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/refund_query/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperRefundQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Refund\n                    {\n                        public static class Types\n                        {\n                            public class ItemOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int RefundAmount { get; set; }\n                            }\n\n                            public class MerchantAuditDetail\n                            {\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audit_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audit_status\")]\n                                public string AuditStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款审核类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"need_refund_audit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"need_refund_audit\")]\n                                public int RefundAuditType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核的最后期限毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_audit_deadline\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_deadline\")]\n                                public long AuditDeadlineMilliseconds { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置不同意退款信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"deny_message\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"deny_message\")]\n                                public string? DenyMessage { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开发者退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n                        public string OutRefundNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                        public string RefundId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                        public int RefundTotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n                        public Types.ItemOrder[]? ItemOrderList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_source\")]\n                        public int? RefundSource { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家审核信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_audit_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_audit_detail\")]\n                        public Types.MerchantAuditDetail? MerchantAuditDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_at\")]\n                        public long? CreateTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                        public long? RefundTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退款列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_list\")]\n                public Types.Refund[] RefundList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperSettleCreateV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/settle_create/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperSettleCreateV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class SettleParameter\n            {\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string MerchantId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                public int Amount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string OutSettleNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_desc\")]\n        public string SettleDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账参数列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_params\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_params\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<Types.SettleParameter>? SettleParameterList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n        public string? ItemOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperSettleCreateV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/settle_create/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperSettleCreateV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置底层分账单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"wallet_settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"wallet_settle_id\")]\n                public string WalletSettleId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperSettleQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/settle_query/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperSettleQueryV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string? OutSettleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n        public string? SettleId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperSettleQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/settle_query/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperSettleQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n                public string OutSettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置底层分账单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"wallet_settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"wallet_settle_id\")]\n                public string WalletSettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string? ItemOrderId { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账详情。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_detail\")]\n                public string SettleDetail { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置手续费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"rake\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"rake\")]\n                public int RakeFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台优惠补贴费用（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"platform_ticket\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"platform_ticket\")]\n                public int PlatformTicketFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置佣金金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission\")]\n                public int CommissionAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_at\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_at\")]\n                public long? SettleTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperTagQueryV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/tag_query/ 接口的请求。</para>\n    /// </summary>\n    public class TradeBasicDeveloperTagQueryV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_type\")]\n        public int? GoodsType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/TradeBasicDeveloper/TradeBasicDeveloperTagQueryV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/trade_basic/v1/developer/tag_query/ 接口的响应。</para>\n    /// </summary>\n    public class TradeBasicDeveloperTagQueryV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TagGroup\n                    {\n                        public static class Types\n                        {\n                            public class Tag\n                            {\n                                /// <summary>\n                                /// 获取或设置标签 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tag_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_id\")]\n                                public string TagId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置标签名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tag_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置标签类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tag_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_type\")]\n                                public int Type { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置标签描述列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tag_descs\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tag_descs\")]\n                                public string[] DescriptionList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置行业类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n                                public int BusinessType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"goods_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"goods_type\")]\n                                public int GoodsType { get; set; }\n                            }\n\n                            public class Rule\n                            {\n                                public static class Types\n                                {\n                                    public class RefundRule\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置业务状态。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"biz_status\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"biz_status\")]\n                                        public string BusinessStatus { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商家审核类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"merchant_audit_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_audit_type\")]\n                                        public int MerchantAuditType { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置退款类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"refund_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_type\")]\n                                        public int RefundType { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置规则 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rule_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rule_id\")]\n                                public string RuleId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置规则类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rule_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rule_type\")]\n                                public int RuleType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款规则信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_rule\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_rule\")]\n                                public Types.RefundRule? RefundRule { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置标签组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tag_group_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tag_group_id\")]\n                        public string TagGroupId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tag_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tag_list\")]\n                        public Types.Tag[] TagList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置规则列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rule_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rule_list\")]\n                        public Types.Rule[]? RuleList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置标签组列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tag_detail_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tag_detail_list\")]\n                public Types.TagGroup[] TagGroupList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/AppsJsCode2SessionV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/jscode2session 接口的请求。</para>\n    /// </summary>\n    public class AppsJsCode2SessionV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序的 AppSecret。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? Code { get; set; }\n\n        /// <summary>\n        /// 获取或设置匿名登录 Code。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anonymous_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_code\")]\n        public string? AnoymousCode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/AppsJsCode2SessionV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/jscode2session 接口的响应。</para>\n    /// </summary>\n    public class AppsJsCode2SessionV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置会话密钥。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"session_key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"session_key\")]\n                public string? SessionKey { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n                public string? OpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置匿名用户的 OpenId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"anonymous_openid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_openid\")]\n                public string? AnonymousOpenId { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户的 UnionId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unionid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unionid\")]\n                public string? UnionId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/AppsTokenV2Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/token 接口的请求。</para>\n    /// </summary>\n    public class AppsTokenV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序的 AppSecret。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"client_credential\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/AppsTokenV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v2/token 接口的响应。</para>\n    /// </summary>\n    public class AppsTokenV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置调用接口的凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/AppsCapacityUploadMaterialV1Request.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/upload_material 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityUploadMaterialV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置上传的文件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int MaterialType { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] MaterialFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置资源文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置资源文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? MaterialFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/AppsCapacityUploadMaterialV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/upload_material 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityUploadMaterialV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string FilePath { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityCreateClueComponentInfoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_clue_component_info 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityCreateClueComponentInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置线索组件名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"config_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"config_name\")]\n        public string ConfigName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置地区编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n        public string? Region { get; set; }\n\n        /// <summary>\n        /// 获取或设置地区编号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_list\")]\n        public IList<string>? RegionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string? CategoryIdString { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityCreateClueComponentInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_clue_component_info 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityCreateClueComponentInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置线索组件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"config_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"config_id\")]\n                public string ConfigId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityDeleteClueComponentInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /api/apps/v1/capacity/delete_clue_component_info 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityDeleteClueComponentInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置线索组件 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"config_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"config_id\")]\n        public string ConfigId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityDeleteClueComponentInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /api/apps/v1/capacity/delete_clue_component_info 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityDeleteClueComponentInfoV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityQueryClueComponentInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_clue_component_info 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryClueComponentInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置分页页数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityQueryClueComponentInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_clue_component_info 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryClueComponentInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ClueComponent\n                    {\n                        public static class Types\n                        {\n                            public class Region\n                            {\n                                /// <summary>\n                                /// 获取或设置地区编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                                public string RegionCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置省份编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n                                public string ProvinceCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置省份名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province_name\")]\n                                public string ProvinceName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n                                public string CityCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置城市名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city_name\")]\n                                public string CityName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district_code\")]\n                                public string DistrictCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区县名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district_name\")]\n                                public string DistrictName { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置线索组件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"config_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"config_id\")]\n                        public string ConfigId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置线索组件名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"config_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"config_name\")]\n                        public string ConfigName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地区编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string Region { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地区名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region_name\")]\n                        public string RegionName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        public string CategoryIdString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置服务类目名称字符串（以逗号分隔）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_name\")]\n                        public string CategoryNameString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"state\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n                        public string State { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地区列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region_list\")]\n                        public Types.Region[]? RegionList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置线索组件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"clue_component_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"clue_component_list\")]\n                public Types.ClueComponent[] ClueComponentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置非定向邀约小程序或小程序类目是否符合要求。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cert_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cert_status\")]\n                public bool? CertStatus { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityUpdateClueComponentInfoV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/update_clue_component_info 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityUpdateClueComponentInfoV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置线索组件 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"config_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"config_id\")]\n        public string ConfigId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置线索组件名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"config_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"config_name\")]\n        public string ConfigName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置地区编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n        public string? Region { get; set; }\n\n        /// <summary>\n        /// 获取或设置地区编号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_list\")]\n        public IList<string>? RegionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置服务类目 ID 字符串（以逗号分隔）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string? CategoryIdString { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityUpdateClueComponentInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/update_clue_component_info 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityUpdateClueComponentInfoV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityBindDoudianAccountV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/bind_doudian_account 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityBindDoudianAccountV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityBindDoudianAccountV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/bind_doudian_account 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityBindDoudianAccountV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置抖店账号绑定状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_account_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_account_status\")]\n                public int AccountStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店开放平台注册地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_register_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_register_url\")]\n                public string? RegisterUrl { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityCreateDoudianAppV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_doudian_app 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityCreateDoudianAppV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置店铺名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n        public string ShopName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置备注说明。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"note\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n        public string Notes { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置功能截图文件路径列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"screen_shot_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"screen_shot_list\")]\n        public IList<string> ScreenshotFilePathList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityCreateDoudianAppV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/create_doudian_app 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityCreateDoudianAppV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置抖店应用 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_appid\")]\n                public string AppId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryBindDoudianAccountV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_bind_doudian_account 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryBindDoudianAccountV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryBindDoudianAccountV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_bind_doudian_account 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryBindDoudianAccountV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置抖店账号绑定状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_account_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_account_status\")]\n                public int AccountStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account\")]\n                public string? Account { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店用户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_name\")]\n                public string? Username { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店主体。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject\")]\n                public string? Subject { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianAppV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_doudian_app 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryDoudianAppV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianAppV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_doudian_app 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryDoudianAppV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置应用绑定状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bind_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bind_status\")]\n                public int BindStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店应用 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_appid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_appid\")]\n                public string? AppId { get; set; }\n\n                /// <summary>\n                /// 获取或设置抖店应用名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doudian_app_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doudian_app_name\")]\n                public string? AppName { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianShopInfoV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_doudian_shop_info 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryDoudianShopInfoV1Request : DouyinMicroAppRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianShopInfoV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_doudian_shop_info 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryDoudianShopInfoV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Shop\n                    {\n                        /// <summary>\n                        /// 获取或设置抖音小程序 AppId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"MaAppId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"MaAppId\")]\n                        public string MicroAppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置抖店应用 AppID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"DoudianAppId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"DoudianAppId\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string DoudianAppId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置抖店店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ShopId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ShopId\")]\n                        public int ShopId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置抖店店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ShopName\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ShopName\")]\n                        public string ShopName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置抖店用户 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ToutiaoId\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ToutiaoId\")]\n                        public long DouyinId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置店铺列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ShopIdList\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ShopIdList\")]\n                public Types.Shop[] ShopList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Mount/AppsCapacityApplyCapacityV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/apply_capacity 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityApplyCapacityV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置挂载能力标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"capacity_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"capacity_key\")]\n        public string CapacityKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置申请原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"apply_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"apply_reason\")]\n        public string ApplyReason { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Mount/AppsCapacityApplyCapacityV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/capacity/apply_capacity 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityApplyCapacityV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Mount/AppsCapacityQueryApplyStatusV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_apply_status 接口的请求。</para>\n    /// </summary>\n    public class AppsCapacityQueryApplyStatusV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置挂载能力标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CapacityKey { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Capacity/Mount/AppsCapacityQueryApplyStatusV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/v1/capacity/query_apply_status 接口的响应。</para>\n    /// </summary>\n    public class AppsCapacityQueryApplyStatusV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置能力状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Censor/AppsCensorImageRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/censor/image 接口的请求。</para>\n    /// </summary>\n    public class AppsCensorImageRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// <inheritdoc />\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL。与字段 <see cref=\"EncodingImageData\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n        public string? ImageUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置经过 Base64 编码的图片数据。与字段 <see cref=\"ImageUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_data\")]\n        public string? EncodingImageData { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Censor/AppsCensorImageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/censor/image 接口的响应。</para>\n    /// </summary>\n    public class AppsCensorImageResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Predict\n            {\n                /// <summary>\n                /// 获取或设置置信度模型或标签。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"model_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"model_name\")]\n                public string ModelName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置置信度结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"hit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"hit\")]\n                public bool IsHit { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"error\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error\")]\n        public override int ErrorNumber { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置置信度列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"predicts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"predicts\")]\n        public Types.Predict[] PredictList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Chat/AppsChatCustomerServiceUrlRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/chat/customer_service_url 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-08-29 下线。\")]\n    public class AppsChatCustomerServiceUrlRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置来源。\n        /// <para>默认值：1128</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Type { get; set; } = 1128;\n\n        /// <summary>\n        /// 获取或设置场景值。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Scene { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 IM 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? IMType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Chat/AppsChatCustomerServiceUrlResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/chat/customer_service_url 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-08-29 下线。\")]\n    public class AppsChatCustomerServiceUrlResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置客服链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/CustomerService/AppsCustomerServiceUrlRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/customer_service/url 接口的请求。</para>\n    /// </summary>\n    public class AppsCustomerServiceUrlRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置来源。\n        /// <para>默认值：1128</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Type { get; set; } = 1128;\n\n        /// <summary>\n        /// 获取或设置场景值。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int Scene { get; set; } = 1;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/CustomerService/AppsCustomerServiceUrlResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/customer_service/url 接口的响应。</para>\n    /// </summary>\n    public class AppsCustomerServiceUrlResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置客服链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Live/AppsLiveSetBlackWhiteListV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/live/set_black_white_list 接口的请求。</para>\n    /// </summary>\n    public class AppsLiveSetBlackWhiteListV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"uniq_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"uniq_id\")]\n        public string UserUniqueId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int ActionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Live/AppsLiveSetBlackWhiteListV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/v1/live/set_black_white_list 接口的响应。</para>\n    /// </summary>\n    public class AppsLiveSetBlackWhiteListV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Live/AppsUploadLiveImageRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/upload_live_image 接口的请求。</para>\n    /// </summary>\n    public class AppsUploadLiveImageRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置跳转的页面。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置直播间 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? RoomId { get; set; }\n\n        /// <summary>\n        /// 获取或设置封面图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置封面图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置封面图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Live/AppsUploadLiveImageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/upload_live_image 接口的响应。</para>\n    /// </summary>\n    public class AppsUploadLiveImageResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置会话密钥。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"session_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"session_key\")]\n        public string? SessionKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"openid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n        public string? OpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置匿名用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anonymous_openid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anonymous_openid\")]\n        public string? AnonymousOpenId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 UnionId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"unionid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"unionid\")]\n        public string? UnionId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Message/AppsMessageCustomSendRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/message/custom/send 接口的请求。</para>\n    /// </summary>\n    public class AppsMessageCustomSendRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_type\")]\n        public string MessageType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置文本内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string? Content { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pic_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pic_url\")]\n        public string? PictureUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Message/AppsMessageCustomSendResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/message/custom/send 接口的响应。</para>\n    /// </summary>\n    public class AppsMessageCustomSendResponse : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Order/AppsOrderDeleteRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/order/delete 接口的请求。</para>\n    /// </summary>\n    public class AppsOrderDeleteRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appname\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appname\")]\n        public string AppName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"openid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Order/AppsOrderDeleteResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/order/delete 接口的响应。</para>\n    /// </summary>\n    public class AppsOrderDeleteResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n        public int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置 JSON 格式的生活服务关联业务推送结果与业务信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"body\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"body\")]\n        public string? DataJson { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Order/AppsOrderPushV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/order/v2/push 接口的请求。</para>\n    /// </summary>\n    public class AppsOrderPushV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class KeyValue\n            {\n                /// <summary>\n                /// 获取或设置键。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                public string Key { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public string Value { get; set; } = string.Empty;\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方在开放平台申请的 ClientKey。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 POI 外部商户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_shop_id\")]\n        public string ExternalShopId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string AppName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 JSON 格式的订单详情信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_detail\")]\n        public string? OrderDetailJson { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n        public int OrderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        public int OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单变更时间毫秒级时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n        public long UpdateTimeMilliseconds { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置场景值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene\")]\n        public string? Scene { get; set; }\n\n        /// <summary>\n        /// 获取或设置位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"location\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"location\")]\n        public string? Location { get; set; }\n\n        /// <summary>\n        /// 获取或设置下单来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"launch_from\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"launch_from\")]\n        public string? LaunchFrom { get; set; }\n\n        /// <summary>\n        /// 获取或设置担保支付平台订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_order_no\")]\n        public string? PaymentOrderNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Order/AppsOrderPushV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/order/v2/push 接口的响应。</para>\n    /// </summary>\n    public class AppsOrderPushV2Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"err_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"err_code\")]\n        public int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置 JSON 格式的生活服务关联业务推送结果与业务信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"body\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"body\")]\n        public string? DataJson { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Qrcode/AppsQrcodeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/qrcode 接口的请求。</para>\n    /// </summary>\n    public class AppsQrcodeRequest : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Color\n            {\n                /// <summary>\n                /// 获取或设置 RGB 红色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"r\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"r\")]\n                public byte Red { get; set; }\n\n                /// <summary>\n                /// 获取或设置 RGB 绿色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"g\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"g\")]\n                public byte Green { get; set; }\n\n                /// <summary>\n                /// 获取或设置 RGB 蓝色色值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"b\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"b\")]\n                public byte Blue { get; set; }\n            }\n        }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置宿主名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appname\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appname\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置 URL 编码后的小程序启动路径。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"path\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n        public string? EncodedPath { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码宽度（单位：像素）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"width\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n        public int? Width { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码线条颜色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"line_color\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"line_color\")]\n        public Types.Color? LineColor { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码背景颜色信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"background\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"background\")]\n        public Types.Color? BackgroundColor { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否展示小程序 Icon。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"set_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"set_icon\")]\n        public bool? RequireSetIcon { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Qrcode/AppsQrcodeResponse.cs",
    "content": "using System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/qrcode 接口的响应。</para>\n    /// </summary>\n    public class AppsQrcodeResponse : DouyinMicroAppResponse\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/ShareConfig/AppsShareConfigRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/share_config 接口的请求。</para>\n    /// </summary>\n    public class AppsShareConfigRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"uniq_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"uniq_id\")]\n        public string UserUniqueId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int ActionType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/ShareConfig/AppsShareConfigResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/share_config 接口的响应。</para>\n    /// </summary>\n    public class AppsShareConfigResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置返回的数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public string? Data { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/SubscribeNotification/AppsSubscribeNotificationDeveloperNotifyV1Request.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/subscribe_notification/developer/v1/notify 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-12-27 下线。\")]\n    public class AppsSubscribeNotificationDeveloperNotifyV1Request : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置模板 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tpl_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tpl_id\")]\n        public string TemplateId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置模板内容信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public IDictionary<string, string> Data { get; set; } = new Dictionary<string, string>();\n\n        /// <summary>\n        /// 获取或设置跳转的页面。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public string? PagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/SubscribeNotification/AppsSubscribeNotificationDeveloperNotifyV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/subscribe_notification/developer/v1/notify 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2023-12-27 下线。\")]\n    public class AppsSubscribeNotificationDeveloperNotifyV1Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxAddTaskRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/add_task 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxAddTaskRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n        public int TaskSettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置锚点标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n        public string AnchorTitle { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务图标 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n        public string TaskIconUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n        public long TaskStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n        public long TaskEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n        public string TaskDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置示例视频 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n        public IList<string> ReferVideoUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置任务标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n        public IList<string> TaskTagList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置小程序截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n        public IList<string> ReferMiniAppCaptureUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_video_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_video_captures\")]\n        public IList<string> ReferVideoCaptureUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频的 GID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n        public IList<int>? ReferGIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务最大退款周期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_refund_period\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_refund_period\")]\n        public int? TaskRefundPeriod { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算分配比例（范围：1～99）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_allocate_ratio\")]\n        public int? PaymentAllocateRatio { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxAddTaskResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/add_task 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxAddTaskResponse : AppsTaskBoxResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxQueryAppTaskIdRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/query_app_task_id 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxQueryAppTaskIdRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置创建时间起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_start_time\")]\n        public long StartCreateTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间终止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_end_time\")]\n        public long EndCreateTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxQueryAppTaskIdResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/query_app_task_id 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxQueryAppTaskIdResponse : AppsTaskBoxResponseBase\n    {\n        /// <summary>\n        /// 获取或设置任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public long[] TaskIdList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxQueryTaskVideoDataRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/query_task_video_data 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxQueryTaskVideoDataRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置任务 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_ids\")]\n        public IList<long> TaskIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置视频发布时间起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_publish_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_publish_start_time\")]\n        public long StartPublishTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频发布时间终止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_publish_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_publish_end_time\")]\n        public long EndPublishTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxQueryTaskVideoDataResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/query_task_video_data 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxQueryTaskVideoDataResponse : AppsTaskBoxResponseBase\n    {\n        public static class Types\n        {\n            public class Video\n            {\n                /// <summary>\n                /// 获取或设置任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long TaskId { get; set; }\n\n                /// <summary>\n                /// 获取或设置任务名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n                public string TaskName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置作者抖音号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                public string DouyinId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置作者名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"author\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"author\")]\n                public string Author { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置小程序标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"micro_app_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"micro_app_title\")]\n                public string MicroAppTitle { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long VideoId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_title\")]\n                public string VideoTitle { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"VideoLink\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"VideoLink\")]\n                public string VideoUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置发布时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_time\")]\n                public long PublishTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频播放量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_views\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_views\")]\n                public int ViewCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频点击量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"clicks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"clicks\")]\n                public int ClickCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频评论数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comments\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comments\")]\n                public int CommentCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频点赞数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"likes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"likes\")]\n                public int LikeCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频分享数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shares\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shares\")]\n                public int ShareCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置预计收益（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expected_profit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expected_profit\")]\n                public decimal ExpectedProfit { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置视频列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Video[] VideoList { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateOrientTalentsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update_orient_talents/ 接口的请求。</para>\n    /// </summary>\n    public class AppsTaskBoxUpdateOrientTalentsRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_appid\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置达人抖音号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"douyin_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_ids\")]\n        public IList<string> DouyinIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置操作类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"op_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"op_type\")]\n        public int OperateType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateOrientTalentsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update_orient_talents/ 接口的响应。</para>\n    /// </summary>\n    public class AppsTaskBoxUpdateOrientTalentsResponse : AppsTaskBoxResponseBase\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置达人抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"douyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"douyin_id\")]\n                        public string DouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置更新结果。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_result\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_result\")]\n                        public string UpdateResult { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置更新结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_info_list\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateStatusRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update/status 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxUpdateStatusRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_status\")]\n        public int TaskStatus { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateStatusResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update/status 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxUpdateStatusResponse : AppsTaskBoxResponseBase\n    {\n        public static class Types\n        {\n            public class Data : AppsTaskBoxAddTaskResponse.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateTaskRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update_task 接口的请求。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxUpdateTaskRequest : AppsTaskBoxRequestBase\n    {\n        /// <summary>\n        /// 获取或设置任务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n        public long TaskId { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_name\")]\n        public string TaskName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_settle_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_settle_type\")]\n        public int TaskSettleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序页面地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_page\")]\n        public string PagePath { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置锚点标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"anchor_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"anchor_title\")]\n        public string AnchorTitle { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务图标 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_icon\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_icon\")]\n        public string TaskIconUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置任务开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_start_time\")]\n        public long TaskStartTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_end_time\")]\n        public long TaskEndTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务简介。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_desc\")]\n        public string TaskDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置示例视频 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_videos\")]\n        public IList<string> ReferVideoUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置任务标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_tags\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_tags\")]\n        public IList<string> TaskTagList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置小程序截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_ma_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_ma_captures\")]\n        public IList<string> ReferMiniAppCaptureUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频截图 URL 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_video_captures\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_video_captures\")]\n        public IList<string> ReferVideoCaptureUrlList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频的 GID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refer_gids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refer_gids\")]\n        public IList<int>? ReferGIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置任务最大退款周期（单位：天）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"task_refund_period\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"task_refund_period\")]\n        public int? TaskRefundPeriod { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算分配比例（范围：1～99）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_allocate_ratio\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_allocate_ratio\")]\n        public int? PaymentAllocateRatio { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateTaskResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/taskbox/update_task 接口的响应。</para>\n    /// </summary>\n    [Obsolete(\"相关接口或字段于 2024-01-08 下线。\")]\n    public class AppsTaskBoxUpdateTaskResponse : AppsTaskBoxResponseBase\n    {\n        public static class Types\n        {\n            public class Data : AppsTaskBoxAddTaskResponse.Types.Data\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/__Abstractions/AppsTaskBoxRequestBase.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    public abstract class AppsTaskBoxRequestBase : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/TaskBox/__Abstractions/AppsTaskBoxResponseBase.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    public abstract class AppsTaskBoxResponseBase : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error\")]\n        public int Error { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public override string? ErrorMessage { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && Error == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Video/AppsConvertOpenItemIdToEncryptIdRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/convert_video_id/open_item_id_to_encrypt_id 接口的请求。</para>\n    /// </summary>\n    public class AppsConvertOpenItemIdToEncryptIdRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置访问密钥。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_key\")]\n        public string? AccessKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ItemId 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> OpenItemIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Video/AppsConvertOpenItemIdToEncryptIdResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/convert_video_id/open_item_id_to_encrypt_id 接口的响应。</para>\n    /// </summary>\n    public class AppsConvertOpenItemIdToEncryptIdResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置转换结果字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"convert_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"convert_result\")]\n                public IDictionary<string, string> Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Video/AppsConvertVideoIdToOpenItemIdRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/convert_video_id/video_id_to_open_item_id 接口的请求。</para>\n    /// </summary>\n    public class AppsConvertVideoIdToOpenItemIdRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置访问密钥。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_key\")]\n        public string? AccessKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> VideoIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Apps/Video/AppsConvertVideoIdToOpenItemIdResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/convert_video_id/video_id_to_open_item_id 接口的响应。</para>\n    /// </summary>\n    public class AppsConvertVideoIdToOpenItemIdResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置转换结果字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"convert_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"convert_result\")]\n                public IDictionary<string, string> Result { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Bills/AppsBillsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/bills 接口的请求。</para>\n    /// </summary>\n    public class AppsBillsRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string DateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账单类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string BillType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Bills/AppsBillsResponse.cs",
    "content": "using System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/bills 接口的响应。</para>\n    /// </summary>\n    public class AppsBillsResponse : DouyinMicroAppResponse\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Bills/AppsFundBillsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/fund/bills 接口的请求。</para>\n    /// </summary>\n    public class AppsFundBillsRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账单日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string DateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置账户类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AccountType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置收支类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PaymentType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置交易类型。\n        /// <para>默认值：\"ALL\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string TradeType { get; set; } = \"ALL\";\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Bills/AppsFundBillsResponse.cs",
    "content": "using System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /api/apps/fund/bills 接口的响应。</para>\n    /// </summary>\n    public class AppsFundBillsResponse : DouyinMicroAppResponse\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_order 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayCreateOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置门店收款商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"store_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"store_uid\")]\n        public string? StoreMerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单价格（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"subject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"subject\")]\n        public string Subject { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品详情。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"body\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"body\")]\n        public string Body { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"valid_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"valid_time\")]\n        public int ValidTime { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否屏蔽担保支付的推送消息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"disable_msg\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"disable_msg\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsMessageDisabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置担保支付消息跳转页面。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_page\")]\n        public string? MessagePagePath { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_order 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayCreateOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用于调起支付的 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_token\")]\n                public string OrderToken { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateRefundV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayCreateRefundV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n        public string Reason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n        public int RefundAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否屏蔽担保支付的推送消息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"disable_msg\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"disable_msg\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsMessageDisabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置担保支付消息跳转页面。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"msg_page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"msg_page\")]\n        public string? MessagePagePath { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为分账后退款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"all_settle\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"all_settle\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAllSettled { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayCreateRefundV1Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置担保交易退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_no\")]\n        public string RefundNumber { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateReturnV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_return 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayCreateReturnV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户结算单号。与字段 <see cref=\"SettleNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string? OutSettleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置担保交易分帐单号。与字段 <see cref=\"OutSettleNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_no\")]\n        public string? SettleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户回退单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_return_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_return_no\")]\n        public string OutReturnNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回退描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_desc\")]\n        public string ReturnDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回退商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回退金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_amount\")]\n        public int ReturnAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayCreateReturnV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/create_return 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayCreateReturnV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Return : AppsECPayQueryReturnV1Response.Types.Return\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置分账回退信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_info\")]\n        public Types.Return Return { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryOrderV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_order 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayQueryOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryOrderV1Response.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_order 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayQueryOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Payment\n            {\n                /// <summary>\n                /// 获取或设置支付金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_fee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_fee\")]\n                public int TotalFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public string OrderStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"way\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"way\")]\n                public int? PayMethod { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_no\")]\n                public string? ChannelNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道网关号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_gateway_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_gateway_no\")]\n                public string? ChannelGatewayNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置卖家商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_uid\")]\n                public string? SellerMerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                public string? ItemId { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单支付时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset? PayTime { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutTradeNumber { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置支付信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"payment_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"payment_info\")]\n        public Types.Payment Payment { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryPlatformOrderV1Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_platform_order 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayQueryPlatformOrderV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutTradeNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询类型。\n        /// <para>默认值：1</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query_type\")]\n        public int QueryType { get; set; } = 1;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryPlatformOrderV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_platform_order 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayQueryPlatformOrderV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class PlatformOrder\n            {\n                public static class Types\n                {\n                    public class SettleInfo\n                    {\n                        public static class Types\n                        {\n                            public class SettleParameter\n                            {\n                                /// <summary>\n                                /// 获取或设置分账金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                public int Amount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置分账方商户号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                                public string MerchantUid { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置自动结算单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n                        public string OutSettleNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置小程序分账单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_no\")]\n                        public string SettleNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分账参数列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_param_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_param_list\")]\n                        public Types.SettleParameter[]? SettleParameterList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算渠道。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_way\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_way\")]\n                        public string SettleWay { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分账状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settle_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settle_status\")]\n                        public string SettleStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 CPS 佣金（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cps\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cps\")]\n                        public int CPS { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置技术服务费（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"service_charge\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"service_charge\")]\n                        public int ServiceCharge { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结算创建时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"created_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"created_at\")]\n                        public string CreateTimeString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算完成时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settled_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settled_at\")]\n                        public string? SettleTimeString { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string? OutOrderNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置对应的查询类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"query_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"query_type\")]\n                public string QueryType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置自动结算明细列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_info_list\")]\n                public Types.SettleInfo[]? SettleInfoList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"platform_order\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"platform_order\")]\n        public Types.PlatformOrder PlatformOrder { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryRefundV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayQueryRefundV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryRefundV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayQueryRefundV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Refund\n            {\n                /// <summary>\n                /// 获取或设置担保交易退款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_no\")]\n                public string RefundNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置退款状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                public string RefundStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refunded_at\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refunded_at\")]\n                public long RefundTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否分账。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_all_settled\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_all_settled\")]\n                public bool IsAllSettled { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置退款信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refundInfo\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refundInfo\")]\n        public Types.Refund Refund { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryReturnV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_return 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayQueryReturnV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户回退单号。与字段 <see cref=\"ReturnNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_return_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_return_no\")]\n        public string? OutReturnNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置平台回退单号。与字段 <see cref=\"OutReturnNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_no\")]\n        public string? ReturnNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQueryReturnV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_return 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayQueryReturnV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Return\n            {\n                /// <summary>\n                /// 获取或设置小程序第三方平台应用 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n                public string? ComponentAppId { get; set; }\n\n                /// <summary>\n                /// 获取或设置小程序 AppId。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n                public string AppId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户结算单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n                public string OutSettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置担保交易分帐单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_no\")]\n                public string SettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户回退单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_return_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_return_no\")]\n                public string OutReturnNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置平台回退单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_no\")]\n                public string ReturnNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回退描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_desc\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_desc\")]\n                public string ReturnDescription { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回退商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string MerchantId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置回退金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_amount\")]\n                public int ReturnAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置回退状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n                public string ReturnStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置回退失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                public string? FailReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置回退成功时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"finish_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"finish_time\")]\n                public long? FinishTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置分账回退信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_info\")]\n        public Types.Return Return { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQuerySettleV1Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_settle 接口的请求。</para>\n    /// </summary>\n    public class AppsECPayQuerySettleV1Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户结算单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string OutSettleNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPayQuerySettleV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/query_settle 接口的响应。</para>\n    /// </summary>\n    public class AppsECPayQuerySettleV1Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Settlement\n            {\n                /// <summary>\n                /// 获取或设置担保交易分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_no\")]\n                public string SettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_status\")]\n                public string SettleStatus { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置结算信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_info\")]\n        public Types.Settlement Settlement { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPaySettleV1Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/settle 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySettleV1Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class SettleParameter\n            {\n                /// <summary>\n                /// 获取或设置分账方商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string MerchantId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                public int Amount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutTradeNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户结算单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string OutSettleNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结算描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_desc\")]\n        public string SettleDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账方参数列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_params\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_params\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<Types.SettleParameter> SettleParameterList { get; set; } = new List<Types.SettleParameter>();\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/Order/AppsECPaySettleV1Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/v1/settle 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySettleV1Response : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置担保交易分帐单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_no\")]\n        public string SettleNumber { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSCreateMerchantRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/create_merchant 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSCreateMerchantRequest : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class BusinessLicense\n            {\n                /// <summary>\n                /// 获取或设置证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_type\")]\n                public int LicenseType { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_code\")]\n                public string LicenseCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? LicenseAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件正面照片图片 ID 字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_picurl\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_picurl\")]\n                public IDictionary<string, string> FrontPictureImageIdMap { get; set; } = new Dictionary<string, string>();\n\n                /// <summary>\n                /// 获取或设置证件背面照片图片 ID 字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_license_back_picurl\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_license_back_picurl\")]\n                public IDictionary<string, string>? BackPictureImageIdMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string BeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n                public string EndDateString { get; set; } = string.Empty;\n            }\n\n            public class LegalPerson\n            {\n                /// <summary>\n                /// 获取或设置证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int IdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_no\")]\n                public string IdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string IdName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? IdAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件正面照片图片 ID 字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_pic_url\")]\n                public IDictionary<string, string> FrontPictureImageIdMap { get; set; } = new Dictionary<string, string>();\n\n                /// <summary>\n                /// 获取或设置证件背面照片图片 ID 字典。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_pic_url\")]\n                public IDictionary<string, string>? BackPictureImageIdMap { get; set; }\n\n                /// <summary>\n                /// 获取或设置证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string BeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exp_date\")]\n                public string EndDateString { get; set; } = string.Empty;\n            }\n\n            public class MerchantCardInfo\n            {\n                /// <summary>\n                /// 获取或设置银行户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                public string AccountName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置银行账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_no\")]\n                public string AccountNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置开户支行名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bank_full_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bank_full_name\")]\n                public string BankFullName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置结算类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_type\")]\n                public int SettleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置银行卡类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"card_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"card_type\")]\n                public string CardType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置支付宝结算类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_settle_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_settle_type\")]\n                public int AlipaySettleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付宝结算账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_account_no\")]\n                public string? AlipayAccountNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置结算证明函图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settlement_cert_pic\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settlement_cert_pic\")]\n                public string? SettlementCertificatePictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置关系证明函图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"relation_cert_pic\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"relation_cert_pic\")]\n                public string? RelationCertificatePictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置其他证明图片 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"other_cert_pics\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"other_cert_pics\")]\n                public IList<string>? OtherCertificatePictureImageIdList { get; set; }\n            }\n\n            public class MerchantOperationInfo\n            {\n                /// <summary>\n                /// 获取或设置联系人名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_name\")]\n                public string ManagerName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人手机号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_mobile\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_mobile\")]\n                public string ManagerMobileNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_email\")]\n                public string ManagerEmail { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_person_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_person_type\")]\n                public int ManagerType { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int? ManagerIdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manage_id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manage_id_no\")]\n                public string ManagerIdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置联系人证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_begin_date\")]\n                public string? ManagerIdBeginDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_exp_date\")]\n                public string? ManagerIdEndDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件正面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_front_pic_url\")]\n                public string? ManagerIdFrontPictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系人证件背面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_back_pic_url\")]\n                public string? ManagerIdBackPictureImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付宝账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"alipay_account_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"alipay_account_no\")]\n                public string? AlipayAccountNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string? ShopName { get; set; }\n\n                /// <summary>\n                /// 获取或设置店铺链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_url\")]\n                public string? ShopUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权函图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"business_authorization_letter\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"business_authorization_letter\")]\n                public string? AuthorizationLetterImageId { get; set; }\n            }\n\n            public class Beneficiary\n            {\n                /// <summary>\n                /// 获取或设置受益人证件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_type\")]\n                public int IdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置受益人证件号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id_no\")]\n                public string IdNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件姓名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string IdName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? IdAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置受益人证件有效期开始日期字符串（格式：yyyyMMdd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"begin_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"begin_date\")]\n                public string BeginDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件有效期结束日期字符串（格式：yyyyMMdd / \"长期\"）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"exp_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"exp_date\")]\n                public string EndDateString { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件正面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"front_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"front_pic_url\")]\n                public string FrontPictureImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置受益人证件背面照片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"back_pic_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"back_pic_url\")]\n                public string? BackPictureImageId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。与字段 <see cref=\"ComponentAppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。与字段 <see cref=\"AppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// <inheritdoc/>\n        /// 与字段 <see cref=\"ComponentAccessToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。与字段 <see cref=\"AccessToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string? ComponentAccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置进件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string? SubMerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义进件单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string NotifyUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置进件渠道列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channels\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channels\")]\n        public IList<string> ChannelList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置商户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_type\")]\n        public int MerchantType { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_name\")]\n        public string MerchantName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户简称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_short_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_short_name\")]\n        public string MerchantShortName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"province_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"province_code\")]\n        public string ProvinceCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置城市编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"city_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"city_code\")]\n        public string CityCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置区县编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"district_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"district_code\")]\n        public string DistrictCode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置注册地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_addr\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_addr\")]\n        public string RegisteredAddress { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营业执照信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_license\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_license\")]\n        public Types.BusinessLicense BusinessLicense { get; set; } = new Types.BusinessLicense();\n\n        /// <summary>\n        /// 获取或设置法人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"legal_person\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"legal_person\")]\n        public Types.LegalPerson LegalPerson { get; set; } = new Types.LegalPerson();\n\n        /// <summary>\n        /// 获取或设置结算账户信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_card_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_card_info\")]\n        public Types.MerchantCardInfo MerchantCardInfo { get; set; } = new Types.MerchantCardInfo();\n\n        /// <summary>\n        /// 获取或设置商户管理员信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_operation_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_operation_info\")]\n        public Types.MerchantOperationInfo MerchantOperationInfo { get; set; } = new Types.MerchantOperationInfo();\n\n        /// <summary>\n        /// 获取或设置行业编码列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_code\")]\n        public IList<string> IndustryCodeList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置补充材料图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ext_evidences\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ext_evidences\")]\n        public IList<string>? ExtendedEvidenceImageIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置行业资质图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"industry_info_pic_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"industry_info_pic_urls\")]\n        public IList<string>? IndustryInfoPictureImageIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_name\")]\n        public string CreateName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置受益人类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"beneficiary_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"beneficiary_type\")]\n        public string? BeneficiaryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置受益人信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"beneficiary\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"beneficiary\")]\n        public Types.Beneficiary? Beneficiary { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSCreateMerchantResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/create_merchant 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSCreateMerchantResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置申请单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"apply_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"apply_id\")]\n        public string ApplyId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSImageUploadRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/image_upload 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSImageUploadRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序 AppId。与字段 <see cref=\"ComponentAppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。与字段 <see cref=\"AppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// <inheritdoc/>\n        /// 与字段 <see cref=\"ComponentAccessToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。与字段 <see cref=\"AccessToken\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string? ComponentAccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_type\")]\n        public string ImageType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_content\")]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSImageUploadResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/image_upload 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSImageUploadResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置图片 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n        public string ImageId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSQueryMerchantStatusRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_status 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantStatusRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。与字段 <see cref=\"AppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序的 AppId。与字段 <see cref=\"ComponentAppId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string? SubMerchantId { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSQueryMerchantStatusResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_status 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantStatusResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class MerchantStatusInfo\n            {\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人验证页面 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"legal_validation_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"legal_validation_url\")]\n                public string? LegalPersonValidationUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人签名页面 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"legal_sign_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"legal_sign_url\")]\n                public string? LegalPersonSignUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                public string? RejectReason { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置抖音信息主体渠道进件状态信息字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_status_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_status_info\")]\n        public IDictionary<string, Types.MerchantStatusInfo>? MerchantStatusInfoMap { get; set; }\n\n        /// <summary>\n        /// 获取或设置光合信号主体渠道进件状态信息字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"new_merchant_status_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"new_merchant_status_info\")]\n        public IDictionary<string, Types.MerchantStatusInfo>? NewMerchantStatusInfoMap { get; set; }\n\n        /// <summary>\n        /// 获取或设置担保支付企业版渠道进件状态信息字典。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_status_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_status_info\")]\n        public IDictionary<string, Types.MerchantStatusInfo>? PayStatusInfoMap { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddMerchantRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/add_merchant 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddMerchantRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_component_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_component_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string ComponentAccessToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddMerchantResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/add_merchant 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddMerchantResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置请求页面链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string Url { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddSubMerchantRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/add_sub_merchant 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddSubMerchantRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string SubMerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddSubMerchantResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/add_sub_merchant 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAddSubMerchantResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置请求页面链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string Url { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAppAddSubMerchantRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/app_add_sub_merchant 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSAppAddSubMerchantRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序的 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置子商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_merchant_id\")]\n        public string SubMerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAppAddSubMerchantResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/app_add_sub_merchant 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSAppAddSubMerchantResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置请求页面链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string Url { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSGetAppMerchantRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/get_app_merchant 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSGetAppMerchantRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置第三方平台 AccessToken。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_access_token\")]\n        public string ComponentAccessToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置小程序的 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string AppId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 URL 类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url_type\")]\n        public int UrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSGetAppMerchantResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/get_app_merchant 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSGetAppMerchantResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置请求页面链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n        public string Url { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_id\")]\n        public string MerchantId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/merchant_withdraw 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSMerchantWithdrawRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户主体标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n        public int? MerchantEntity { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"withdraw_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"withdraw_amount\")]\n        public int WithdrawAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户提现单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"callback_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"callback_url\")]\n        public string? NotifyUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/merchant_withdraw 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSMerchantWithdrawResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置平台提现单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_balance 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantBalanceRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户主体标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_entity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_entity\")]\n        public int? MerchantEntity { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_merchant_balance 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryMerchantBalanceResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Account\n            {\n                /// <summary>\n                /// 获取或设置在途余额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"online_balance\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"online_balance\")]\n                public int OnlineBalance { get; set; }\n\n                /// <summary>\n                /// 获取或设置可提现余额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"withdrawable_balacne\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"withdrawable_balacne\")]\n                public int WithdrawableBalance { get; set; }\n\n                /// <summary>\n                /// 获取或设置冻结准备金余额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"freeze_balance\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"freeze_balance\")]\n                public int FreezeBalance { get; set; }\n            }\n\n            public class Settlement\n            {\n                /// <summary>\n                /// 获取或设置结算类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_type\")]\n                public int SettleType { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付宝账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_account\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_account\")]\n                public string SettleAccount { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置银行卡号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bankcard_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bankcard_no\")]\n                public string BankCardNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置银行名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bank_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bank_name\")]\n                public string BankName { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置余额信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_info\")]\n        public Types.Account Account { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置结算信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_info\")]\n        public Types.Settlement Settlement { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_withdraw_order 接口的请求。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryWithdrawOrderRequest : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置小程序第三方平台应用 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"thirdparty_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"thirdparty_id\")]\n        public string? ComponentAppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商户号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n        public string MerchantId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置提现渠道。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"channel_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"channel_type\")]\n        public string ChannelType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商户提现单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_id\")]\n        public string OutOrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sign\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sign\")]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/ecpay/saas/query_withdraw_order 接口的响应。</para>\n    /// </summary>\n    public class AppsECPaySaaSQueryWithdrawOrderResponse : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置提现状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string Status { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置提现状态描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status_msg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status_msg\")]\n        public string StatusMessage { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletAddCoinRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/add_coin 接口的请求。</para>\n    /// </summary>\n    public class AppsGameWalletAddCoinRequest : AppsGameWalletRequestBase\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_no\")]\n        public string BillNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置赠送游戏币的数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"present_counts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"present_counts\")]\n        public int PresentAmount { get; set; }\n\n        protected internal override string GetRequestMethod()\n        {\n            return \"POST\";\n        }\n\n        protected internal override string GetRequestPath()\n        {\n            return \"/api/apps/game/wallet/add_coin\";\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletAddCoinResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/add_coin 接口的响应。</para>\n    /// </summary>\n    public class AppsGameWalletAddCoinResponse : AppsGameWalletResponseBase\n    {\n        /// <summary>\n        /// 获取或设置赠送游戏币的订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_no\")]\n        public string BillNumber { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置赠送后的余额。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"balance\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n        public int Balance { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletGamePayRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/game_pay 接口的请求。</para>\n    /// </summary>\n    public class AppsGameWalletGamePayRequest : AppsGameWalletRequestBase\n    {\n        /// <summary>\n        /// 获取或设置扣除游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"amt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"amt\")]\n        public int Amount { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_no\")]\n        public string BillNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置道具名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_item\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_item\")]\n        public string? PayItem { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_remark\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_remark\")]\n        public string? Remark { get; set; }\n\n        protected internal override string GetRequestMethod()\n        {\n            return \"POST\";\n        }\n\n        protected internal override string GetRequestPath()\n        {\n            return \"/api/apps/game/wallet/game_pay\";\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletGamePayResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/game_pay 接口的响应。</para>\n    /// </summary>\n    public class AppsGameWalletGamePayResponse : AppsGameWalletResponseBase\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bill_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bill_no\")]\n        public string BillNumber { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置预扣后的余额。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"balance\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n        public int Balance { get; set; }\n\n        /// <summary>\n        /// 获取或设置本次扣除赠送的游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"used_gen_amt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"used_gen_amt\")]\n        public int UsedGenAmount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletGetBalanceRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/get_balance 接口的请求。</para>\n    /// </summary>\n    public class AppsGameWalletGetBalanceRequest : AppsGameWalletRequestBase\n    {\n        protected internal override string GetRequestMethod()\n        {\n            return \"POST\";\n        }\n\n        protected internal override string GetRequestPath()\n        {\n            return \"/api/apps/game/wallet/get_balance\";\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/AppsGameWalletGetBalanceResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/game/wallet/get_balance 接口的响应。</para>\n    /// </summary>\n    public class AppsGameWalletGetBalanceResponse : AppsGameWalletResponseBase\n    {\n        /// <summary>\n        /// 获取或设置游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"balance\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n        public int Balance { get; set; }\n\n        /// <summary>\n        /// 获取或设置赠送游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gen_balance\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gen_balance\")]\n        public int GenBalance { get; set; }\n\n        /// <summary>\n        /// 获取或设置累计充值游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"save_amt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"save_amt\")]\n        public int SaveAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置历史总游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"save_sum\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"save_sum\")]\n        public int SaveSum { get; set; }\n\n        /// <summary>\n        /// 获取或设置历史总消费游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cost_sum\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cost_sum\")]\n        public int CostSum { get; set; }\n\n        /// <summary>\n        /// 获取或设置历史累计收到游戏币数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"present_sum\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"present_sum\")]\n        public int PresentSum { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/__Abstractions/AppsGameWalletRequestBase.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    public abstract class AppsGameWalletRequestBase : DouyinMicroAppRequest\n    {\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"appid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"appid\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"openid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"openid\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开始时间字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"zone_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"zone_id\")]\n        public string ZoneId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置平台。\n        /// <para>默认值：\"android\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pf\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pf\")]\n        public string Platform { get; set; } = \"android\";\n\n        /// <summary>\n        /// 获取或设置时间戳。如果不指定将由系统自动生成\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ts\")]\n        public long? Timestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户 IP 地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"user_ip\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"user_ip\")]\n        public string? UserIp { get; set; }\n\n        /// <summary>\n        /// 获取或设置签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"mp_sig\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"mp_sig\")]\n        public string? Signature { get; set; }\n\n        protected internal abstract string GetRequestMethod();\n\n        protected internal abstract string GetRequestPath();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsGame/__Abstractions/AppsGameWalletResponseBase.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    public abstract class AppsGameWalletResponseBase : DouyinMicroAppResponse\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"errcode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"errcode\")]\n        public int ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"errmsg\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"errmsg\")]\n        public override string? ErrorMessage { get; set; }\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorCode == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsStorage/AppsRemoveUserStorageRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/remove_user_storage 接口的请求。</para>\n    /// </summary>\n    public class AppsRemoveUserStorageRequest : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class KeyValue : AppsSetUserStorageRequest.Types.KeyValue\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置键值对列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"kv_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"kv_list\")]\n        public IList<Types.KeyValue> KeyValueList { get; set; } = new List<Types.KeyValue>();\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置会话密钥。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SessionKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SignMethod { get; set; } = \"hmac_sha256\";\n\n        /// <summary>\n        /// 获取或设置请求签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsStorage/AppsRemoveUserStorageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/remove_user_storage 接口的响应。</para>\n    /// </summary>\n    public class AppsRemoveUserStorageResponse : DouyinMicroAppResponse\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsStorage/AppsSetUserStorageRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/set_user_storage 接口的请求。</para>\n    /// </summary>\n    public class AppsSetUserStorageRequest : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class KeyValue\n            {\n                /// <summary>\n                /// 获取或设置键。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"key\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"key\")]\n                public string Key { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public string Value { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置键值对列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"kv_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"kv_list\")]\n        public IList<Types.KeyValue> KeyValueList { get; set; } = new List<Types.KeyValue>();\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置会话密钥。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SessionKey { get; set; } = string.Empty;\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string SignMethod { get; set; } = \"hmac_sha256\";\n\n        /// <summary>\n        /// 获取或设置请求签名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Signature { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsStorage/AppsSetUserStorageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/set_user_storage 接口的响应。</para>\n    /// </summary>\n    public class AppsSetUserStorageResponse : DouyinMicroAppResponse\n    {\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorNumber == 0;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeCreateOrderV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_order 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeCreateOrderV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Goods\n            {\n                public static class Types\n                {\n                    public class OrderValidTime\n                    {\n                        /// <summary>\n                        /// 获取或设置有效期开始时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_start_time\")]\n                        public long? StartTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效期结束时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                        public long? EndTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置有效时长（单位：毫秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"valid_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"valid_duration\")]\n                        public int? Duration { get; set; }\n                    }\n\n                    public class BookingInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置预约类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"book_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"book_type\")]\n                        public int BookType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消政策。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_policy\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_policy\")]\n                        public int? CancelPolicy { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置提前取消的小时限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_advance_hour\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_advance_hour\")]\n                        public int? CancelAdvanceHours { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_id_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id_type\")]\n                public int GoodsIdType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                public string GoodsId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置商品标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_title\")]\n                public string? GoodsTitle { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_image\")]\n                public string? GoodsImageUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置标签列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"labels\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedStringListWithPipeSplitConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"labels\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedStringListWithPipeSplitConverter))]\n                public IList<string>? LabelList { get; set; }\n\n                /// <summary>\n                /// 获取或设置使用规则。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"date_rule\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"date_rule\")]\n                public string? DateRuleText { get; set; }\n\n                /// <summary>\n                /// 获取或设置价格（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public int? Price { get; set; }\n\n                /// <summary>\n                /// 获取或设置折扣金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                public int? DiscountAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"merchant_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"merchant_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品详情页的 Schema。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_page\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_page\")]\n                public MicroAppSchema? GoodsPageSchema { get; set; }\n\n                /// <summary>\n                /// 获取或设置券的有效期。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_valid_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_valid_time\")]\n                public Types.OrderValidTime? OrderValidTime { get; set; }\n\n                /// <summary>\n                /// 获取或设置预约信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_book_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_book_info\")]\n                public Types.BookingInfo? BookingInfo { get; set; }\n            }\n\n            public class PriceCalculationDetail\n            {\n                public static class Types\n                {\n                    public class GoodsDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_discount_amount\")]\n                        public int TotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class ItemDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置商品总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_discount_amount\")]\n                        public int TotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class OrderDiscountDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置订单优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_total_discount_amount\")]\n                        public int OrderTotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品优惠总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_total_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_total_discount_amount\")]\n                        public int GoodsTotalDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销明细列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_detail_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_detail_info\")]\n                        public IList<MarketingDetail>? MarketingDetailList { get; set; }\n                    }\n\n                    public class MarketingDetail\n                    {\n                        /// <summary>\n                        /// 获取或设置营销 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string Id { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置营销类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public int Type { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销子类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtype\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtype\")]\n                        public string? SubType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public int DiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_range\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_range\")]\n                        public int DiscountRange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string? Title { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置营销备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"note\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n                        public string? Notes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public long? Value { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置算价类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"calculation_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"calculation_type\")]\n                public int CalculationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品算价结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods_discount_detail\")]\n                public IList<Types.GoodsDiscountDetail>? GoodsDiscountDetailList { get; set; }\n\n                /// <summary>\n                /// 获取或设置单商品算价结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_discount_detail\")]\n                public IList<Types.ItemDiscountDetail>? ItemDiscountDetailList { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单算价结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_discount_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_discount_detail\")]\n                public Types.OrderDiscountDetail? OrderDiscountDetail { get; set; }\n            }\n\n            public class MicroAppSchema\n            {\n                /// <summary>\n                /// 获取或设置页面路径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"path\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"path\")]\n                public string Path { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置页面参数字符串。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"params\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"params\")]\n                public string? ParamsString { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n        public int TotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置折扣金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n        public int? DiscountAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户的 OpenId。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_list\")]\n        public IList<Types.Goods> GoodsList { get; set; } = new List<Types.Goods>();\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置备注信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"extra\")]\n        public string? Notes { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户姓名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact_name\")]\n        public string? ContactName { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户手机号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_num\")]\n        public string? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置支付超时时间（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pay_expire_seconds\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pay_expire_seconds\")]\n        public int? PayExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单详情页的 Schema。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n        public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n\n        /// <summary>\n        /// 获取或设置营销算价结果信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"price_calculation_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"price_calculation_detail\")]\n        public Types.PriceCalculationDetail? PriceCalculationDetail { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeCreateOrderV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_order 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeCreateOrderV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ItemOrderInfo\n                    {\n                        public static class Types\n                        {\n                            public class ItemOrder\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品价格（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public int Price { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                        public string GoodsId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单号列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id_list\")]\n                        public string[] ItemOrderIdList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n                        public Types.ItemOrder[] ItemOrderList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的支付订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_order_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_order_token\")]\n                public string PayOrderToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单信息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_info_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_info_list\")]\n                public Types.ItemOrderInfo[] ItemOrderInfoList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeQueryCPSV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_cps 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeQueryCPSV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeQueryCPSV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_cps 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeQueryCPSV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Payment\n                    {\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                        public string OrderStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置支付总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_fee\")]\n                        public int TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收款商户号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_uid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_uid\")]\n                        public string? MerchantId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付渠道。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                        public int? PayChannel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置渠道支付单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                        public string? ChannelPayId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                        public string? PayTimeString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置自定义字段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                        public string? Extra { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n                    }\n\n                    public class CPS\n                    {\n                        public static class Types\n                        {\n                            public class CPSItem : TradeBasicDeveloperQueryCPSV1Response.Types.Data.Types.CPSItem\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置佣金总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_commission_amount\")]\n                        public int TotalCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 CPS 信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cps_item_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cps_item_list\")]\n                        public Types.CPSItem[] CPSItemList { get; set; } = default!;\n                    }\n\n                    public class Refund\n                    {\n                        public static class Types\n                        {\n                            public class RefundItem\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置开发者退款单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n                                public string OutRefundNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public int RefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                                public string RefundStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                                public long? RefundTimeMilliseconds { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_refund_amount\")]\n                        public int TotalRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_items\")]\n                        public Types.RefundItem[] RefundItemList { get; set; } = default!;\n                    }\n\n                    public class Delivery\n                    {\n                        public static class Types\n                        {\n                            public class DeliveryItem\n                            {\n                                /// <summary>\n                                /// 获取或设置商品单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                                public string ItemOrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置核销金额（单位：分）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_amount\")]\n                                public int DeliveryAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置核销状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_status\")]\n                                public string Deliverytatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置核销时间毫秒级时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_at\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_at\")]\n                                public long? DeliveryTimeMilliseconds { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置核销总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_delivery_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_delivery_amount\")]\n                        public int TotalDeliveryAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_items\")]\n                        public Types.DeliveryItem[] DeliveryItemList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payment_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payment_info\")]\n                public Types.Payment Payment { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 CPS 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cps_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cps_info\")]\n                public Types.CPS CPS { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退款信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_info\")]\n                public Types.Refund? Refund { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_info\")]\n                public Types.Delivery? Delivery { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeQueryOrderV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_order 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeQueryOrderV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/PreOrder/AppsTradeQueryOrderV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_order 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeQueryOrderV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置支付金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_fee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_fee\")]\n                public int TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置已退款金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                public int RefundAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置已分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收款商户号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_uid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_uid\")]\n                public string? MerchantId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付渠道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_channel\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_channel\")]\n                public int? PayChannel { get; set; }\n\n                /// <summary>\n                /// 获取或设置渠道支付单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"channel_pay_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"channel_pay_id\")]\n                public string? ChannelPayId { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付时间字符串（格式：yyyy-MM-dd HH:mm:ss）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pay_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pay_time\")]\n                public string? PayTimeString { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置结果信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string? ResultMessage { get; set; }\n\n                /// <summary>\n                /// 获取或设置短视频或直播间 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_id\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalStringReadOnlyConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ItemId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置调起收银台的支付订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payment_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payment_order_id\")]\n                public string PayOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置核销类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                public int DeliveryType { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeCreateRefundV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeCreateRefundV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class ItemOrder : TradeBasicDeveloperRefundCreateV1Request.Types.ItemOrder\n            {\n            }\n\n            public class MicroAppSchema : TradeBasicDeveloperRefundCreateV1Request.Types.MicroAppSchema\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退款总金额（单位：分）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n        public int RefundTotalAmount { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n        public IList<Types.ItemOrder>? ItemOrderList { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单详情页的 Schema。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_entry_schema\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_entry_schema\")]\n        public Types.MicroAppSchema? OrderEntrySchema { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeCreateRefundV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeCreateRefundV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置退款单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                public string RefundId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核的最后期限毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_audit_deadline\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_deadline\")]\n                public long AuditDeadlineMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeMerchantAuditCallbackV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/merchant_audit_callback 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeMerchantAuditCallbackV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者退款单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string OutRefundNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置审核状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_audit_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_audit_status\")]\n        public int AuditStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置不同意退款信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deny_message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deny_message\")]\n        public string? DenyMessage { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeMerchantAuditCallbackV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/merchant_audit_callback 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeMerchantAuditCallbackV2Response : DouyinMicroAppResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeQueryRefundV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_refund 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeQueryRefundV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutRefundNumber\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"RefundId\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n        public string? OutRefundNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutRefundNumber\"/> 三选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n        public string? RefundId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Refund/AppsTradeQueryRefundV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_refund 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeQueryRefundV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Refund\n                    {\n                        public static class Types\n                        {\n                            public class ItemOrder : TradeBasicDeveloperRefundQueryV1Response.Types.Data.Types.Refund.Types.ItemOrder\n                            {\n                            }\n\n                            public class MerchantAuditDetail : TradeBasicDeveloperRefundQueryV1Response.Types.Data.Types.Refund.Types.MerchantAuditDetail\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置开发者退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"out_refund_no\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"out_refund_no\")]\n                        public string OutRefundNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_id\")]\n                        public string RefundId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退款总金额（单位：分）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_total_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total_amount\")]\n                        public int RefundTotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_detail\")]\n                        public Types.ItemOrder[]? ItemOrderList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_source\")]\n                        public int? RefundSource { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家审核信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_audit_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_audit_detail\")]\n                        public Types.MerchantAuditDetail? MerchantAuditDetail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款结果信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_at\")]\n                        public long? CreateTimeMilliseconds { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_at\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_at\")]\n                        public long? RefundTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退款列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refund_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refund_list\")]\n                public Types.Refund[] RefundList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Settlement/AppsTradeCreateSettleV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_settle 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeCreateSettleV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class SettleParameter : TradeBasicDeveloperSettleCreateV1Request.Types.SettleParameter\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string OutSettleNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_desc\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_desc\")]\n        public string SettleDescription { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分账参数列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_params\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_params\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public IList<Types.SettleParameter>? SettleParameterList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n        public string? ItemOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回调通知地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"notify_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"notify_url\")]\n        public string? NotifyUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n        public string? Extra { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Settlement/AppsTradeCreateSettleV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/create_settle 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeCreateSettleV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置内部分账单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inner_settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inner_settle_id\")]\n                public string InnerSettleId { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Settlement/AppsTradeQuerySettleV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_settle 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeQuerySettleV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置开发者订单号。与字段 <see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string? OutOrderNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OutSettleNumber\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string? OrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开发者分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"SettleId\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n        public string? OutSettleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分账单号。与字段 <see cref=\"OutOrderNumber\"/>、<see cref=\"OrderId\"/>、<see cref=\"OutSettleNumber\"/> 四选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n        public string? SettleId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/Settlement/AppsTradeQuerySettleV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_settle 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeQuerySettleV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开发者分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_settle_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_settle_no\")]\n                public string OutSettleNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_id\")]\n                public string SettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置内部分账单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inner_settle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inner_settle_id\")]\n                public string InnerSettleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分账单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string? ItemOrderId { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cp_extra\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cp_extra\")]\n                public string? Extra { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账详情。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_detail\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_detail\")]\n                public string SettleDetail { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置手续费（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"rake\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"rake\")]\n                public int RakeFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置佣金金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commission\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commission\")]\n                public int CommissionAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账金额（单位：分）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_amount\")]\n                public int SettleAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置分账时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settle_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settle_time\")]\n                public long? SettleTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryPrepareV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/delivery_prepare 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeDeliveryPrepareV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置从二维码解析出的加密数据。与字段 <see cref=\"Code\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"encrypted_data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_data\")]\n        public string? EncryptedData { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户券码。与字段 <see cref=\"EncryptedData\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string? Code { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryPrepareV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/delivery_prepare 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeDeliveryPrepareV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Certificate\n                    {\n                        /// <summary>\n                        /// 获取或设置加密券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                        public string EncryptedCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                        public string CertificateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置开发者订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n                public string OutOrderNumber { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置验券 Token。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n                public string VerifyToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置可用券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificates\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n                public Types.Certificate[] CertificateList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryVerifyV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/delivery_verify 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeDeliveryVerifyV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Certificate\n            {\n                /// <summary>\n                /// 获取或设置加密券码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"encrypted_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"encrypted_code\")]\n                public string EncryptedCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置券 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certificate_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certificate_id\")]\n                public string CertificateId { get; set; } = string.Empty;\n            }\n\n            public class POIInfo\n            {\n                /// <summary>\n                /// 获取或设置店铺名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shop_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shop_name\")]\n                public string? ShopName { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销门店的外部店铺 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ext_valid_shop_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ext_valid_shop_id\")]\n                public string? ExternalValidShopId { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销门店对应的抖音 POI ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_poi_id_str\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_poi_id_str\")]\n                public string? ValidPOIId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置验券 Token。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"verify_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"verify_token\")]\n        public string VerifyToken { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置券列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certificates\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certificates\")]\n        public IList<Types.Certificate> CertificateList { get; set; } = new List<Types.Certificate>();\n\n        /// <summary>\n        /// 获取或设置商铺 POI 信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.POIInfo? POIInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryVerifyV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/delivery_verify 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeDeliveryVerifyV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置商品单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                        public string ItemOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户券码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"certificate_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"certificate_code\")]\n                        public string CertificateCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置验券结果码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"result_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"result_code\")]\n                        public int ResultCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置验券结果说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"result_msg\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"result_msg\")]\n                        public string? ResultMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置核销时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"verify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"verify_time\")]\n                        public long VerifyTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"verify_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"verify_results\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradePushDeliveryV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/push_delivery 接口的请求。</para>\n    /// </summary>\n    public class AppsTradePushDeliveryV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class ItemOrder\n            {\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string ItemOrderId { get; set; } = string.Empty;\n            }\n\n            public class POIInfo : AppsTradeDeliveryVerifyV2Request.Types.POIInfo\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置开发者订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"out_order_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"out_order_no\")]\n        public string OutOrderNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_list\")]\n        public IList<Types.ItemOrder> ItemOrderList { get; set; } = new List<Types.ItemOrder>();\n\n        /// <summary>\n        /// 获取或设置是否整单核销。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"use_all\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"use_all\")]\n        public bool? IsUseAll { get; set; }\n\n        /// <summary>\n        /// 获取或设置商铺 POI 信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"poi_info\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.StringifiedObjectInJsonFormatConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"poi_info\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.StringifiedObjectInJsonFormatConverter))]\n        public Types.POIInfo? POIInfo { get; set; }\n\n        /// <summary>\n        /// 获取或设置核销状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_status\")]\n        public int? DeliveryStatus { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradePushDeliveryV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/push_delivery 接口的响应。</para>\n    /// </summary>\n    public class AppsTradePushDeliveryV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置核销记录 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_id\")]\n                public string? DeliveryId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeQueryItemOrderInfoV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_item_order_info 接口的请求。</para>\n    /// </summary>\n    public class AppsTradeQueryItemOrderInfoV2Request : DouyinMicroAppRequest\n    {\n        /// <summary>\n        /// 获取或设置订单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品单号列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"item_order_id_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id_list\")]\n        public IList<string>? ItemOrderIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/AppsTrade/WriteOff/AppsTradeQueryItemOrderInfoV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/apps/trade/v2/query_item_order_info 接口的响应。</para>\n    /// </summary>\n    public class AppsTradeQueryItemOrderInfoV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_id\")]\n                public string ItemOrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"item_order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"item_order_status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期开始时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_start_time\")]\n                public long ValidStartTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置有效期结束时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_end_time\")]\n                public long ValidEndTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置核销时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_time\")]\n                public long DeliveryTimeMilliseconds { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data[] Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentDeveloperDeleteRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/developer/delete 接口的请求。</para>\n    /// </summary>\n    public class CommentDeveloperDeleteRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc />\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回复 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reply_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reply_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long ReplyId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentDeveloperDeleteResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/developer/delete 接口的响应。</para>\n    /// </summary>\n    public class CommentDeveloperDeleteResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Reply\n            {\n                /// <summary>\n                /// 获取或设置回复 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reply_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long ReplyId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置回复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reply\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reply\")]\n        public Types.Reply Reply { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentDeveloperReplyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/developer/reply 接口的请求。</para>\n    /// </summary>\n    public class CommentDeveloperReplyRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc />\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置评论 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment_id\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment_id\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public long CommentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置回复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n        public string Text { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentDeveloperReplyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/developer/reply 接口的响应。</para>\n    /// </summary>\n    public class CommentDeveloperReplyResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Reply\n            {\n                /// <summary>\n                /// 获取或设置回复 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reply_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reply_id\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long ReplyId { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置回复内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reply\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reply\")]\n        public Types.Reply Reply { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentOpenGetRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/open/get 接口的请求。</para>\n    /// </summary>\n    public class CommentOpenGetRequest : DouyinMicroAppRequest\n    {\n        /// <inheritdoc />\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置小程序 AppId。如果不指定将使用构造 <see cref=\"DouyinMicroAppClient\"/> 时的 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public string? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品或课程 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n        public string OriginId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置业务线类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"biz_line\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"biz_line\")]\n        public int BusinessLineType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页起始位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"offset\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"offset\")]\n        public int Offset { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：20</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n        public int Limit { get; set; } = 20;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Comment/CommentOpenGetResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/comment/open/get 接口的响应。</para>\n    /// </summary>\n    public class CommentOpenGetResponse : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Comment\n                    {\n                        public static class Types\n                        {\n                            public class User\n                            {\n                                /// <summary>\n                                /// 获取或设置是否匿名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_anonymous\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_anonymous\")]\n                                public bool IsAnonymous { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置脱敏用户名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"scree_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"scree_name\")]\n                                public string? SecretName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置用户头像 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                                public string? AvatarUrl { get; set; }\n                            }\n\n                            public class DeveloperReply\n                            {\n                                /// <summary>\n                                /// 获取或设置评论 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"parent_comment_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"parent_comment_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long ParentCommentId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置回复 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reply_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reply_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long ReplyId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置回复内容。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                public string Text { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置回复时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long CommentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置团购 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"group_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"group_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long? GroupId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user\")]\n                        public Types.User User { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                        public string Text { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置评论图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"imge_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"imge_urls\")]\n                        public string[]? ImageUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Internal.CstDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Internal.CstDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评价的 JSON 格式数据。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ratings\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ratings\")]\n                        public string? RatingJson { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置开发者回复列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"devloper_reply_comments\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"devloper_reply_comments\")]\n                        public Types.DeveloperReply[]? DeveloperReplyList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_list\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Data Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Tags/TagsImageV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/v2/tags/image 接口的请求。</para>\n    /// </summary>\n    public class TagsImageV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Task\n            {\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public string ImageUrl { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置置信度服务或目标列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"targets\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"targets\")]\n        public IList<string> Targets { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置检测任务列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tasks\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n        public IList<Types.Task> TaskList { get; set; } = new List<Types.Task>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Tags/TagsImageV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/v2/tags/image 接口的响应。</para>\n    /// </summary>\n    public class TagsImageV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Result\n            {\n                public static class Types\n                {\n                    public class Predict\n                    {\n                        /// <summary>\n                        /// 获取或设置置信度服务或目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target\")]\n                        public string Target { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置置信度模型或标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"model_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"model_name\")]\n                        public string ModelName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置置信度概率（范围：0～1）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prob\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prob\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Probability { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置检测结果状态码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int Code { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测结果消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n                public string? Message { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测数据 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_id\")]\n                public string? DataId { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置置信度列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"predicts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"predicts\")]\n                public Types.Predict[] PredictList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置错误代码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public int ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置错误 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_id\")]\n        public string? ErrorId { get; set; }\n\n        /// <summary>\n        /// 获取或设置检测结果列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Result[] ResultList { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorCode == 0 && string.IsNullOrEmpty(ErrorId);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Tags/TagsTextAntiDirtV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/v2/tags/text/antidirt 接口的请求。</para>\n    /// </summary>\n    public class TagsTextAntiDirtV2Request : DouyinMicroAppRequest\n    {\n        public static class Types\n        {\n            public class Task\n            {\n                /// <summary>\n                /// 获取或设置文本内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                public string Content { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置检测任务列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tasks\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tasks\")]\n        public IList<Types.Task> TaskList { get; set; } = new List<Types.Task>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Models/_Legacy/Tags/TagsTextAntiDirtV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /api/v2/tags/text/antidirt 接口的响应。</para>\n    /// </summary>\n    public class TagsTextAntiDirtV2Response : DouyinMicroAppResponse\n    {\n        public static class Types\n        {\n            public class Result\n            {\n                public static class Types\n                {\n                    public class Predict\n                    {\n                        /// <summary>\n                        /// 获取或设置置信度服务或目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target\")]\n                        public string Target { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置置信度模型或标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"model_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"model_name\")]\n                        public string ModelName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置置信度概率（范围：0～1）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"prob\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"prob\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Probability { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置置信度结果。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hit\")]\n                        public bool IsHit { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置检测结果状态码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int Code { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测结果消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"msg\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"msg\")]\n                public string? Message { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测数据 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_id\")]\n                public string? DataId { get; set; }\n\n                /// <summary>\n                /// 获取或设置检测任务 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"task_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"task_id\")]\n                public string TaskId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置置信度列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"predicts\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"predicts\")]\n                public Types.Predict[] PredictList { get; set; } = default!;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置错误代码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public int ErrorCode { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public override string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取或设置错误 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_id\")]\n        public string? ErrorId { get; set; }\n\n        /// <summary>\n        /// 获取或设置检测结果列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public Types.Result[] ResultList { get; set; } = default!;\n\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && ErrorCode == 0 && string.IsNullOrEmpty(ErrorId);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.MicroApp\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.MicroApp.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.MicroApp) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n基于 `Flurl.Http` 的抖音小程序开放平台 HTTP API SDK。\n\n---\n\n### 【功能特性】\n\n-   基于抖音小程序开放平台 API 封装。\n-   提供了抖音小程序所需的 RSA、AES、MD5、SHA-1、HMAC-SHA-256 等算法工具类。\n-   提供了解析回调通知事件等扩展方法。\n-   配合 [SKIT.FlurlHttpClient.ByteDance.DouyinOpen](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.DouyinOpen) 模块，可无缝对接抖音开放平台。\n\n---\n\n### 【开发文档】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)。\n\n---\n\n### 【更新日志】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md)。\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/SKIT.FlurlHttpClient.ByteDance.MicroApp.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n        <TargetFrameworks>net462; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>10.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.MicroApp</PackageId>\n\t\t<PackageIcon>LOGO.png</PackageIcon>\n\t\t<PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance MicroApp 字节 字节跳动 头条 今日头条 抖音 字节小程序 字节跳动小程序 头条小程序 今日头条小程序 抖音小程序</PackageTags>\n        <Version>3.7.0</Version>\n        <Description>基于 Flurl.Http 的抖音小程序开放平台 API 客户端，支持小程序、小游戏、服务商平台、泛知识课程库、泛知识角色系统、直播小玩法等接口。</Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n    </PropertyGroup>\n\n\t<PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n\t\t<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n\t\t<Deterministic>true</Deterministic>\n\t\t<EmbedUntrackedSources>true</EmbedUntrackedSources>\n\t\t<GenerateDocumentationFile>true</GenerateDocumentationFile>\n\t\t<IncludeSymbols>true</IncludeSymbols>\n\t\t<SymbolPackageFormat>snupkg</SymbolPackageFormat>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n\t\t<None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n\t</ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"BouncyCastle.Cryptography\" Version=\"2.6.1\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"3.1.1\" />\n\t</ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.AppId\"/> 的副本。\n        /// </summary>\n        public string AppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.PushToken\"/> 的副本。\n        /// </summary>\n        public string? PushToken { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.PushEncodingAESKey\"/> 的副本。\n        /// </summary>\n        public string? PushEncodingAESKey { get; set; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.AppKeyVersion\"/> 的副本。\n        /// </summary>\n        public string? AppKeyVersion { get; set; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.AppPrivateKey\"/> 的副本。\n        /// </summary>\n        public string? AppPrivateKey { get; set; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"DouyinMicroAppClientOptions.ECPaySalt\"/> 的副本。\n        /// </summary>\n        public string? ECPaySalt { get; }\n\n        internal Credentials(DouyinMicroAppClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppId = options.AppId;\n            AppSecret = options.AppSecret;\n            PushToken = options.PushToken;\n            PushEncodingAESKey = options.PushEncodingAESKey;\n            AppKeyVersion = options.AppKeyVersion;\n            AppPrivateKey = options.AppPrivateKey;\n            ECPaySalt = options.ECPaySalt;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/AESUtility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// AES 算法工具类。\n    /// </summary>\n    public static class AESUtility\n    {\n        /// <summary>\n        /// 基于 CBC 模式解密数据。\n        /// </summary>\n        /// <param name=\"keyBytes\">AES 密钥字节数组。</param>\n        /// <param name=\"ivBytes\">初始化向量字节数组。</param>\n        /// <param name=\"cipherBytes\">待解密数据字节数组。</param>\n        /// <returns>解密后的数据字节数组。</returns>\n        public static byte[] DecryptWithCBC(byte[] keyBytes, byte[] ivBytes, byte[] cipherBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (ivBytes is null) throw new ArgumentNullException(nameof(ivBytes));\n            if (cipherBytes is null) throw new ArgumentNullException(nameof(cipherBytes));\n\n            using (SymmetricAlgorithm aes = Aes.Create())\n            {\n                aes.Mode = CipherMode.CBC;\n                aes.Padding = PaddingMode.PKCS7;\n                aes.Key = keyBytes;\n                aes.IV = ivBytes;\n\n                using ICryptoTransform transform = aes.CreateDecryptor();\n                return transform.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length);\n            }\n        }\n\n        /// <summary>\n        /// 基于 CBC 模式解密数据。\n        /// </summary>\n        /// <param name=\"encodingKey\">经过编码后的（通常为 Base64）AES 密钥。</param>\n        /// <param name=\"encodingIV\">经过编码后的（通常为 Base64）初始化向量。</param>\n        /// <param name=\"encodingCipher\">经过编码后的（通常为 Base64）待解密数据。</param>\n        /// <returns>解密后的数据。</returns>\n        public static EncodedString DecryptWithCBC(EncodedString encodingKey, EncodedString encodingIV, EncodedString encodingCipher)\n        {\n            if (encodingKey.Value is null) throw new ArgumentNullException(nameof(encodingKey));\n            if (encodingIV.Value is null) throw new ArgumentNullException(nameof(encodingIV));\n            if (encodingCipher.Value is null) throw new ArgumentNullException(nameof(encodingCipher));\n\n            byte[] plainBytes = DecryptWithCBC(\n                keyBytes: EncodedString.FromString(encodingKey, fallbackEncodingKind: EncodingKinds.Base64),\n                ivBytes: EncodedString.FromString(encodingIV, fallbackEncodingKind: EncodingKinds.Base64),\n                cipherBytes: EncodedString.FromString(encodingCipher, fallbackEncodingKind: EncodingKinds.Base64)\n            );\n            return EncodedString.ToLiteralString(plainBytes);\n        }\n\n        /// <summary>\n        /// 基于 CBC 模式加密数据。\n        /// </summary>\n        /// <param name=\"keyBytes\">AES 密钥字节数组。</param>\n        /// <param name=\"ivBytes\">初始化向量字节数组。</param>\n        /// <param name=\"plainBytes\">待加密数据字节数组。</param>\n        /// <returns>加密后的数据字节数组。</returns>\n        public static byte[] EncryptWithCBC(byte[] keyBytes, byte[] ivBytes, byte[] plainBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (ivBytes is null) throw new ArgumentNullException(nameof(ivBytes));\n            if (plainBytes is null) throw new ArgumentNullException(nameof(plainBytes));\n\n            using (SymmetricAlgorithm aes = Aes.Create())\n            {\n                aes.Mode = CipherMode.CBC;\n                aes.Padding = PaddingMode.PKCS7;\n                aes.Key = keyBytes;\n                aes.IV = ivBytes;\n\n                using ICryptoTransform transform = aes.CreateEncryptor();\n                return transform.TransformFinalBlock(plainBytes, 0, plainBytes.Length);\n            }\n        }\n\n        /// <summary>\n        /// 基于 CBC 模式加密数据。\n        /// </summary>\n        /// <param name=\"encodingKey\">经过编码后的（通常为 Base64）AES 密钥。</param>\n        /// <param name=\"encodingIV\">经过编码后的（通常为 Base64）初始化向量。</param>\n        /// <param name=\"plainData\">待加密数据。</param>\n        /// <returns>经过 Base64 编码的加密后的数据。</returns>\n        public static EncodedString EncryptWithCBC(EncodedString encodingKey, EncodedString encodingIV, string plainData)\n        {\n            if (encodingKey.Value is null) throw new ArgumentNullException(nameof(encodingKey));\n            if (encodingIV.Value is null) throw new ArgumentNullException(nameof(encodingIV));\n            if (plainData is null) throw new ArgumentNullException(nameof(plainData));\n\n            byte[] plainBytes = EncryptWithCBC(\n                keyBytes: EncodedString.FromString(encodingKey, fallbackEncodingKind: EncodingKinds.Base64),\n                ivBytes: EncodedString.FromString(encodingIV, fallbackEncodingKind: EncodingKinds.Base64),\n                plainBytes: EncodedString.FromLiteralString(plainData)\n            );\n            return EncodedString.ToBase64String(plainBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/HMACUtility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// HMAC 算法工具类。\n    /// </summary>\n    public static class HMACUtility\n    {\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"keyBytes\">密钥字节数组。</param>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] HashWithSHA256(byte[] keyBytes, byte[] messageBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return HMACSHA256.HashData(keyBytes, messageBytes);\n#else\n            using HMAC hmac = new HMACSHA256(keyBytes);\n            return hmac.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"key\">密钥。</param>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString HashWithSHA256(string key, string messageData)\n        {\n            if (key is null) throw new ArgumentNullException(nameof(key));\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] keyBytes = EncodedString.FromLiteralString(key);\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = HashWithSHA256(keyBytes, messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/MD5Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// MD5 算法工具类。\n    /// </summary>\n    public static class MD5Utility\n    {\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return MD5.HashData(messageBytes);\n#else\n            using MD5 md5 = MD5.Create();\n            return md5.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/RSAUtility.cs",
    "content": "using System;\nusing System.IO;\nusing System.Security.Cryptography;\nusing System.Text.RegularExpressions;\nusing Org.BouncyCastle.Crypto;\nusing Org.BouncyCastle.Crypto.Parameters;\nusing Org.BouncyCastle.OpenSsl;\nusing Org.BouncyCastle.Security;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// RSA 算法工具类。\n    /// </summary>\n    public static class RSAUtility\n    {\n        /// <summary>\n        /// 签名算法：SHA-256withRSA。\n        /// </summary>\n        private const string DIGEST_ALGORITHM_SHA256 = \"SHA-256withRSA\";\n\n        private static byte[] ConvertPrivateKeyPemToByteArray(string privateKeyPem)\n        {\n            const string PKCS8_HEADER = \"-----BEGIN PRIVATE KEY-----\";\n            const string PKCS8_FOOTER = \"-----END PRIVATE KEY-----\";\n\n            if (!privateKeyPem.StartsWith(PKCS8_HEADER))\n            {\n                using (TextReader textReader = new StringReader(privateKeyPem))\n                using (PemReader pemReader = new PemReader(textReader))\n                {\n                    object pemObject = pemReader.ReadObject();\n\n                    if (pemObject is AsymmetricCipherKeyPair)\n                    {\n                        // PKCS#1 格式\n                        AsymmetricCipherKeyPair cipherKeyPair = (AsymmetricCipherKeyPair)pemObject;\n                        using (TextWriter textWriter = new StringWriter())\n                        using (PemWriter pemWriter = new PemWriter(textWriter))\n                        {\n                            Pkcs8Generator pkcs8 = new Pkcs8Generator(cipherKeyPair.Private);\n                            pemWriter.WriteObject(pkcs8);\n                            pemWriter.Writer.Close();\n\n                            privateKeyPem = textWriter.ToString()!;\n                        }\n                    }\n                    else if (pemObject is RsaPrivateCrtKeyParameters)\n                    {\n                        // PKCS#8 格式\n                    }\n                    else\n                    {\n                        throw new NotSupportedException(\"Private key format is not supported.\");\n                    }\n                }\n            }\n\n            privateKeyPem = privateKeyPem\n                .Replace(PKCS8_HEADER, string.Empty)\n                .Replace(PKCS8_FOOTER, string.Empty);\n            privateKeyPem = Regex.Replace(privateKeyPem, \"\\\\s+\", string.Empty);\n            return Convert.FromBase64String(privateKeyPem);\n        }\n\n        private static byte[] ConvertPublicKeyPemToByteArray(string publicKeyPem)\n        {\n            const string PKCS8_HEADER = \"-----BEGIN PUBLIC KEY-----\";\n            const string PKCS8_FOOTER = \"-----END PUBLIC KEY-----\";\n\n            if (!publicKeyPem.StartsWith(PKCS8_HEADER))\n            {\n                using (TextReader textReader = new StringReader(publicKeyPem))\n                using (PemReader pemReader = new PemReader(textReader))\n                {\n                    object pemObject = pemReader.ReadObject();\n                    if (pemObject is RsaKeyParameters)\n                    {\n                        // PKCS#1 或 PKCS#8 格式\n                        RsaKeyParameters rsaKeyParams = (RsaKeyParameters)pemObject;\n                        using (TextWriter textWriter = new StringWriter())\n                        using (PemWriter pemWriter = new PemWriter(textWriter))\n                        {\n                            pemWriter.WriteObject(rsaKeyParams);\n                            pemWriter.Writer.Close();\n\n                            publicKeyPem = textWriter.ToString()!;\n                        }\n                    }\n                    else\n                    {\n                        throw new NotSupportedException(\"Public key format is not supported.\");\n                    }\n                }\n            }\n\n            publicKeyPem = publicKeyPem\n                .Replace(PKCS8_HEADER, string.Empty)\n                .Replace(PKCS8_FOOTER, string.Empty);\n            publicKeyPem = Regex.Replace(publicKeyPem, \"\\\\s+\", string.Empty);\n            return Convert.FromBase64String(publicKeyPem);\n        }\n\n#if NET5_0_OR_GREATER\n#else\n        private static RsaKeyParameters ParsePrivateKeyToParameters(byte[] privateKeyBytes)\n        {\n            return (RsaKeyParameters)PrivateKeyFactory.CreateKey(privateKeyBytes);\n        }\n\n        private static RsaKeyParameters ParsePublicKeyToParameters(byte[] publicKeyBytes)\n        {\n            return (RsaKeyParameters)PublicKeyFactory.CreateKey(publicKeyBytes);\n        }\n\n        private static byte[] Sign(RsaKeyParameters rsaPrivateKeyParams, byte[] messageBytes, string algorithm)\n        {\n            ISigner signer = SignerUtilities.GetSigner(algorithm);\n            signer.Init(true, rsaPrivateKeyParams);\n            signer.BlockUpdate(messageBytes, 0, messageBytes.Length);\n            return signer.GenerateSignature();\n        }\n\n        private static bool Verify(RsaKeyParameters rsaPublicKeyParams, byte[] messageBytes, byte[] signBytes, string algorithm)\n        {\n            ISigner signer = SignerUtilities.GetSigner(algorithm);\n            signer.Init(false, rsaPublicKeyParams);\n            signer.BlockUpdate(messageBytes, 0, messageBytes.Length);\n            return signer.VerifySignature(signBytes);\n        }\n#endif\n\n        /// <summary>\n        /// 使用私钥基于 SHA-256 算法生成签名。\n        /// </summary>\n        /// <param name=\"privateKeyBytes\">PKCS#8 私钥字节数组。</param>\n        /// <param name=\"messageBytes\">待签名的数据字节数组。</param>\n        /// <returns>签名字节数组。</returns>\n        public static byte[] SignWithSHA256(byte[] privateKeyBytes, byte[] messageBytes)\n        {\n            if (privateKeyBytes is null) throw new ArgumentNullException(nameof(privateKeyBytes));\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            using (RSA rsa = RSA.Create())\n            {\n                rsa.ImportPkcs8PrivateKey(privateKeyBytes, out _);\n                return rsa.SignData(messageBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);\n            }\n#else\n            RsaKeyParameters rsaPrivateKeyParams = ParsePrivateKeyToParameters(privateKeyBytes);\n            return Sign(rsaPrivateKeyParams, messageBytes, DIGEST_ALGORITHM_SHA256);\n#endif\n        }\n\n        /// <summary>\n        /// 使用私钥基于 SHA-256 算法生成签名。\n        /// </summary>\n        /// <param name=\"privateKeyPem\">PKCS#1/PKCS#8 私钥（PEM 格式）。</param>\n        /// <param name=\"messageData\">待签名的数据。</param>\n        /// <returns>经过 Base64 编码的签名。</returns>\n        public static EncodedString SignWithSHA256(string privateKeyPem, string messageData)\n        {\n            if (privateKeyPem is null) throw new ArgumentNullException(nameof(privateKeyPem));\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] privateKeyBytes = ConvertPrivateKeyPemToByteArray(privateKeyPem);\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] signBytes = SignWithSHA256(privateKeyBytes, messageBytes);\n            return EncodedString.ToBase64String(signBytes);\n        }\n\n        /// <summary>\n        /// 使用公钥基于 SHA-256 算法验证签名。\n        /// </summary>\n        /// <param name=\"publicKeyBytes\">PKCS#8 公钥字节数组。</param>\n        /// <param name=\"messageBytes\">待验证的数据字节数组。</param>\n        /// <param name=\"signBytes\">签名字节数组。</param>\n        /// <returns>验证结果。</returns>\n        public static bool VerifyWithSHA256(byte[] publicKeyBytes, byte[] messageBytes, byte[] signBytes)\n        {\n            if (publicKeyBytes is null) throw new ArgumentNullException(nameof(publicKeyBytes));\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n            if (signBytes is null) throw new ArgumentNullException(nameof(signBytes));\n\n#if NET5_0_OR_GREATER\n            using (RSA rsa = RSA.Create())\n            {\n                rsa.ImportSubjectPublicKeyInfo(publicKeyBytes, out _);\n                return rsa.VerifyData(messageBytes, signBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);\n            }\n#else\n            RsaKeyParameters rsaPublicKeyParams = ParsePublicKeyToParameters(publicKeyBytes);\n            return Verify(rsaPublicKeyParams, messageBytes, signBytes, DIGEST_ALGORITHM_SHA256);\n#endif\n        }\n\n        /// <summary>\n        /// 使用公钥基于 SHA-256 算法验证签名。\n        /// </summary>\n        /// <param name=\"publicKeyPem\">PKCS#1/PKCS#8 公钥（PEM 格式）。</param>\n        /// <param name=\"messageData\">待验证的数据。</param>\n        /// <param name=\"encodingSignature\">经过编码后的（通常为 Base64）签名。</param>\n        /// <returns>验证结果。</returns>\n        public static bool VerifyWithSHA256(string publicKeyPem, string messageData, EncodedString encodingSignature)\n        {\n            if (publicKeyPem is null) throw new ArgumentNullException(nameof(publicKeyPem));\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n            if (encodingSignature.Value is null) throw new ArgumentNullException(nameof(encodingSignature));\n\n            byte[] publicKeyBytes = ConvertPublicKeyPemToByteArray(publicKeyPem);\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] signBytes = EncodedString.FromString(encodingSignature, fallbackEncodingKind: EncodingKinds.Base64);\n            return VerifyWithSHA256(publicKeyBytes, messageBytes, signBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/SHA1Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// SHA-1 算法工具类。\n    /// </summary>\n    public static class SHA1Utility\n    {\n        /// <summary>\n        /// 计算 SHA-1 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return SHA1.HashData(messageBytes);\n#else\n            using SHA1 sha1 = SHA1.Create();\n            return sha1.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 SHA-1 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/[Internal]/DyMsgCryptor.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Net;\nusing System.Security.Cryptography;\nusing System.Text;\nusing System.Xml;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    internal static class DyMsgCryptor\n    {\n        private const int AES_KEY_SIZE = 256;\n        private const int AES_BLOCK_SIZE = 128;\n\n        private static byte[] Decode2(byte[] decryptedBytes)\n        {\n            if (decryptedBytes is null) throw new ArgumentNullException(nameof(decryptedBytes));\n\n            int pad = (int)decryptedBytes[decryptedBytes.Length - 1];\n            if (pad < 1 || pad > 32)\n            {\n                pad = 0;\n            }\n\n            byte[] res = new byte[decryptedBytes.Length - pad];\n            Array.Copy(decryptedBytes, 0, res, 0, decryptedBytes.Length - pad);\n            return res;\n        }\n\n        private static byte[] AESDecrypt(byte[] keyBytes, byte[] ivBytes, byte[] cipherBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (ivBytes is null) throw new ArgumentNullException(nameof(ivBytes));\n            if (cipherBytes is null) throw new ArgumentNullException(nameof(cipherBytes));\n\n            using var aes = Aes.Create();\n            aes.KeySize = AES_KEY_SIZE;\n            aes.BlockSize = AES_BLOCK_SIZE;\n            aes.Mode = CipherMode.CBC;\n            aes.Padding = PaddingMode.None;\n            aes.Key = keyBytes;\n            aes.IV = ivBytes;\n\n            using (var decryptor = aes.CreateDecryptor(aes.Key, aes.IV))\n            using (var ms = new MemoryStream())\n            using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write))\n            {\n                byte[] msgBytes = new byte[cipherBytes.Length + 32 - cipherBytes.Length % 32];\n                Array.Copy(cipherBytes, msgBytes, cipherBytes.Length);\n                cs.Write(cipherBytes, 0, cipherBytes.Length);\n\n                byte[] plainBytes = Decode2(ms.ToArray());\n                return plainBytes;\n            }\n        }\n\n        public static string AESDecrypt(string cipherText, string encodingAESKey, out string appId)\n        {\n            if (cipherText is null) throw new ArgumentNullException(nameof(cipherText));\n            if (encodingAESKey is null) throw new ArgumentNullException(nameof(encodingAESKey));\n\n            byte[] cipherBytes = Convert.FromBase64String(cipherText);\n            byte[] keyBytes = Convert.FromBase64String(encodingAESKey + \"=\");\n            byte[] ivBytes = new byte[16];\n            Array.Copy(keyBytes, ivBytes, 16);\n            byte[] btmpMsg = AESDecrypt(cipherBytes: cipherBytes, ivBytes: ivBytes, keyBytes: keyBytes);\n\n            int len = BitConverter.ToInt32(btmpMsg, 32);\n            len = IPAddress.NetworkToHostOrder(len);\n\n            byte[] bMsg = new byte[len];\n            byte[] bAppId = new byte[btmpMsg.Length - 36 - len];\n            Array.Copy(btmpMsg, 36, bMsg, 0, len);\n            Array.Copy(btmpMsg, 36 + len, bAppId, 0, bAppId.Length);\n\n            appId = Encoding.UTF8.GetString(bAppId);\n            return Encoding.UTF8.GetString(bMsg);\n        }\n\n        public static bool VerifySignature(string sToken, string sTimestamp, string sNonce, string sMsgEncrypt, string sMsgSign)\n        {\n            if (sToken is null) throw new ArgumentNullException(nameof(sToken));\n            if (sTimestamp is null) throw new ArgumentNullException(nameof(sTimestamp));\n            if (sNonce is null) throw new ArgumentNullException(nameof(sNonce));\n            if (sMsgEncrypt is null) throw new ArgumentNullException(nameof(sMsgEncrypt));\n            if (sMsgSign is null) throw new ArgumentNullException(nameof(sMsgSign));\n\n            string expectedSign = GenerateSignature(sToken, sTimestamp, sNonce, sMsgEncrypt);\n            return string.Equals(expectedSign, sMsgSign, StringComparison.OrdinalIgnoreCase);\n        }\n\n        public static string GenerateSignature(string sToken, string sTimestamp, string sNonce, string sMsgEncrypt)\n        {\n            if (sToken is null) throw new ArgumentNullException(nameof(sToken));\n            if (sTimestamp is null) throw new ArgumentNullException(nameof(sTimestamp));\n            if (sNonce is null) throw new ArgumentNullException(nameof(sNonce));\n            if (sMsgEncrypt is null) throw new ArgumentNullException(nameof(sMsgEncrypt));\n\n            List<string> tmp = new List<string>(capacity: 4) { sToken, sTimestamp, sNonce, sMsgEncrypt };\n            tmp.Sort(StringComparer.Ordinal);\n\n            string rawText = string.Concat(tmp);\n            string signText = SHA1Utility.Hash(rawText).Value!;\n            return signText.ToLower();\n        }\n\n        public static bool TryParseXml(string xml, out string encryptedMsg)\n        {\n            if (xml is null) throw new ArgumentNullException(nameof(xml));\n\n            encryptedMsg = string.Empty;\n\n            try\n            {\n                XmlDocument xmlDoc = new XmlDocument();\n                xmlDoc.XmlResolver = null!;\n                xmlDoc.LoadXml(xml);\n\n                XmlNode? xmlRoot = xmlDoc.FirstChild;\n                if (xmlRoot is null)\n                    return false;\n\n                encryptedMsg = xmlRoot[\"Encrypt\"]?.InnerText?.ToString() ?? string.Empty;\n\n                return !string.IsNullOrEmpty(encryptedMsg);\n            }\n            catch (XmlException)\n            {\n                return false;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/[Internal]/HttpContentBuilder.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Web;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient;\n\n    internal static class HttpContentBuilder\n    {\n        public static MultipartFormDataContent BuildWithFile(string fileName, byte[] fileBytes, string? fileContentType, string formDataName, Action<HttpContent>? configureFileHttpContent = null)\n        {\n            if (fileName is null) throw new ArgumentNullException(nameof(fileName));\n            if (formDataName is null) throw new ArgumentNullException(nameof(formDataName));\n\n            fileName = fileName.Replace(\"\\\"\", \"\");\n            fileBytes = fileBytes ?? Array.Empty<byte>();\n            fileContentType = string.IsNullOrEmpty(fileContentType) ? MimeTypes.Binary : fileContentType;\n            formDataName = formDataName.Replace(\"\\\"\", \"\");\n\n            ByteArrayContent fileContent = new ByteArrayContent(fileBytes);\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(fileContentType);\n            configureFileHttpContent?.Invoke(fileContent);\n\n            string boundary = \"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\");\n            MultipartFormDataContent httpContent = new MultipartFormDataContent(boundary);\n            httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse($\"{MimeTypes.FormData}; boundary={boundary}\");\n            httpContent.Add(fileContent, $\"\\\"{formDataName}\\\"\", $\"\\\"{HttpUtility.UrlEncode(fileName)}\\\"\");\n            return httpContent;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.MicroApp/Utilities/[Internal]/XmlHelper.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.Utilities\n{\n    using SKIT.FlurlHttpClient.Internal;\n\n    internal static class XmlHelper\n    {\n        public static object Deserialize(string xml, Type type)\n        {\n            return _XmlSimpleSerializer.Deserialize(xml, type);\n        }\n\n        public static T Deserialize<T>(string xml)\n           where T : class\n        {\n            return (T)Deserialize(xml, typeof(T));\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteAdvertiserExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteAdvertiserExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710509559820 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserInfoResponse> ExecuteAdvertiserInfoAsync(this OceanEngineClient client, Models.AdvertiserInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"info\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/public_info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710511950860 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserPublicInfoResponse> ExecuteAdvertiserPublicInfoAsync(this OceanEngineClient client, Models.AdvertiserPublicInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"public_info\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserPublicInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Qualification\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/qualification/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710509559820 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserQualificationGetResponse> ExecuteAdvertiserQualificationGetAsync(this OceanEngineClient client, Models.AdvertiserQualificationGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"qualification\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserQualificationGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/advertiser/qualification/submit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710510055424 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserQualificationSubmitResponse> ExecuteAdvertiserQualificationSubmitAsync(this OceanEngineClient client, Models.AdvertiserQualificationSubmitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"advertiser\", \"qualification\", \"submit\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserQualificationSubmitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/qualification/select_v2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710513397775 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserQualificationSelectV2Response> ExecuteAdvertiserQualificationSelectV2Async(this OceanEngineClient client, Models.AdvertiserQualificationSelectV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"qualification\", \"select_v2\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserQualificationSelectV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/advertiser/qualification/create_v2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710514343951 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserQualificationCreateV2Response> ExecuteAdvertiserQualificationCreateV2Async(this OceanEngineClient client, Models.AdvertiserQualificationCreateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"advertiser\", \"qualification\", \"create_v2\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserQualificationCreateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Avatar\n        /// <summary>\n        /// <para>异步调用 [POST] /2/advertiser/avatar/submit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710512435215 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserAvatarSubmitResponse> ExecuteAdvertiserAvatarSubmitAsync(this OceanEngineClient client, Models.AdvertiserAvatarSubmitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"advertiser\", \"avatar\", \"submit\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserAvatarSubmitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/avatar/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710512904192 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserAvatarGetResponse> ExecuteAdvertiserAvatarGetAsync(this OceanEngineClient client, Models.AdvertiserAvatarGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"avatar\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserAvatarGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Fund\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/fund/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710526192652 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserFundGetResponse> ExecuteAdvertiserFundGetAsync(this OceanEngineClient client, Models.AdvertiserFundGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"fund\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserFundGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/fund/daily_stat 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710526682112 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserFundDailyStatisticsResponse> ExecuteAdvertiserFundDailyStatisticsAsync(this OceanEngineClient client, Models.AdvertiserFundDailyStatisticsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"fund\", \"daily_stat\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserFundDailyStatisticsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/fund/transaction/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710527205388 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserFundTransactionGetResponse> ExecuteAdvertiserFundTransactionGetAsync(this OceanEngineClient client, Models.AdvertiserFundTransactionGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"fund\", \"transaction\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserFundTransactionGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Budget\n        /// <summary>\n        /// <para>异步调用 [GET] /2/advertiser/budget/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710531128335 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserBudgetGetResponse> ExecuteAdvertiserBudgetGetAsync(this OceanEngineClient client, Models.AdvertiserBudgetGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"advertiser\", \"budget\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserBudgetGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/advertiser/update/budget 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710531631116 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertiserUpdateBudgetResponse> ExecuteAdvertiserUpdateBudgetAsync(this OceanEngineClient client, Models.AdvertiserUpdateBudgetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"advertiser\", \"update\", \"budget\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertiserUpdateBudgetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteAdvertisingExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteAdvertisingExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/ad/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710535150604 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingGetResponse> ExecuteAdvertisingGetAsync(this OceanEngineClient client, Models.AdvertisingGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"ad\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/ad/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1701607421369355 ]]> <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710535694348 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingCreateResponse> ExecuteAdvertisingCreateAsync(this OceanEngineClient client, Models.AdvertisingCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"ad\", \"create\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/ad/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1701620468172800 ]]> <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710536211456 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingUpdateResponse> ExecuteAdvertisingUpdateAsync(this OceanEngineClient client, Models.AdvertisingUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"ad\", \"update\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/ad/update/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1701620468172800 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingUpdateStatusResponse> ExecuteAdvertisingUpdateStatusAsync(this OceanEngineClient client, Models.AdvertisingUpdateStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"ad\", \"update\", \"status\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingUpdateStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/ad/update/budget 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710537225231 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingUpdateBudgetResponse> ExecuteAdvertisingUpdateBudgetAsync(this OceanEngineClient client, Models.AdvertisingUpdateBudgetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"ad\", \"update\", \"budget\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingUpdateBudgetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/ad/update/bid 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710537746444 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingUpdateBidResponse> ExecuteAdvertisingUpdateBidAsync(this OceanEngineClient client, Models.AdvertisingUpdateBidRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"ad\", \"update\", \"bid\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingUpdateBidResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/ad/reject_reason 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710537746444 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingRejectReasonResponse> ExecuteAdvertisingRejectReasonAsync(this OceanEngineClient client, Models.AdvertisingRejectReasonRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"ad\", \"reject_reason\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingRejectReasonResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/ad/cost_protect_status/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1697193170177032 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AdvertisingCostProtectStatusGetResponse> ExecuteAdvertisingCostProtectStatusGetAsync(this OceanEngineClient client, Models.AdvertisingCostProtectStatusGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"ad\", \"cost_protect_status\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AdvertisingCostProtectStatusGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteAgentExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteAgentExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/agent/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710518158351 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentInfoResponse> ExecuteAgentInfoAsync(this OceanEngineClient client, Models.AgentInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"agent\", \"info\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/agent/child_agent/select 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710517693452 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentChildAgentSelectResponse> ExecuteAgentChildAgentSelectAsync(this OceanEngineClient client, Models.AgentChildAgentSelectRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"agent\", \"child_agent\", \"select\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentChildAgentSelectResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Advertiser\n        /// <summary>\n        /// <para>异步调用 [GET] /2/agent/advertiser/select 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710516003852 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentAdvertiserSelectResponse> ExecuteAgentAdvertiserSelectAsync(this OceanEngineClient client, Models.AgentAdvertiserSelectRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"agent\", \"advertiser\", \"select\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentAdvertiserSelectResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/agent/advertiser/create_v2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710516003852 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentAdvertiserCreateV2Response> ExecuteAgentAdvertiserCreateV2Async(this OceanEngineClient client, Models.AgentAdvertiserCreateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"agent\", \"advertiser\", \"create_v2\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentAdvertiserCreateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/agent/advertiser/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710517205007 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentAdvertiserUpdateResponse> ExecuteAgentAdvertiserUpdateAsync(this OceanEngineClient client, Models.AgentAdvertiserUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"agent\", \"advertiser\", \"update\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentAdvertiserUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/agent/advertiser/recharge 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710527687680 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentAdvertiserRechargeResponse> ExecuteAgentAdvertiserRechargeAsync(this OceanEngineClient client, Models.AgentAdvertiserRechargeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"agent\", \"advertiser\", \"recharge\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentAdvertiserRechargeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/agent/advertiser/refund 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710528174095 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AgentAdvertiserRefundResponse> ExecuteAgentAdvertiserRefundAsync(this OceanEngineClient client, Models.AgentAdvertiserRefundRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"agent\", \"advertiser\", \"refund\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.AgentAdvertiserRefundResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteBusinessPlatformExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteBusinessPlatformExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/business_platform/partner_organization/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1710414874245133 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.BusinessPlatformPartnerOrganizationListResponse> ExecuteBusinessPlatformPartnerOrganizationListAsync(this OceanEngineClient client, Models.BusinessPlatformPartnerOrganizationListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"business_platform\", \"partner_organization\", \"list\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.BusinessPlatformPartnerOrganizationListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteCampaignExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteCampaignExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/campaign/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710532657164 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CampaignGetResponse> ExecuteCampaignGetAsync(this OceanEngineClient client, Models.CampaignGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"campaign\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CampaignGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/campaign/create 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710533142540 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CampaignCreateResponse> ExecuteCampaignCreateAsync(this OceanEngineClient client, Models.CampaignCreateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"campaign\", \"create\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CampaignCreateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/campaign/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710533142540 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CampaignUpdateResponse> ExecuteCampaignUpdateAsync(this OceanEngineClient client, Models.CampaignUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"campaign\", \"update\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CampaignUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/campaign/update/status 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710534164480 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CampaignUpdateStatusResponse> ExecuteCampaignUpdateStatusAsync(this OceanEngineClient client, Models.CampaignUpdateStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"campaign\", \"update\", \"status\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CampaignUpdateStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteCreativeExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteCreativeExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/creative/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710540735500 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CreativeGetResponse> ExecuteCreativeGetAsync(this OceanEngineClient client, Models.CreativeGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"creative\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CreativeGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/creative/create_v2 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710540735500 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CreativeCreateV2Response> ExecuteCreativeCreateV2Async(this OceanEngineClient client, Models.CreativeCreateV2Request request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"creative\", \"create_v2\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CreativeCreateV2Response>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteCustomerCenterExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteCustomerCenterExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/customer_center/advertiser/list 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710520884224 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerCenterAdvertiserListResponse> ExecuteCustomerCenterAdvertiserListAsync(this OceanEngineClient client, Models.CustomerCenterAdvertiserListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"customer_center\", \"advertiser\", \"list\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.CustomerCenterAdvertiserListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteEnterpriseExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteEnterpriseExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /v1.0/enterprise/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1708504831910983 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EnterpriseInfoResponse> ExecuteEnterpriseInfoAsync(this OceanEngineClient client, Models.EnterpriseInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"v1.0\", \"enterprise\", \"info\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.EnterpriseInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteFileExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteFileExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/image/advertiser 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710599659532 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileImageAdvertiserResponse> ExecuteFileImageAdvertiserAsync(this OceanEngineClient client, Models.FileImageAdvertiserRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileBytes is not null)\n            {\n                if (request.ImageFileName is null)\n                    request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToString().ToLower() + \".jpg\";\n\n                if (request.ImageFileHash is null)\n                    request.ImageFileHash = BitConverter.ToString(Utilities.MD5Utility.Hash(request.ImageFileBytes)).Replace(\"-\", \"\");\n\n                if (request.ImageContentType is null)\n                    request.ImageContentType = \"image/jpeg\";\n            }\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"image\", \"advertiser\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            using var httpContent = new MultipartFormDataContent();\n            httpContent.Add(new StringContent(request.AdvertiserId.ToString()), \"advertiser_id\");\n            httpContent.Add(new StringContent(request.UploadType), \"upload_type\");\n            httpContent.Add(new StringContent(request.UploadTo), \"upload_to\");\n\n            if (request.ImageFileBytes is not null)\n            {\n                using var fileContent = new ByteArrayContent(request.ImageFileBytes);\n                fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.ImageContentType);\n                httpContent.Add(fileContent, \"image_file\", request.ImageFileName!);\n                httpContent.Add(new StringContent(request.ImageFileHash!), \"image_signature\");\n            }\n            else\n            {\n                httpContent.Add(new StringContent(request.ImageUrl!), \"image_url\");\n            }\n\n            return await client.SendFlurlRequestAsync<Models.FileImageAdvertiserResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/image/ad 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710600176640 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileImageAdvertisingResponse> ExecuteFileImageAdvertisingAsync(this OceanEngineClient client, Models.FileImageAdvertisingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileBytes is not null)\n            {\n                if (request.ImageFileName is null)\n                    request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToString().ToLower() + \".jpg\";\n\n                if (request.ImageFileHash is null)\n                    request.ImageFileHash = BitConverter.ToString(Utilities.MD5Utility.Hash(request.ImageFileBytes)).Replace(\"-\", \"\");\n\n                if (request.ImageContentType is null)\n                    request.ImageContentType = \"image/jpeg\";\n            }\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"image\", \"ad\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            using var httpContent = new MultipartFormDataContent();\n            httpContent.Add(new StringContent(request.AdvertiserId.ToString()), \"advertiser_id\");\n            httpContent.Add(new StringContent(request.UploadType), \"upload_type\");\n            httpContent.Add(new StringContent(request.ImageFileName!), \"filename\");\n\n            if (request.ImageFileBytes is not null)\n            {\n                using var fileContent = new ByteArrayContent(request.ImageFileBytes);\n                fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.ImageContentType);\n                httpContent.Add(fileContent, \"image_file\", request.ImageFileName!);\n                httpContent.Add(new StringContent(request.ImageFileHash!), \"image_signature\");\n            }\n            else\n            {\n                httpContent.Add(new StringContent(request.ImageUrl!), \"image_url\");\n            }\n\n            return await client.SendFlurlRequestAsync<Models.FileImageAdvertisingResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/video/ad 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710600730639 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileVideoAdvertisingResponse> ExecuteFileVideoAdvertisingAsync(this OceanEngineClient client, Models.FileVideoAdvertisingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.VideoFileName is null)\n                request.VideoFileName = Guid.NewGuid().ToString(\"N\").ToString().ToLower() + \".mp4\";\n\n            if (request.VideoFileHash is null)\n                request.VideoFileHash = BitConverter.ToString(Utilities.MD5Utility.Hash(request.VideoFileBytes)).Replace(\"-\", \"\");\n\n            if (request.VideoContentType is null)\n                request.VideoContentType = \"video/mp4\";\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"video\", \"ad\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            using var httpContent = new MultipartFormDataContent();\n            using var fileContent = new ByteArrayContent(request.VideoFileBytes ?? Array.Empty<byte>());\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(request.VideoContentType);\n            httpContent.Add(fileContent, \"video_file\", request.VideoFileName);\n            httpContent.Add(new StringContent(request.AdvertiserId.ToString()), \"advertiser_id\");\n            httpContent.Add(new StringContent(request.VideoFileHash), \"video_signature\");\n            httpContent.Add(new StringContent(request.VideoFileName), \"filename\");\n\n            return await client.SendFlurlRequestAsync<Models.FileVideoAdvertisingResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/file/image/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710600730639 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileImageGetResponse> ExecuteFileImageGetAsync(this OceanEngineClient client, Models.FileImageGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"file\", \"image\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileImageGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/file/video/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710601820172 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileVideoGetResponse> ExecuteFileVideoGetAsync(this OceanEngineClient client, Models.FileVideoGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"file\", \"video\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileVideoGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/file/image/ad/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710600730639 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileImageAdvertiserGetResponse> ExecuteFileImageAdvertiserGetAsync(this OceanEngineClient client, Models.FileImageAdvertiserGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"file\", \"image\", \"ad\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileImageAdvertiserGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /2/file/video/ad/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710603509772 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileVideoAdvertiserGetResponse> ExecuteFileVideoAdvertiserGetAsync(this OceanEngineClient client, Models.FileVideoAdvertiserGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"file\", \"video\", \"ad\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileVideoAdvertiserGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/video/delete 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710605373455 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileVideoDeleteResponse> ExecuteFileVideoDeleteAsync(this OceanEngineClient client, Models.FileVideoDeleteRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"video\", \"delete\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileVideoDeleteResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/video/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710605909004 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileVideoUpdateResponse> ExecuteFileVideoUpdateAsync(this OceanEngineClient client, Models.FileVideoUpdateRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"video\", \"update\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileVideoUpdateResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /2/file/material/bind 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710604852236 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FileMaterialBindResponse> ExecuteFileMaterialBindAsync(this OceanEngineClient client, Models.FileMaterialBindRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"2\", \"file\", \"material\", \"bind\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FileMaterialBindResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteFundExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteFundExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/fund/shared_wallet_balance/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1703323812831239 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FundSharedWalletBalanceGetResponse> ExecuteFundSharedWalletBalanceGetAsync(this OceanEngineClient client, Models.FundSharedWalletBalanceGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"fund\", \"shared_wallet_balance\", \"get\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.FundSharedWalletBalanceGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteMajordomoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteMajordomoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/majordomo/advertiser/select 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710519607296 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.MajordomoAdvertiserSelectResponse> ExecuteMajordomoAdvertiserSelectAsync(this OceanEngineClient client, Models.MajordomoAdvertiserSelectRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"majordomo\", \"advertiser\", \"select\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.MajordomoAdvertiserSelectResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteOAuth2Extensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteOAuth2Extensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth2/access_token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710505596940 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuth2AccessTokenResponse> ExecuteOAuth2AccessTokenAsync(this OceanEngineClient client, Models.OAuth2AccessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth2\", \"access_token\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuth2AccessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth2/refresh_token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710506097679 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuth2RefreshTokenResponse> ExecuteOAuth2RefreshTokenAsync(this OceanEngineClient client, Models.OAuth2RefreshTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth2\", \"refresh_token\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuth2RefreshTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /oauth2/advertiser/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710506574848 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuth2AdvertiserGetResponse> ExecuteOAuth2AdvertiserGetAsync(this OceanEngineClient client, Models.OAuth2AdvertiserGetRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"oauth2\", \"advertiser\", \"get\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuth2AdvertiserGetResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth2/app_access_token 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1713655428885516 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuth2AppAccessTokenResponse> ExecuteOAuth2AppAccessTokenAsync(this OceanEngineClient client, Models.OAuth2AppAccessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.AppId is null)\n                request.AppId = client.Credentials.AppId;\n\n            if (request.AppSecret is null)\n                request.AppSecret = client.Credentials.AppSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth2\", \"app_access_token\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.OAuth2AppAccessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteToolsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteToolsExtensions\n    {\n        #region VideoCover\n        /// <summary>\n        /// <para>异步调用 [GET] /2/tools/video_cover/suggest 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710602404864 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ToolsVideoCoverSuggestResponse> ExecuteToolsVideoCoverSuggestAsync(this OceanEngineClient client, Models.ToolsVideoCoverSuggestRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"tools\", \"video_cover\", \"suggest\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ToolsVideoCoverSuggestResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Extensions/OceanEngineClientExecuteUserExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    public static class OceanEngineClientExecuteUserExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /2/user/info 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://open.oceanengine.com/doc/index.html?key=ad&type=api&id=1696710507039756 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserInfoResponse> ExecuteUserInfoAsync(this OceanEngineClient client, Models.UserInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"2\", \"user\", \"info\")\n                .WithHeader(\"Access-Token\", request.AccessToken);\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/AdvertiserInfoRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/info 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserInfoRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n        public IList<long> AdvertiserIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置查询字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fields\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n        public IList<string>? FieldList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/AdvertiserInfoResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/info 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserInfoResponse : OceanEngineResponse<AdvertiserInfoResponse.Types.Advertiser[]>\n    {\n        public static class Types\n        {\n            public class Advertiser\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public long? AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置账户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string? Name { get; set; }\n\n                /// <summary>\n                /// 获取或设置角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                public string? Role { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string? Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? Address { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license_url\")]\n                public string? LicenseUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license_no\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license_no\")]\n                public string? LicenseNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license_province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license_province\")]\n                public string? LicenseProvince { get; set; }\n\n                /// <summary>\n                /// 获取或设置营业执照城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"license_city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"license_city\")]\n                public string? LicenseCity { get; set; }\n\n                /// <summary>\n                /// 获取或设置公司名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                public string? Company { get; set; }\n\n                /// <summary>\n                /// 获取或设置经营类别。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand\")]\n                public string? Brand { get; set; }\n\n                /// <summary>\n                /// 获取或设置运营区域。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion_area\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_area\")]\n                public string? PromotionArea { get; set; }\n\n                /// <summary>\n                /// 获取或设置运营省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion_center_province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_center_province\")]\n                public string? PromotionCenterProvince { get; set; }\n\n                /// <summary>\n                /// 获取或设置运营城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion_center_city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion_center_city\")]\n                public string? PromotionCenterCity { get; set; }\n\n                /// <summary>\n                /// 获取或设置一级行业名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_industry_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_industry_name\")]\n                public string? FirstIndustryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置二级行业名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_industry_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_industry_name\")]\n                public string? SecondIndustryName { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                public string? RejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置注册时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset? CreateTime { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/AdvertiserPublicInfoRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/public_info 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserPublicInfoRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n        public IList<long> AdvertiserIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/AdvertiserPublicInfoResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/public_info 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserPublicInfoResponse : OceanEngineResponse<AdvertiserPublicInfoResponse.Types.Advertiser[]>\n    {\n        public static class Types\n        {\n            public class Advertiser\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置账户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置公司名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n                public string Company { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置一级行业名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_industry_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_industry_name\")]\n                public string FirstIndustryName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置二级行业名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"second_industry_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"second_industry_name\")]\n                public string SecondIndustryName { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Avatar/AdvertiserAvatarGetRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/avatar/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserAvatarGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Avatar/AdvertiserAvatarGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/avatar/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserAvatarGetResponse : OceanEngineResponse<AdvertiserAvatarGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Avatar\n                    {\n                        /// <summary>\n                        /// 获取或设置当前头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"web_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"web_uri\")]\n                        public string? AvatarWebUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核中头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_web_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_web_uri\")]\n                        public string? AuditingAvatarWebUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int? AuditingAvatarWidth { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int? AuditingAvatarHeight { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置头像审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_status\")]\n                public int AvatarStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置头像审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_reason\")]\n                public string? AvatarRejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置品牌审核状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source_status\")]\n                public int SourceStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置品牌信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source_info\")]\n                public string? SourceInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置品牌审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source_reason\")]\n                public string? SouceRejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置头像信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_info\")]\n                public Types.Avatar? Avatar { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Avatar/AdvertiserAvatarSubmitRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/avatar/submit 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserAvatarSubmitRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置头像 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n        public string ImageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_info\")]\n        public string? SourceInfo { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Avatar/AdvertiserAvatarSubmitResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/avatar/submit 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserAvatarSubmitResponse : OceanEngineResponse<AdvertiserAvatarSubmitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Budget/AdvertiserBudgetGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/budget/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserBudgetGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n        public IList<long> AdvertiserIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Budget/AdvertiserBudgetGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/budget/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserBudgetGetResponse : OceanEngineResponse<AdvertiserBudgetGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class AdvertiserBudget\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预算（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n                        public decimal Budget { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预算类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n                        public string BudgetMode { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主预算列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.AdvertiserBudget[] AdvertiserBudgetList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Budget/AdvertiserUpdateBudgetRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/update/budget 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserUpdateBudgetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n        public decimal? Budget { get; set; }\n\n        /// <summary>\n        /// 获取或设置预算类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n        public string BudgetMode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Budget/AdvertiserUpdateBudgetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/update/budget 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserUpdateBudgetResponse : OceanEngineResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundDailyStatisticsRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/daily_stat 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserFundDailyStatisticsRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_date\")]\n        public string? StartDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n        public string? EndDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundDailyStatisticsResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/daily_stat 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserFundDailyStatisticsResponse : OceanEngineResponse<AdvertiserFundDailyStatisticsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Statistics\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyy-MM-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置日终结余（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"balance\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n                        public decimal Balance { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总支出（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cost\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cost\")]\n                        public decimal TotalCost { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置现金支出（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cash_cost\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cash_cost\")]\n                        public decimal CashCost { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置赠款支出（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reward_cost\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reward_cost\")]\n                        public decimal GrantCost { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置共享钱包支出（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shared_wallet_cost\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shared_wallet_cost\")]\n                        public decimal SharedWalletCost { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置冻结金额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"frozen\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"frozen\")]\n                        public decimal FrozenFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总存入（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"income\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"income\")]\n                        public decimal Income { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总转入（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transfer_in\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transfer_in\")]\n                        public decimal TransferInAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总转出（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transfer_out\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transfer_out\")]\n                        public decimal TransferOutAmount { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置数据列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Statistics[] StatisticsList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundGetRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserFundGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserFundGetResponse : OceanEngineResponse<AdvertiserFundGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告主名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置联系邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"emal\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"emal\")]\n                public string Email { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置账户余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"balance\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n                public decimal TotalBalance { get; set; }\n\n                /// <summary>\n                /// 获取或设置账户可用余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_balance\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_balance\")]\n                public decimal ValidBalance { get; set; }\n\n                /// <summary>\n                /// 获取或设置现金余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cash\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cash\")]\n                public decimal TotalCash { get; set; }\n\n                /// <summary>\n                /// 获取或设置现金余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_cash\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_cash\")]\n                public decimal ValidCash { get; set; }\n\n                /// <summary>\n                /// 获取或设置赠款余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"grant\")]\n                public decimal TotalGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置默认广告位可用赠款余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"default_grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"default_grant\")]\n                public decimal DefaultGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置通用广告位可用赠款余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"common_grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"common_grant\")]\n                public decimal CommonGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置搜索广告位可用赠款余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_grant\")]\n                public decimal SearchGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置穿山甲广告位可用赠款余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"union_grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"union_grant\")]\n                public decimal UnionGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置赠款可用余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_grant\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_grant\")]\n                public decimal ValidGrant { get; set; }\n\n                /// <summary>\n                /// 获取或设置返货余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_goods_abs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_goods_abs\")]\n                public decimal? TotalReturnGoodsABS { get; set; }\n\n                /// <summary>\n                /// 获取或设置返货可用余额（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"valid_return_goods_abs\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"valid_return_goods_abs\")]\n                public decimal? ValidReturnGoodsABS { get; set; }\n\n                /// <summary>\n                /// 获取或设置返货支出（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_goods_cost\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_goods_cost\")]\n                public decimal? TotalReturnGoodsCost { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundTransactionGetRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/transaction/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserFundTransactionGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置开始日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_date\")]\n        public string? StartDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置结束日期字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n        public string? EndDateString { get; set; }\n\n        /// <summary>\n        /// 获取或设置流水类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"transaction_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"transaction_type\")]\n        public string? TransactionType { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Fund/AdvertiserFundTransactionGetResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/fund/transaction/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserFundTransactionGetResponse : OceanEngineResponse<AdvertiserFundTransactionGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Transaction\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置流水类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transaction_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transaction_type\")]\n                        public string TransactionType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置交易总金额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public decimal Amount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置现金总金额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cash\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cash\")]\n                        public decimal TotalCash { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置赠款总金额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"grant\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"grant\")]\n                        public decimal TotalGrant { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置返货总金额（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_goods\")]\n                        public decimal TotalReturnGoods { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置交易流水号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transaction_seq\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transaction_seq\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                        public string TransactionSequenceNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置付款方广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remitter\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remitter\")]\n                        public long RemitterAdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收款方广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payee\")]\n                        public long PayeeAdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置返点（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dealbase\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dealbase\")]\n                        public decimal Dealbase { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置流水列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Transaction[] TransactionList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationCreateV2Request.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/qualification/create_v2 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserQualificationCreateV2Request : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Qualification\n            {\n                /// <summary>\n                /// 获取或设置资质图片类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_qualification_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_qualification_type\")]\n                public string ImageType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置资质图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_img_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_img_id\")]\n                public string ImageId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置资质类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n        public string QualificationType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置资质列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"qualifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"qualifications\")]\n        public IList<Types.Qualification> QualificationList { get; set; } = new List<Types.Qualification>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationCreateV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/qualification/create_v2 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserQualificationCreateV2Response : OceanEngineResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationGetRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/qualification/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserQualificationGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/qualification/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserQualificationGetResponse : OceanEngineResponse<AdvertiserQualificationGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Subject\n                    {\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                        public int QualificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置公司名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                        public string CompanyName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置公司类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                        public int CompanyType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置对公验证类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"check_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"check_type\")]\n                        public int CheckType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n                        public int QualificationType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质编号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_code\")]\n                        public string QualificationCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置注册国家。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"registered_nation_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"registered_nation_name\")]\n                        public string RegisteredNationName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置注册省份。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"registered_province_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"registered_province_name\")]\n                        public string RegisteredProvinceName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置注册城市。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"registered_city_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"registered_city_name\")]\n                        public string RegisteredCityName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否有有效日期。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_effective_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_effective_date\")]\n                        public bool HasEffectiveDate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过期时间字符串（格式：yyyy-mm-dd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effective_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effective_date\")]\n                        public string? EffectiveDateString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置法人。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"proprietor_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"proprietor_name\")]\n                        public string ProprietorName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string Address { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质图片附件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attachment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attachment_id\")]\n                        public string? AttachmentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"picture_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"picture_url\")]\n                        public string? PictureUrl { get; set; }\n                    }\n\n                    public class OtherQualification\n                    {\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                        public int QualificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质图片附件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"attachment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"attachment_id\")]\n                        public string? AttachmentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"picture_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"picture_url\")]\n                        public string? PictureUrl { get; set; }\n                    }\n\n                    public class PromotionQualification\n                    {\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                        public int QualificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置推广内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"content\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                        public string Content { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public int Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置主体信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subject\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subject\")]\n                public Types.Subject Subject { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置开户资质列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"others\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"others\")]\n                public Types.OtherQualification[] OtherQualificationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置推广资质信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"promotion\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"promotion\")]\n                public Types.PromotionQualification PromotionQualification { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                public string? RejectReason { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationSelectV2Request.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/qualification/select_v2 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserQualificationSelectV2Request : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationSelectV2Response.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/advertiser/qualification/select_v2 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserQualificationSelectV2Response : OceanEngineResponse<AdvertiserQualificationSelectV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Qualification\n                    {\n                        public static class Types\n                        {\n                            public class Image\n                            {\n                                /// <summary>\n                                /// 获取或设置附件 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attachment_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attachment_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                                public string AttachmentId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置附件图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                public string ImageUrl { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置资质 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                        public int QualificationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n                        public int QualificationType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质预览 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"picture_preview_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"picture_preview_url\")]\n                        public string? PreviewUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public int Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                        public string? RejectReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置审核时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audit_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audit_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? AuditTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资质图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_list\")]\n                        public Types.Image[] ImageList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置资质列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Qualification[] QualificationList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationSubmitRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/qualification/submit 接口的请求。</para>\n    /// </summary>\n    public class AdvertiserQualificationSubmitRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Subject\n            {\n                /// <summary>\n                /// 获取或设置资质 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                public int QualificationId { get; set; }\n\n                /// <summary>\n                /// 获取或设置公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                public string CompanyName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置公司类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_type\")]\n                public int CompanyType { get; set; }\n\n                /// <summary>\n                /// 获取或设置对公验证类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"check_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"check_type\")]\n                public int CheckType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_type\")]\n                public int QualificationType { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_code\")]\n                public string QualificationCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置注册国家。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"registered_nation_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"registered_nation_name\")]\n                public string RegisteredNationName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置注册省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"registered_province_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"registered_province_name\")]\n                public string RegisteredProvinceName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置注册城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"registered_city_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"registered_city_name\")]\n                public string RegisteredCityName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置是否有有效日期。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_effective_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_effective_date\")]\n                public bool HasEffectiveDate { get; set; }\n\n                /// <summary>\n                /// 获取或设置过期时间字符串（格式：yyyy-mm-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"effective_date\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"effective_date\")]\n                public string? EffectiveDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置法人。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"proprietor_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"proprietor_name\")]\n                public string ProprietorName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置详细地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string Address { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置资质图片附件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attachment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attachment_id\")]\n                public string? AttachmentId { get; set; }\n            }\n\n            public class OtherQualification\n            {\n                /// <summary>\n                /// 获取或设置资质 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"qualification_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"qualification_id\")]\n                public int QualificationId { get; set; }\n\n                /// <summary>\n                /// 获取或设置资质图片附件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attachment_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attachment_id\")]\n                public string? AttachmentId { get; set; }\n            }\n\n            public class PromotionQualification\n            {\n                /// <summary>\n                /// 获取或设置推广内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                public string Content { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置主体信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"subject\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"subject\")]\n        public Types.Subject Subject { get; set; } = new Types.Subject();\n\n        /// <summary>\n        /// 获取或设置开户资质列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"others\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"others\")]\n        public IList<Types.OtherQualification> OtherQualificationList { get; set; } = new List<Types.OtherQualification>();\n\n        /// <summary>\n        /// 获取或设置推广资质信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion\")]\n        public Types.PromotionQualification PromotionQualification { get; set; } = new Types.PromotionQualification();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertiser/Qualification/AdvertiserQualificationSubmitResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/advertiser/qualification/submit 接口的响应。</para>\n    /// </summary>\n    public class AdvertiserQualificationSubmitResponse : OceanEngineResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingCostProtectStatusGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/cost_protect_status/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingCostProtectStatusGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n        public IList<long> AdvertisingIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingCostProtectStatusGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/cost_protect_status/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingCostProtectStatusGetResponse : OceanEngineResponse<AdvertisingCostProtectStatusGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        /// <summary>\n                        /// 获取或设置广告计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                        public long AdvertisingId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置计划成本保障状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核建议列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public static Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingCreateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/create 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingCreateRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class DPAProductTarget\n            {\n                /// <summary>\n                /// 获取或设置筛选字段。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置定向规则。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"rule\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"rule\")]\n                public string? Rule { get; set; }\n\n                /// <summary>\n                /// 获取或设置字段类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                public string? Type { get; set; }\n\n                /// <summary>\n                /// 获取或设置规则值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                public string? Value { get; set; }\n            }\n\n            public class AudienceLocation\n            {\n                /// <summary>\n                /// 获取或设置地点名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string? Name { get; set; }\n\n                /// <summary>\n                /// 获取或设置经度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"long\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"long\")]\n                public decimal? Longitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置纬度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"lat\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"lat\")]\n                public decimal? Latitude { get; set; }\n\n                /// <summary>\n                /// 获取或设置半径。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"radius\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"radius\")]\n                public int? Radius { get; set; }\n\n                /// <summary>\n                /// 获取或设置省份。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string? Province { get; set; }\n\n                /// <summary>\n                /// 获取或设置城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string? City { get; set; }\n\n                /// <summary>\n                /// 获取或设置区县。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                public string? District { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                public string? Street { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_number\")]\n                public string? StreetNumber { get; set; }\n            }\n\n            public class CustomAction\n            {\n                /// <summary>\n                /// 获取或设置行为编号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                public int Code { get; set; }\n\n                /// <summary>\n                /// 获取或设置行为天数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"days\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"days\")]\n                public int Days { get; set; }\n            }\n\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n        public long CampaignId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string AdvertisingName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置操作状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operation\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operation\")]\n        public string? Operation { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用下载方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_type\")]\n        public string? DownloadType { get; set; }\n\n        /// <summary>\n        /// 获取或设置数据下载链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_url\")]\n        public string? DownloadUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用包名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package\")]\n        public string? Package { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_type\")]\n        public string? AppType { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_mode\")]\n        public string? DownloadMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_url\")]\n        public string? OpenUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置备用链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ulink\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ulink\")]\n        public string? ULink { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_type\")]\n        public string? PromotionType { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_account\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_account\")]\n        public string? AwemeAccount { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_range\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_range\")]\n        public string? DeliveryRange { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告位大类。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inventory_catalog\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_catalog\")]\n        public string? InventoryCatalog { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告投放位置列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n        public IList<string>? InventoryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置优选广告位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"smart_inventory\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"smart_inventory\")]\n        public string? SmartTnventory { get; set; }\n\n        /// <summary>\n        /// 获取或设置首选场景广告位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene_inventory\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene_inventory\")]\n        public string? SceneInventory { get; set; }\n\n        /// <summary>\n        /// 获取或设置穿山甲视频创意类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"union_video_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"union_video_type\")]\n        public string? UnionVideoType { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义转化目标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"convert_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"convert_id\")]\n        public long? ConvertId { get; set; }\n\n        /// <summary>\n        /// 获取或设置预定义转化目标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_action\")]\n        public string? ExternalAction { get; set; }\n\n        /// <summary>\n        /// 获取或设置预定义转化目标列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_actions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_actions\")]\n        public IList<string>? ExternalActionList { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_type\")]\n        public string? DPAOpenUrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接字段选择。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_field\")]\n        public string? DPAOpenUrlField { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_urls\")]\n        public string[]? DPAOpenUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页检测参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_url_params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_url_params\")]\n        public string? ExternalUrlParameters { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接检测参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_url_params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_url_params\")]\n        public string? OpenUrlParameters { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度转化目标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deep_external_action\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deep_external_action\")]\n        public string? DeepExternalAction { get; set; }\n\n        /// <summary>\n        /// 获取或设置资产 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"asset_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"asset_ids\")]\n        public IList<long>? AssetIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置目标优化类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value_optimized_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value_optimized_type\")]\n        public int? ValueOptimizedType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用价值优选。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"value_optimized_open\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"value_optimized_open\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsValueOptimizedEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置产品目录 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_platform_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_platform_id\")]\n        public long? ProductPlatformId { get; set; }\n\n        /// <summary>\n        /// 获取或设置产品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n        public string? ProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物件 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"asset_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"asset_id\")]\n        public long? AssetId { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 投放范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_type\")]\n        public string? DPACategoryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 分类 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_categories\")]\n        public IList<long>? DPACategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_products\")]\n        public IList<long>? DPAProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品投放条件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_product_target\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_product_target\")]\n        public IList<Types.DPAProductTarget>? DPAProductTargetList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 广告类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_adtype\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_adtype\")]\n        public string? DPAAdType { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页链接字段选择。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_external_url_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_url_field\")]\n        public string? DPAExternalUrlField { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_external_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_urls\")]\n        public IList<string>? DPAExternalUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"params_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"params_type\")]\n        public string? ParametersType { get; set; }\n\n        /// <summary>\n        /// 获取或设置搜索快投关键词状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"feed_delivery_search\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"feed_delivery_search\")]\n        public string? DeedDeliverySearchStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向包 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audience_package_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audience_package_id\")]\n        public long? AudiencePackageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向城市。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"city\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n        public string? City { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向区县。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"district\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n        public string? District { get; set; }\n\n        /// <summary>\n        /// 获取或设置行政区域版本号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_version\")]\n        public string? RegionVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向商圈 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_ids\")]\n        public IList<int>? BusinessIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向位置类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"location_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"location_type\")]\n        public string? LocationType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向位置信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"geolocation\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"geolocation\")]\n        public Types.AudienceLocation? Location { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向性别类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gender\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n        public string? GenderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向年龄类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"age\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"age\")]\n        public IList<string>? AgeTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向职业类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"career\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"career\")]\n        public IList<string>? CareerTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向定向人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"retargeting_tags_include\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_include\")]\n        public IList<long>? RetargetingTagsIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向排除人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"retargeting_tags_exclude\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_exclude\")]\n        public IList<long>? RetargetingTagsExcludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向行为兴趣。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_action_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_action_mode\")]\n        public string? InterestActionMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为场景列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_scene\")]\n        public IList<string>? ActionSceneList { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户发生行为天数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_days\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_days\")]\n        public int? ActionDays { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为类目词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_categories\")]\n        public IList<long>? ActionCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为关键词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_words\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_words\")]\n        public IList<long>? ActionWordIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置兴趣类目词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_categories\")]\n        public IList<long>? InterestCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置兴趣关键词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_words\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_words\")]\n        public IList<long>? InterestWordIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人互动用户行为类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_behaviors\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_behaviors\")]\n        public IList<string>? AwemeFanBehaviorList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人互动行为时间范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_time_scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_time_scope\")]\n        public string? AwemeFanTimeScope { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人分类 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_categories\")]\n        public IList<long>? AwemeFanCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_accounts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_accounts\")]\n        public List<long>? AwemeFanAccountIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高活跃用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_aweme_abnormal_active\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_abnormal_active\")]\n        public int? FilterAwemeAbnormalActiveType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高关注数用户。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_aweme_fans_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_fans_count\")]\n        public int? FilterAwemeFanCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高活跃用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_own_aweme_fans\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_own_aweme_fans\")]\n        public int? FilterOwnAwemeFansType { get; set; }\n\n        /// <summary>\n        /// 获取或设置媒体定向类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"superior_popularity_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"superior_popularity_type\")]\n        public string? SuperiorPopularityType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向流量包 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_package\")]\n        public List<long>? FlowPackageIdIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置排除定向流量包 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclude_flow_package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_flow_package\")]\n        public List<long>? FlowPackageIdExcluedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"platform\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n        public List<string>? PlatformList { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低安卓版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"android_osv\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"android_osv\")]\n        public string? AndroidVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低 iOS 版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ios_osv\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ios_osv\")]\n        public string? IosVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置设备类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"device_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"device_type\")]\n        public List<string>? DeviceTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置网络类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ac\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ac\")]\n        public List<string>? NetworkTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运营商列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"carrier\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"carrier\")]\n        public List<string>? CarrierList { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤已安装类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hide_if_exists\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_exists\")]\n        public int? HideIfExistsType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤已转换类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hide_if_converted\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_converted\")]\n        public int? HideIfConvertedType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤时间范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"converted_time_duration\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"converted_time_duration\")]\n        public string? ConvertedTimeDurationTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置新用户使用头条的时间类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activate_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activate_type\")]\n        public List<string>? ActivateTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置文章分类列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"article_category\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"article_category\")]\n        public List<string>? ArticleCategoryList { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机品牌列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"device_brand\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"device_brand\")]\n        public List<string>? DeviceBrandList { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机价格区间（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"launch_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"launch_price\")]\n        public List<int>? LaunchPriceRange { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用智能放量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auto_extend_enabled\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_enabled\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAutoExtendEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置可放开定向列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auto_extend_targets\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_targets\")]\n        public IList<string>? AutoExtendTargetList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用 LBS 地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_lbs\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_lbs\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPALBSEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用城市地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_city\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_city\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPACityEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用省份地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_province\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_province\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPAProvinceEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用 DPA 行为重定向。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_local_audience\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_local_audience\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPALocalAudienceEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置包含人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"include_custom_actions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"include_custom_actions\")]\n        public IList<Types.CustomAction>? CustomActionIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置排除人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclude_custom_actions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_custom_actions\")]\n        public IList<Types.CustomAction>? CustomActionExcludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品重定向推荐类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_recommend_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_recommend_type\")]\n        public int? DPARecommendType { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放场景出价方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"smart_bid_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"smart_bid_type\")]\n        public string SmartBidType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否调整自动出价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_cpa\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_cpa\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAutoAdjustCPA { get; set; }\n\n        /// <summary>\n        /// 获取或设置竞价策略投放方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_control_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_control_mode\")]\n        public string FlowControlMode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n        public decimal? Budget { get; set; }\n\n        /// <summary>\n        /// 获取或设置预算类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n        public string BudgetMode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置投放时间类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schedule_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_type\")]\n        public string? ScheduleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放起始时间字符串（格式：yyyy-MM-dd HH:mm）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n        public string? StartTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放结束时间字符串（格式：yyyy-MM-dd HH:mm）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public string? EndTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放时段字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schedule_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_time\")]\n        public string? ScheduleTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置出价方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pricing\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pricing\")]\n        public string PricingType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置点击出价/展示出价（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bid\")]\n        public decimal? Bid { get; set; }\n\n        /// <summary>\n        /// 获取或设置目标转化出价/预期成本（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cpa_bid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cpa_bid\")]\n        public decimal? CPABid { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度优化方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deep_bid_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deep_bid_type\")]\n        public string? DeepBidType { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度优化出价（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deep_cpabid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deep_cpabid\")]\n        public decimal? DeepCPABid { get; set; }\n\n        /// <summary>\n        /// 获取或设置鲁班目标 ROI 出价策略系数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"luban_roi_goal\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"luban_roi_goal\")]\n        public decimal? LubanROIGoal { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度转化 ROI 系数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"roi_goal\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"roi_goal\")]\n        public decimal? DeepROIGoal { get; set; }\n\n        /// <summary>\n        /// 获取或设置展示监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_url\")]\n        public IList<string>? TrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置点击监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_track_url\")]\n        public IList<string>? ActionTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频有效播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_effective_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_effective_track_url\")]\n        public IList<string>? VideoPlayEffectiveTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播完监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_done_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_done_track_url\")]\n        public IList<string>? VideoPlayDoneTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_track_url\")]\n        public IList<string>? VideoPlayTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置数据发送方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_url_send_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_url_send_type\")]\n        public string? TrackUrlSendType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/create 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingCreateResponse : OceanEngineResponse<AdvertisingCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long AdvertisingId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/get 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingGetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置广告计划 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ids\")]\n                public IList<long>? AdvertisingIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告计划名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_name\")]\n                public string? AdvertisingName { get; set; }\n\n                /// <summary>\n                /// 获取或设置出价方式列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pricing_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pricing_list\")]\n                public IList<string>? PricingTypeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告计划状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string? Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                public long? CampaignId { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_create_time\")]\n                public string? CreateDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置修改日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_modify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_modify_time\")]\n                public string? UpdateDateString { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fields\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n        public IList<string>? FieldList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingGetResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/get 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingGetResponse : OceanEngineResponse<AdvertisingGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertising\n                    {\n                        public static class Types\n                        {\n                            public class DPAProductTarget\n                            {\n                                /// <summary>\n                                /// 获取或设置筛选字段。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string? Title { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置定向规则。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rule\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rule\")]\n                                public string? Rule { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置字段类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string? Type { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置规则值。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                public string? Value { get; set; }\n                            }\n\n                            public class Audience\n                            {\n                                public static class Types\n                                {\n                                    public class Location\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置地点名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string? Name { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置经度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"long\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"long\")]\n                                        public decimal? Longitude { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置纬度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"lat\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"lat\")]\n                                        public decimal? Latitude { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置半径。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"radius\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"radius\")]\n                                        public int? Radius { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置省份。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"province\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                        public string? Province { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置城市。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"city\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                        public string? City { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置区县。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"district\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                                        public string? District { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置街道。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"street\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"street\")]\n                                        public string? Street { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置街道号。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"street_number\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"street_number\")]\n                                        public string? StreetNumber { get; set; }\n                                    }\n\n                                    public class Action\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置行为场景列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"action_scene\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"action_scene\")]\n                                        public string[]? ActionSceneList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置用户发生行为天数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"action_days\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"action_days\")]\n                                        public int? ActionDays { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置行为类目词 ID 列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"action_categories\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"action_categories\")]\n                                        public long[]? ActionCategoryIdList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置行为关键词 ID 列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"action_words\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"action_words\")]\n                                        public long[]? ActionWordIdList { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置地域。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                                public string? District { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行政区域版本号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region_version\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region_version\")]\n                                public string? RegionVersion { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置城市 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public int[]? CityIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商圈 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"business_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"business_ids\")]\n                                public int[]? BusinessIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置位置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"location_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"location_type\")]\n                                public string? LocationType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置位置信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"geolocation\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"geolocation\")]\n                                public Types.Location? Location { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置性别类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"gender\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n                                public string? GenderType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置年龄类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"age\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"age\")]\n                                public string[]? AgeTypeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置职业类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"career\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"career\")]\n                                public string[]? CareerTypeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置定向人群包列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retargeting_tags_include\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_include\")]\n                                public long[]? RetargetingTagsIncludedList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置排除人群包列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retargeting_tags_exclude\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_exclude\")]\n                                public long[]? RetargetingTagsExcludedList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行为兴趣。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interest_action_mode\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interest_action_mode\")]\n                                public string? InterestActionMode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行为内容信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"action\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n                                public Types.Action? Action { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置兴趣类目词 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interest_categories\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interest_categories\")]\n                                public long[]? InterestCategoryIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置兴趣关键词 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interest_words\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interest_words\")]\n                                public long[]? InterestWordIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置兴趣分类 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ad_tag\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ad_tag\")]\n                                public long[]? AdTagIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置兴趣关键词 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interest_tags\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interest_tags\")]\n                                public long[]? InterestTagIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 App 行为类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_behavior_target\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_behavior_target\")]\n                                public string? AppBehaviorTarget { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 App 行为分类 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_category\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_category\")]\n                                public long[]? AppCategoryIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 App ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"app_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"app_ids\")]\n                                public long[]? AppIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置抖音达人互动用户行为类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aweme_fan_behaviors\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_behaviors\")]\n                                public string[]? AwemeFanBehaviorList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置抖音达人互动行为时间范围类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aweme_fan_time_scope\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_time_scope\")]\n                                public string? AwemeFanTimeScope { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置抖音达人分类 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aweme_fan_categories\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_categories\")]\n                                public long[]? AwemeFanCategoryIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置抖音达人 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aweme_fan_accounts\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_accounts\")]\n                                public long[]? AwemeFanAccountIdList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置账号粉丝相似人群列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"aweme_fans_numbers\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fans_numbers\")]\n                                public int[]? AwemeFanNumberList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过滤高活跃用户类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"filter_aweme_abnormal_active\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_abnormal_active\")]\n                                public int? FilterAwemeAbnormalActiveType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过滤高关注数用户。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"filter_aweme_fans_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_fans_count\")]\n                                public int? FilterAwemeFanCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过滤高活跃用户类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"filter_own_aweme_fans\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"filter_own_aweme_fans\")]\n                                public int? FilterOwnAwemeFansType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置媒体定向类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"superior_popularity_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"superior_popularity_type\")]\n                                public string? SuperiorPopularityType { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置定向流量包 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"flow_package\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"flow_package\")]\n                                public long[]? FlowPackageIdIncludedList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置排除定向流量包 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"exclude_flow_package\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"exclude_flow_package\")]\n                                public long[]? FlowPackageIdExcluedList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                                public string[]? PlatformList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最低安卓版本。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"android_osv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"android_osv\")]\n                                public string? AndroidVersion { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最低 iOS 版本。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ios_osv\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ios_osv\")]\n                                public string? IosVersion { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置设备类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"device_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"device_type\")]\n                                public string[]? DeviceTypeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置网络类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ac\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ac\")]\n                                public string[]? NetworkTypeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运营商列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"carrier\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"carrier\")]\n                                public string[]? CarrierList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置新用户使用头条的时间类型列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"activate_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"activate_type\")]\n                                public string[]? ActivateTypeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置文章分类列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"article_category\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"article_category\")]\n                                public string[]? ArticleCategoryList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置手机品牌列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"device_brand\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"device_brand\")]\n                                public string[]? DeviceBrandList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置手机价格区间（单位：元）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"launch_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"launch_price\")]\n                                public int[]? LaunchPriceRange { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否启用智能放量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"auto_extend_enabled\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_enabled\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                                public bool? IsAutoExtendEnabled { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置可放开定向列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"auto_extend_targets\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_targets\")]\n                                public string[]? AutoExtendTargetList { get; set; }\n                            }\n\n                            public class CustomAction\n                            {\n                                /// <summary>\n                                /// 获取或设置行为编号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                public int Code { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行为天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"days\")]\n                                public int Days { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public long? AdvertisingId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告计划名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long? AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                        public long? CampaignId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告计划投放状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string? Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告计划操作状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"opt_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"opt_status\")]\n                        public string? Operation { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n                        public long? ModifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_modify_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_modify_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? UpdateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_range\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_range\")]\n                        public string? DeliveryRange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告位大类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_catalog\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_catalog\")]\n                        public string? InventoryCatalog { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告投放位置列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                        public string[]? InventoryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优选广告位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"smart_inventory\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"smart_inventory\")]\n                        public string? SmartTnventory { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置首选场景广告位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"scene_inventory\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"scene_inventory\")]\n                        public string? SceneInventory { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置穿山甲视频创意类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"union_video_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"union_video_type\")]\n                        public string? UnionVideoType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置展示监测链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_url\")]\n                        public string[]? TrackUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点击监测链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"action_track_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"action_track_url\")]\n                        public string[]? ActionTrackUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频有效播放监测链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_effective_track_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_effective_track_url\")]\n                        public string[]? VideoPlayEffectiveTrackUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播完监测链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_done_track_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_done_track_url\")]\n                        public string[]? VideoPlayDoneTrackUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频播放监测链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_play_track_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_track_url\")]\n                        public string[]? VideoPlayTrackUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置数据发送方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"track_url_send_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"track_url_send_type\")]\n                        public string? TrackUrlSendType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置应用下载方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"download_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"download_type\")]\n                        public string? DownloadType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置数据下载链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"download_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"download_url\")]\n                        public string? DownloadUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置快应用链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quick_app_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quick_app_url\")]\n                        public string? QuickAppUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达备用链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_url\")]\n                        public string? ExternalUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下载类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_type\")]\n                        public string? AppType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置下载方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"download_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"download_mode\")]\n                        public string? DownloadMode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置自定义转化目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"convert_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"convert_id\")]\n                        public long? ConvertId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预定义转化目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_action\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_action\")]\n                        public string? ExternalAction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预定义转化目标列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_actions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_actions\")]\n                        public string[]? ExternalActionList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置深度转化目标。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"deep_external_action\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"deep_external_action\")]\n                        public string? DeepExternalAction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置搜索快投关键词状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"feed_delivery_search\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"feed_delivery_search\")]\n                        public string? DeedDeliverySearchStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_url\")]\n                        public string? OpenUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附加创意类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advanced_creative_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advanced_creative_type\")]\n                        public string? AdvancedCreativeType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置游戏应用描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"game_package_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"game_package_desc\")]\n                        public string? GamePackageDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置游戏礼包码 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"game_package_batch_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"game_package_batch_id\")]\n                        public long? GamePackageBatchId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置游戏图片集 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"game_package_thumbnail_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"game_package_thumbnail_ids\")]\n                        public string[]? GamePackageThumbnailIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店推广投放内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"storepro_unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"storepro_unit\")]\n                        public string? StorePromotionUnit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店推广活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"storepro_pack_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"storepro_pack_id\")]\n                        public long? StorePromotionPackageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"store_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"store_type\")]\n                        public string? StoreType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置门店 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_store_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_store_ids\")]\n                        public long[]? StoreIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置产品目录 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_platform_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_platform_id\")]\n                        public long? ProductPlatformId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置产品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string? ProductId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"asset_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"asset_id\")]\n                        public long? AssetId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 投放范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_type\")]\n                        public string? DPACategoryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 分类 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_categories\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_categories\")]\n                        public long[]? DPACategoryIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 商品 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_products\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_products\")]\n                        public long[]? DPAProductIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 商品投放条件列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_product_target\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_product_target\")]\n                        public Types.DPAProductTarget[]? DPAProductTargetList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 广告类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_adtype\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_adtype\")]\n                        public string? DPAAdType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置落地页链接字段选择。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_external_url_field\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_url_field\")]\n                        public string? DPAExternalUrlField { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置落地页链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_external_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_urls\")]\n                        public string[]? DPAExternalUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置链接类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"params_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"params_type\")]\n                        public string? ParametersType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置应用包名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package\")]\n                        public string? Package { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promotion_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_type\")]\n                        public string? PromotionType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置抖音号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"aweme_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_account\")]\n                        public string? AwemeAccount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预约链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subscribe_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subscribe_url\")]\n                        public string? SubscribeTrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置表单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"form_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"form_id\")]\n                        public string? FormId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置表单位置索引。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"form_index\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"form_index\")]\n                        public int? FormIndex { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置应用描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_desc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_desc\")]\n                        public string? AppDescription { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置应用介绍。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_introduction\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_introduction\")]\n                        public string? AppIntroduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置应用图片集 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"app_thumbnails\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"app_thumbnails\")]\n                        public string[]? AppThumbnailIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达链接类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_type\")]\n                        public string? DPAOpenUrlType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达链接字段选择。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_field\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_field\")]\n                        public string? DPAOpenUrlField { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达链接列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_open_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_urls\")]\n                        public string[]? DPAOpenUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置落地页检测参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_url_params\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_url_params\")]\n                        public string? ExternalUrlParameters { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直达链接检测参数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_url_params\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_url_params\")]\n                        public string? OpenUrlParameters { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置定向包 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audience_package_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audience_package_id\")]\n                        public long? AudiencePackageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置受众信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"audience\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"audience\")]\n                        public Types.Audience? Audience { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过滤已安装类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hide_if_exists\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_exists\")]\n                        public int? HideIfExistsType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过滤已转换类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hide_if_converted\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_converted\")]\n                        public int? HideIfConvertedType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置过滤时间范围类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"converted_time_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"converted_time_duration\")]\n                        public string? ConvertedTimeDurationTypeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否启用 LBS 地域匹配。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_lbs\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_lbs\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsDPALBSEnabled { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否启用城市地域匹配。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_city\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_city\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsDPACityEnabled { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否启用省份地域匹配。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_province\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_province\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsDPAProvinceEnabled { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否启用 DPA 行为重定向。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_local_audience\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_local_audience\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsDPALocalAudienceEnabled { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置目标优化类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_optimized_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_optimized_type\")]\n                        public int? ValueOptimizedType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否启用价值优选。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_optimized_open\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_optimized_open\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsValueOptimizedEnabled { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置资产 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"asset_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"asset_ids\")]\n                        public long[]? AssetIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置包含人群包列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"include_custom_actions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"include_custom_actions\")]\n                        public Types.CustomAction[]? CustomActionIncludedList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置排除人群包列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exclude_custom_actions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_custom_actions\")]\n                        public Types.CustomAction[]? CustomActionExcludedList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 DPA 商品重定向推荐类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dpa_recommend_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_recommend_type\")]\n                        public int? DPARecommendType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放场景出价方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"smart_bid_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"smart_bid_type\")]\n                        public string? SmartBidType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否调整自动出价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjust_cpa\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_cpa\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                        public bool? IsAutoAdjustCPA { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置竞价策略投放方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"flow_control_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"flow_control_mode\")]\n                        public string? FlowControlMode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预算（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n                        public decimal? Budget { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预算类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n                        public string? BudgetMode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放时间类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"schedule_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_type\")]\n                        public string? ScheduleType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放起始时间字符串（格式：yyyy-MM-dd HH:mm）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public string? StartTimeString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放结束时间字符串（格式：yyyy-MM-dd HH:mm）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public string? EndTimeString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放时段字符串。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"schedule_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_time\")]\n                        public string? ScheduleTimeString { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置出价方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pricing\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pricing\")]\n                        public string? PricingType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置点击出价/展示出价（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bid\")]\n                        public decimal? Bid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置目标转化出价/预期成本（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cpa_bid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cpa_bid\")]\n                        public decimal? CPABid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置深度优化方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"deep_bid_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"deep_bid_type\")]\n                        public string? DeepBidType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置深度优化出价（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"deep_cpabid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"deep_cpabid\")]\n                        public decimal? DeepCPABid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置鲁班目标 ROI 出价策略系数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"luban_roi_goal\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"luban_roi_goal\")]\n                        public decimal? LubanROIGoal { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置深度转化 ROI 系数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"roi_goal\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"roi_goal\")]\n                        public decimal? DeepROIGoal { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告计划列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public static Types.Advertising[] AdvertisingList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public static Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingRejectReasonRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/reject_reason 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingRejectReasonRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n        public IList<long> AdvertisingIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingRejectReasonResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/ad/reject_reason 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingRejectReasonResponse : OceanEngineResponse<AdvertisingRejectReasonResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Item\n                    {\n                        public static class Types\n                        {\n                            public class AdRejection\n                            {\n                                /// <summary>\n                                /// 获取或设置广告计划 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                                public long AdvertisingId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核建议数据列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_data\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_data\")]\n                                public Types.RejectionItem[]? RejectionList { get; set; }\n                            }\n\n                            public class CreativeRejection\n                            {\n                                /// <summary>\n                                /// 获取或设置创意 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creative_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creative_id\")]\n                                public long CreativeId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核建议数据列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_data\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_data\")]\n                                public Types.RejectionItem[]? RejectionList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置程序化创意的素材维度审核建议列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"material_reject\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"material_reject\")]\n                                public Types.MaterialRejection[]? MaterialRejectionList { get; set; }\n                            }\n\n                            public class MaterialRejection\n                            {\n                                /// <summary>\n                                /// 获取或设置标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string? Title { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                                public string? ImageId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                                public string? VideoId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置审核建议。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string RejectReason { get; set; } = default!;\n                            }\n\n                            public class RejectionItem\n                            {\n                                /// <summary>\n                                /// 获取或设置审核项。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_item\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_item\")]\n                                public string Item { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核建议。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n                                public string Reason { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置计划维度审核建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_reject\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_reject\")]\n                        public Types.AdRejection? AdRejection { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意维度审核建议列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_reject\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_reject\")]\n                        public Types.CreativeRejection[]? CreativeRejectionList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置程序化创意的素材维度审核建议列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_reject\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_reject\")]\n                        public Types.MaterialRejection[]? MaterialRejectionList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置审核建议列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public static Types.Item[] List { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateBidRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/bid 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingUpdateBidRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class AdBid\n            {\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long AdvertisingId { get; set; }\n\n                /// <summary>\n                /// 获取或设置出价（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bid\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bid\")]\n                public decimal Bid { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划出价列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public IList<Types.AdBid> AdBidList { get; set; } = new List<Types.AdBid>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateBidResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/bid 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingUpdateBidResponse : OceanEngineResponse<AdvertisingUpdateBidResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure : AdvertisingUpdateStatusResponse.Types.Data.Types.Failure\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置成功的广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n                public long[] SuccessAdvertisingId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateBudgetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/budget 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingUpdateBudgetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class AdBudget\n            {\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long AdvertisingId { get; set; }\n\n                /// <summary>\n                /// 获取或设置预算（单位：元）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"budget\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n                public decimal Budget { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划预算列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public IList<Types.AdBudget> AdBudgetList { get; set; } = new List<Types.AdBudget>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateBudgetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/budget 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingUpdateBudgetResponse : OceanEngineResponse<AdvertisingUpdateBudgetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure : AdvertisingUpdateStatusResponse.Types.Data.Types.Failure\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置成功的广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n                public long[] SuccessAdvertisingId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingUpdateRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class DPAProductTarget : AdvertisingCreateRequest.Types.DPAProductTarget\n            {\n            }\n\n            public class AudienceLocation : AdvertisingCreateRequest.Types.AudienceLocation\n            {\n            }\n\n            public class CustomAction : AdvertisingCreateRequest.Types.CustomAction\n            {\n            }\n\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n        public long AdvertisingId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? AdvertisingName { get; set; }\n\n        /// <summary>\n        /// 获取或设置数据下载链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_url\")]\n        public string? DownloadUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用包名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package\")]\n        public string? Package { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_type\")]\n        public string? AppType { get; set; }\n\n        /// <summary>\n        /// 获取或设置下载方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"download_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"download_mode\")]\n        public string? DownloadMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_url\")]\n        public string? OpenUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置备用链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ulink\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ulink\")]\n        public string? ULink { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_type\")]\n        public string? DPAOpenUrlType { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接字段选择。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_url_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_url_field\")]\n        public string? DPAOpenUrlField { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_open_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_open_urls\")]\n        public string[]? DPAOpenUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页检测参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_url_params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_url_params\")]\n        public string? ExternalUrlParameters { get; set; }\n\n        /// <summary>\n        /// 获取或设置直达链接检测参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_url_params\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_url_params\")]\n        public string? OpenUrlParameters { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 投放范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_type\")]\n        public string? DPACategoryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 分类 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_categories\")]\n        public IList<long>? DPACategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_products\")]\n        public IList<long>? DPAProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品投放条件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_product_target\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_product_target\")]\n        public IList<Types.DPAProductTarget>? DPAProductTargetList { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页链接字段选择。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_external_url_field\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_url_field\")]\n        public string? DPAExternalUrlField { get; set; }\n\n        /// <summary>\n        /// 获取或设置落地页链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_external_urls\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_external_urls\")]\n        public IList<string>? DPAExternalUrlList { get; set; }\n\n        /// <summary>\n        /// 获取或设置链接类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"params_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"params_type\")]\n        public string? ParametersType { get; set; }\n\n        /// <summary>\n        /// 获取或设置搜索快投关键词状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"feed_delivery_search\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"feed_delivery_search\")]\n        public string? DeedDeliverySearchStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向包 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"audience_package_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"audience_package_id\")]\n        public long? AudiencePackageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向城市。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"city\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n        public string? City { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向区县。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"district\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n        public string? District { get; set; }\n\n        /// <summary>\n        /// 获取或设置行政区域版本号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"region_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"region_version\")]\n        public string? RegionVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向商圈 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"business_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"business_ids\")]\n        public IList<int>? BusinessIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向位置类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"location_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"location_type\")]\n        public string? LocationType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向位置信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"geolocation\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"geolocation\")]\n        public Types.AudienceLocation? Location { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向性别类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"gender\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n        public string? GenderType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向年龄类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"age\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"age\")]\n        public IList<string>? AgeTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向职业类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"career\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"career\")]\n        public IList<string>? CareerTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向定向人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"retargeting_tags_include\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_include\")]\n        public IList<long>? RetargetingTagsIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向排除人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"retargeting_tags_exclude\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"retargeting_tags_exclude\")]\n        public IList<long>? RetargetingTagsExcludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向行为兴趣。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_action_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_action_mode\")]\n        public string? InterestActionMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为场景列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_scene\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_scene\")]\n        public IList<string>? ActionSceneList { get; set; }\n\n        /// <summary>\n        /// 获取或设置用户发生行为天数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_days\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_days\")]\n        public int? ActionDays { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为类目词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_categories\")]\n        public IList<long>? ActionCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置行为关键词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_words\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_words\")]\n        public IList<long>? ActionWordIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置兴趣类目词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_categories\")]\n        public IList<long>? InterestCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置兴趣关键词 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"interest_words\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"interest_words\")]\n        public IList<long>? InterestWordIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人互动用户行为类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_behaviors\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_behaviors\")]\n        public IList<string>? AwemeFanBehaviorList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人互动行为时间范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_time_scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_time_scope\")]\n        public string? AwemeFanTimeScope { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人分类 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_categories\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_categories\")]\n        public IList<long>? AwemeFanCategoryIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置抖音达人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"aweme_fan_accounts\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"aweme_fan_accounts\")]\n        public List<long>? AwemeFanAccountIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高活跃用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_aweme_abnormal_active\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_abnormal_active\")]\n        public int? FilterAwemeAbnormalActiveType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高关注数用户。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_aweme_fans_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_aweme_fans_count\")]\n        public int? FilterAwemeFanCount { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤高活跃用户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filter_own_aweme_fans\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filter_own_aweme_fans\")]\n        public int? FilterOwnAwemeFansType { get; set; }\n\n        /// <summary>\n        /// 获取或设置媒体定向类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"superior_popularity_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"superior_popularity_type\")]\n        public string? SuperiorPopularityType { get; set; }\n\n        /// <summary>\n        /// 获取或设置定向流量包 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_package\")]\n        public List<long>? FlowPackageIdIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置排除定向流量包 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclude_flow_package\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_flow_package\")]\n        public List<long>? FlowPackageIdExcluedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"platform\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n        public List<string>? PlatformList { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低安卓版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"android_osv\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"android_osv\")]\n        public string? AndroidVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低 iOS 版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ios_osv\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ios_osv\")]\n        public string? IosVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置设备类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"device_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"device_type\")]\n        public List<string>? DeviceTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置网络类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ac\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ac\")]\n        public List<string>? NetworkTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运营商列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"carrier\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"carrier\")]\n        public List<string>? CarrierList { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤已安装类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hide_if_exists\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_exists\")]\n        public int? HideIfExistsType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤已转换类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"hide_if_converted\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"hide_if_converted\")]\n        public int? HideIfConvertedType { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤时间范围类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"converted_time_duration\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"converted_time_duration\")]\n        public string? ConvertedTimeDurationTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置新用户使用头条的时间类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activate_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activate_type\")]\n        public List<string>? ActivateTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置文章分类列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"article_category\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"article_category\")]\n        public List<string>? ArticleCategoryList { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机品牌列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"device_brand\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"device_brand\")]\n        public List<string>? DeviceBrandList { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机价格区间（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"launch_price\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"launch_price\")]\n        public List<int>? LaunchPriceRange { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用智能放量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auto_extend_enabled\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_enabled\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAutoExtendEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置可放开定向列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auto_extend_targets\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auto_extend_targets\")]\n        public IList<string>? AutoExtendTargetList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用 LBS 地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_lbs\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_lbs\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPALBSEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用城市地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_city\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_city\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPACityEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用省份地域匹配。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_province\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_province\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPAProvinceEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否启用 DPA 行为重定向。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_local_audience\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_local_audience\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDPALocalAudienceEnabled { get; set; }\n\n        /// <summary>\n        /// 获取或设置包含人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"include_custom_actions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"include_custom_actions\")]\n        public IList<Types.CustomAction>? CustomActionIncludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置排除人群包列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"exclude_custom_actions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"exclude_custom_actions\")]\n        public IList<Types.CustomAction>? CustomActionExcludedList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 DPA 商品重定向推荐类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dpa_recommend_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dpa_recommend_type\")]\n        public int? DPARecommendType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否调整自动出价。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"adjust_cpa\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"adjust_cpa\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsAutoAdjustCPA { get; set; }\n\n        /// <summary>\n        /// 获取或设置竞价策略投放方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"flow_control_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"flow_control_mode\")]\n        public string? FlowControlMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n        public decimal? Budget { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放时间类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schedule_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_type\")]\n        public string? ScheduleType { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放结束时间字符串（格式：yyyy-MM-dd HH:mm）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public string? EndTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放时段字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"schedule_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"schedule_time\")]\n        public string? ScheduleTimeString { get; set; }\n\n        /// <summary>\n        /// 获取或设置点击出价/展示出价（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"bid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"bid\")]\n        public decimal? Bid { get; set; }\n\n        /// <summary>\n        /// 获取或设置目标转化出价/预期成本（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cpa_bid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cpa_bid\")]\n        public decimal? CPABid { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度优化出价（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"deep_cpabid\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"deep_cpabid\")]\n        public decimal? DeepCPABid { get; set; }\n\n        /// <summary>\n        /// 获取或设置鲁班目标 ROI 出价策略系数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"luban_roi_goal\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"luban_roi_goal\")]\n        public decimal? LubanROIGoal { get; set; }\n\n        /// <summary>\n        /// 获取或设置深度转化 ROI 系数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"roi_goal\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"roi_goal\")]\n        public decimal? DeepROIGoal { get; set; }\n\n        /// <summary>\n        /// 获取或设置展示监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_url\")]\n        public IList<string>? TrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置点击监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_track_url\")]\n        public IList<string>? ActionTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频有效播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_effective_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_effective_track_url\")]\n        public IList<string>? VideoPlayEffectiveTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播完监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_done_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_done_track_url\")]\n        public IList<string>? VideoPlayDoneTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_track_url\")]\n        public IList<string>? VideoPlayTrackUrl { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingUpdateResponse : OceanEngineResponse<AdvertisingUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long AdvertisingId { get; set; }\n\n                /// <summary>\n                /// 获取或设置此次修改是否需要审核。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"need_audit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"need_audit\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                public bool RequireAudit { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateStatusRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/status 接口的请求。</para>\n    /// </summary>\n    public class AdvertisingUpdateStatusRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n        public IList<long> AdvertisingIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置操作状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"opt_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"opt_status\")]\n        public string Operation { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Advertising/AdvertisingUpdateStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/ad/update/status 接口的响应。</para>\n    /// </summary>\n    public class AdvertisingUpdateStatusResponse : OceanEngineResponse<AdvertisingUpdateStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure\n                    {\n                        /// <summary>\n                        /// 获取或设置广告计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                        public long AdvertisingId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_message\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置成功的广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_ids\")]\n                public long[] SuccessAdvertisingId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserCreateV2Request.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/create_v2 接口的请求。</para>\n    /// </summary>\n    public class AgentAdvertiserCreateV2Request : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账户名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置公司。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"company\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"company\")]\n        public string Company { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置角色。\n        /// <para>默认值：ROLE_CHILD_ADVERTISER</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"role\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n        public string Role { get; set; } = \"ROLE_CHILD_ADVERTISER\";\n\n        /// <summary>\n        /// 获取或设置账号类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_source\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_source\")]\n        public string? AccountSource { get; set; }\n\n        /// <summary>\n        /// 获取或设置营销区域。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_area\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_area\")]\n        public string PromotionArea { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置营销中心省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_province\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_province\")]\n        public int PromotionProvinceCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置营销中心城市编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_city\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_city\")]\n        public int PromotionCityCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置一级行业 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"first_industry_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"first_industry_id\")]\n        public int FirstIndustryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置二级行业 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"second_industry_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"second_industry_id\")]\n        public int SecondIndustryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系邮箱。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string Email { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置联系人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contact\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contact\")]\n        public string Contact { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public string MobileNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置固话号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"telephone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"telephone\")]\n        public string? TeleNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public string Address { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置执照类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"license_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"license_type\")]\n        public int LicenseType { get; set; }\n\n        /// <summary>\n        /// 获取或设置执照编号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"license_no\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"license_no\")]\n        public string LicenseNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置执照省份编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"license_province\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"license_province\")]\n        public int LicenseProvinceCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置执照城市编码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"license_city\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"license_city\")]\n        public int LicenseCityCode { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌/事业部。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand\")]\n        public string? Brand { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserCreateV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/create_v2 接口的响应。</para>\n    /// </summary>\n    public class AgentAdvertiserCreateV2Response : OceanEngineResponse<AgentAdvertiserCreateV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserRechargeRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/recharge 接口的请求。</para>\n    /// </summary>\n    public class AgentAdvertiserRechargeRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置转账类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"transfer_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"transfer_type\")]\n        public string TransferType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置转账金额（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n        public decimal Amount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserRechargeResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/recharge 接口的响应。</para>\n    /// </summary>\n    public class AgentAdvertiserRechargeResponse : OceanEngineResponse<AgentAdvertiserRechargeResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置交易流水号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"transaction_seq\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"transaction_seq\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                public string TransactionSequenceNumber { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserRefundRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/refund 接口的请求。</para>\n    /// </summary>\n    public class AgentAdvertiserRefundRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置转账类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"transfer_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"transfer_type\")]\n        public string TransferType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置转账金额（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"amount\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n        public decimal Amount { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserRefundResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/refund 接口的响应。</para>\n    /// </summary>\n    public class AgentAdvertiserRefundResponse : OceanEngineResponse<AgentAdvertiserRefundResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置交易流水号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"transaction_seq\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"transaction_seq\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringConverter))]\n                public string TransactionSequenceNumber { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserSelectRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/advertiser/select 接口的请求。</para>\n    /// </summary>\n    public class AgentAdvertiserSelectRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserSelectResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/advertiser/select 接口的响应。</para>\n    /// </summary>\n    public class AgentAdvertiserSelectResponse : OceanEngineResponse<AgentAdvertiserSelectResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Pagination\n                    {\n                        /// <summary>\n                        /// 获取或设置分页页码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n                        public int PageNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分页每页数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n                        public int PageSize { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_number\")]\n                        public int TotalCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置总页数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total_page\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total_page\")]\n                        public int TotalPage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public long[] AdvertiserIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置账号类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_source\")]\n                public string? AccountSource { get; set; }\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserUpdateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/update 接口的请求。</para>\n    /// </summary>\n    public class AgentAdvertiserUpdateRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账户名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? Name { get; set; }\n\n        /// <summary>\n        /// 获取或设置联系人。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"contacter\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"contacter\")]\n        public string? Contact { get; set; }\n\n        /// <summary>\n        /// 获取或设置手机号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phonenumber\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phonenumber\")]\n        public string? MobileNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置固话号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"telephone\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"telephone\")]\n        public string? TeleNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/Advertiser/AgentAdvertiserUpdateResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/agent/advertiser/update 接口的响应。</para>\n    /// </summary>\n    public class AgentAdvertiserUpdateResponse : OceanEngineResponse<AgentAdvertiserUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置此次修改是否需要审核。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"need_audit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"need_audit\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                public bool RequireAudit { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/AgentChildAgentSelectRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/child_agent/select 接口的请求。</para>\n    /// </summary>\n    public class AgentChildAgentSelectRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AgentId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/AgentChildAgentSelectResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/child_agent/select 接口的响应。</para>\n    /// </summary>\n    public class AgentChildAgentSelectResponse : OceanEngineResponse<AgentChildAgentSelectResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置二级代理商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"child_agent_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"child_agent_ids\")]\n                public long[] ChildAgentIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/AgentInfoRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/info 接口的请求。</para>\n    /// </summary>\n    public class AgentInfoRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置代理商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n        public IList<long> AgentIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置查询字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fields\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n        public IList<string>? FieldList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Agent/AgentInfoResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/agent/info 接口的响应。</para>\n    /// </summary>\n    public class AgentInfoResponse : OceanEngineResponse<AgentInfoResponse.Types.Agent[]>\n    {\n        public static class Types\n        {\n            public class Agent\n            {\n                /// <summary>\n                /// 获取或设置代理商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agent_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agent_id\")]\n                public long? AgentId { get; set; }\n\n                /// <summary>\n                /// 获取或设置代理商名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"agent_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"agent_name\")]\n                public string? AgentName { get; set; }\n\n                /// <summary>\n                /// 获取或设置客户 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"customer_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"customer_id\")]\n                public long? CustomerId { get; set; }\n\n                /// <summary>\n                /// 获取或设置客户名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"customer_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"customer_name\")]\n                public string? CustomerName { get; set; }\n\n                /// <summary>\n                /// 获取或设置公司 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_id\")]\n                public long? CompanyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置公司名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"company_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"company_name\")]\n                public string? CompanyName { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_status\")]\n                public string? AccountStatus { get; set; }\n\n                /// <summary>\n                /// 获取或设置角色。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                public string? Role { get; set; }\n\n                /// <summary>\n                /// 获取或设置注册时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                public DateTimeOffset? CreateTime { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/BusinessPlatform/BusinessPlatformPartnerOrganizationListRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/business_platform/partner_organization/list 接口的请求。</para>\n    /// </summary>\n    public class BusinessPlatformPartnerOrganizationListRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置纵横组织 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"partner_organization_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"partner_organization_ids\")]\n                public IList<long>? PartnerOrganizationList { get; set; }\n\n                /// <summary>\n                /// 获取或设置合作状态列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public IList<string>? StatusList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置账户管家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"organization_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"organization_id\")]\n        public long OrganizationId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/BusinessPlatform/BusinessPlatformPartnerOrganizationListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/business_platform/partner_organization/list 接口的响应。</para>\n    /// </summary>\n    public class BusinessPlatformPartnerOrganizationListResponse : OceanEngineResponse<BusinessPlatformPartnerOrganizationListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PartnerOrganization\n                    {\n                        /// <summary>\n                        /// 获取或设置组织 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"partner_organization_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"partner_organization_id\")]\n                        public long PartnerOrganizationId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合作状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"remark\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"remark\")]\n                        public string? Remark { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置合作组织列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.PartnerOrganization[] PartnerOrganizationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignCreateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/create 接口的请求。</para>\n    /// </summary>\n    public class CampaignCreateRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_name\")]\n        public string CampaignName { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置广告组类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_type\")]\n        public string? CampaignType { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n        public decimal? Budget { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组预算类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n        public string BudgetMode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置广告组推广目的。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"landing_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"landing_type\")]\n        public string LandingType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置广告组营销目的。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"marketing_purpose\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_purpose\")]\n        public string? MarketingPurpose { get; set; }\n\n        /// <summary>\n        /// 获取或设置操作状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"operation\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"operation\")]\n        public string? Operation { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_related_num\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_related_num\")]\n        public string? DeliveryRelatedType { get; set; }\n\n        /// <summary>\n        /// 获取或设置投放类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_mode\")]\n        public string? DeliveryMode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignCreateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/create 接口的响应。</para>\n    /// </summary>\n    public class CampaignCreateResponse : OceanEngineResponse<CampaignCreateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                public long CampaignId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/campaign/get 接口的请求。</para>\n    /// </summary>\n    public class CampaignGetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置广告组 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ids\")]\n                public IList<long>? CampaignIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告组名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_name\")]\n                public string? CampaignName { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告组推广目的。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"landing_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"landing_type\")]\n                public string? LandingType { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告组状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string? Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_create_time\")]\n                public string? CreateDateString { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fields\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n        public IList<string>? FieldList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignGetResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/campaign/get 接口的响应。</para>\n    /// </summary>\n    public class CampaignGetResponse : OceanEngineResponse<CampaignGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Campaign\n                    {\n                        /// <summary>\n                        /// 获取或设置广告组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public long? CampaignId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组预算（单位：元）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n                        public decimal? Budget { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组预算类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n                        public string? BudgetMode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组推广目的。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"landing_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"landing_type\")]\n                        public string? LandingType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组营销目的。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"marketing_purpose\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"marketing_purpose\")]\n                        public string? MarketingPurpose { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告组状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string? Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n                        public long? ModifyTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"campaign_create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"campaign_modify_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_modify_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? UpdateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商品类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_related_num\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_related_num\")]\n                        public string? DeliveryRelatedType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置投放类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_mode\")]\n                        public string? DeliveryMode { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告组列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Campaign[] CampaignList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignUpdateRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/update 接口的请求。</para>\n    /// </summary>\n    public class CampaignUpdateRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n        public long CampaignId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_name\")]\n        public string? CampaignName { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组预算（单位：元）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget\")]\n        public decimal? Budget { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组预算类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"budget_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"budget_mode\")]\n        public string? BudgetMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置修改时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n        public long ModifyTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/update 接口的响应。</para>\n    /// </summary>\n    public class CampaignUpdateResponse : OceanEngineResponse<CampaignUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置广告组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                public long CampaignId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignUpdateStatusRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/update/status 接口的请求。</para>\n    /// </summary>\n    public class CampaignUpdateStatusRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告组 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"campaign_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_ids\")]\n        public IList<long> CampaignIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置操作状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"opt_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"opt_status\")]\n        public string Operation { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Campaign/CampaignUpdateStatusResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/campaign/update/status 接口的响应。</para>\n    /// </summary>\n    public class CampaignUpdateStatusResponse : OceanEngineResponse<CampaignUpdateStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure\n                    {\n                        /// <summary>\n                        /// 获取或设置广告组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                        public long CampaignId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"error_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"error_message\")]\n                        public string ErrorMessage { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置成功的广告组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_ids\")]\n                public long[] SuccessCampaignId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Creative/CreativeCreateV2Request.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/creative/create_v2 接口的请求。</para>\n    /// </summary>\n    public class CreativeCreateV2Request : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Material\n            {\n                public static class Types\n                {\n                    public class TemplateData\n                    {\n                        /// <summary>\n                        /// 获取或设置自定义背景图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"background_image_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"background_image_id\")]\n                        public string? ImageMode { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_mode\")]\n                public string ImageMode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置图片 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n                public IList<string>? ImageIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置封面图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string? ImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string? VideoId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                public string? TemplateId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 模板参数列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_data_list\")]\n                public IList<Types.TemplateData>? TemplateDataList { get; set; }\n            }\n\n            public class Title\n            {\n                /// <summary>\n                /// 获取或设置创意标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? CreativeTitle { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意动态词包 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_word_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_word_ids\")]\n                public IList<long>? CreativeWordIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 词包 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dpa_dict_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dpa_dict_ids\")]\n                public IList<long>? DPADictionaryIdList { get; set; }\n            }\n\n            public class Component\n            {\n                /// <summary>\n                /// 获取或设置组件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"component_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"component_id\")]\n                public string ComponentId { get; set; } = string.Empty;\n            }\n\n            public class Creative\n            {\n                public static class Types\n                {\n                    public class TemplateData : Material.Types.TemplateData\n                    {\n                    }\n\n                    public class PlayableInfo\n                    {\n                        /// <summary>\n                        /// 获取或设置基础试玩素材 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"playable_url_basic\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"playable_url_basic\")]\n                        public string? BasicPlayableUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置素材类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_mode\")]\n                public string ImageMode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置创意标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意动态词包 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_word_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_word_ids\")]\n                public IList<long>? CreativeWordIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 词包 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dpa_dict_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dpa_dict_ids\")]\n                public IList<long>? DPADictionaryIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n                public IList<string>? ImageIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置封面图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string? ImageId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string? VideoId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                public string? TemplateId { get; set; }\n\n                /// <summary>\n                /// 获取或设置 DPA 模板参数列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template_data_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template_data_list\")]\n                public IList<Types.TemplateData>? TemplateDataList { get; set; }\n\n                /// <summary>\n                /// 获取或设置基础试玩素材信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playable_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playable_info\")]\n                public Types.PlayableInfo? PlayableInfo { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否将视频的封面和标题同步到图片创意。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"derive_poster_cid\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"derive_poster_cid\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n                public bool? IsDerivePosterCreativeId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品库视频模版。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dpa_template\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dpa_template\")]\n                public int? DPATemplate { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品库视频生成类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dpa_video_template_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dpa_video_template_type\")]\n                public string? DPAVideoTemplateType { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义商品库视频模板 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dpa_video_task_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dpa_video_task_ids\")]\n                public IList<string>? DPAVideoTaskIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置第三方 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"third_party_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"third_party_id\")]\n                public string? ThirdPartyId { get; set; }\n\n                /// <summary>\n                /// 获取或设置组件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"component_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"component_info\")]\n                public IList<Component>? ComponentList { get; set; }\n            }\n\n            public class PromotionCard\n            {\n                /// <summary>\n                /// 获取或设置是否使用门店包。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enable_store_pack\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enable_store_pack\")]\n                public bool IsStorePackEnabled { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品卖点列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_selling_points\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_selling_points\")]\n                public IList<string> ProductSellingPointList { get; set; } = new List<string>();\n\n                /// <summary>\n                /// 获取或设置商品描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_description\")]\n                public string ProductDescription { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置推广卡片的行动号召。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"call_to_action\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"call_to_action\")]\n                public string CallToAction { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置是否使用智能优选。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"enable_personal_action\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"enable_personal_action\")]\n                public bool IsPersonalActionEnabled { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_image_id\")]\n                public string ProductImageId { get; set; } = string.Empty;\n            }\n\n            public class CommerceCard\n            {\n                /// <summary>\n                /// 获取或设置直播卡片图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"call_to_action\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"call_to_action\")]\n                public string ImageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置产品名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string Source { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置产品卖点。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告计划 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n        public long AdvertisingId { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告投放位置列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n        public IList<string>? InventoryType { get; set; }\n\n        /// <summary>\n        /// 获取或设置优选广告位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"smart_inventory\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"smart_inventory\")]\n        public int? SmartTnventory { get; set; }\n\n        /// <summary>\n        /// 获取或设置首选场景广告位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scene_inventory\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scene_inventory\")]\n        public string? SceneInventory { get; set; }\n\n        /// <summary>\n        /// 获取或设置创意方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"creative_material_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"creative_material_mode\")]\n        public string? CreativeMaterialMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置程序化创意包 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"procedural_package_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"procedural_package_id\")]\n        public long? ProceduralPackageId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否自动生成视频素材。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_presented_video\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_presented_video\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsPresentedVideo { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否开启衍生计划。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"generate_derived_ad\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"generate_derived_ad\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsGenerateDerivedAd { get; set; }\n\n        /// <summary>\n        /// 获取或设置素材列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_list\")]\n        public IList<Types.Material>? MaterialList { get; set; }\n\n        /// <summary>\n        /// 获取或设置标题列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title_list\")]\n        public IList<Types.Title>? TitleList { get; set; }\n\n        /// <summary>\n        /// 获取或设置组件列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"component_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"component_info\")]\n        public IList<Types.Component>? ComponentList { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义素材列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"creatives\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"creatives\")]\n        public IList<Types.Creative>? CreativeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置广告来源。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n        public string? Source { get; set; }\n\n        /// <summary>\n        /// 获取或设置推广抖音号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ies_core_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ies_core_user_id\")]\n        public string? IESCoreUserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否主页作品列表显示广告内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_feed_and_fav_see\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_feed_and_fav_see\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsFeedAndFavoritesVisible { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否开启自动生成素材。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"creative_auto_generate_switch\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"creative_auto_generate_switch\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsCreativeAutoGenerate { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_name\")]\n        public string? AppName { get; set; }\n\n        /// <summary>\n        /// 获取或设置副标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sub_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sub_title\")]\n        public string? SubTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用下载详情页 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"web_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"web_url\")]\n        public string? WebUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置行动号召。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_text\")]\n        public string? ActionText { get; set; }\n\n        /// <summary>\n        /// 获取或设置搭配试玩素材 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"playable_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"playable_url\")]\n        public string? PlayableUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否关闭评论。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_comment_disable\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.NumericalBooleanConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_comment_disable\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalBooleanConverter))]\n        public bool? IsDisableComment { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品推广卡片信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"promotion_card\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"promotion_card\")]\n        public Types.PromotionCard? PromotionCard { get; set; }\n\n        /// <summary>\n        /// 获取或设置创意展现方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"creative_display_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"creative_display_mode\")]\n        public string? CreativeDisplayMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置允许客户端下载视频时需满足下列条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_download_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_download_status\")]\n        public int? AdDownloadStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置附加创意类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advanced_creative_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advanced_creative_type\")]\n        public string? AdvancedCreativeType { get; set; }\n\n        /// <summary>\n        /// 获取或设置产品/商业卡列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"commerce_cards\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"commerce_cards\")]\n        public IList<Types.CommerceCard>? CommerceCardList { get; set; }\n\n        /// <summary>\n        /// 获取或设置副标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advanced_creative_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advanced_creative_title\")]\n        public string? AdvancedCreativeTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置电话号码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public string? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置按钮文本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"button_text\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"button_text\")]\n        public string? ButtonText { get; set; }\n\n        /// <summary>\n        /// 获取或设置表单提交链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"form_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"form_url\")]\n        public string? FormUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置三级行业 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"third_industry_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"third_industry_id\")]\n        public int? ThirdIndustryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置创意标签列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_keywords\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_keywords\")]\n        public IList<string>? AdKeywordList { get; set; }\n\n        /// <summary>\n        /// 获取或设置展示监测链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_url\")]\n        public string? TrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置点击监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"action_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"action_track_url\")]\n        public string? ActionTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频有效播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_effective_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_effective_track_url\")]\n        public string? VideoPlayEffectiveTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播完监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_done_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_done_track_url\")]\n        public string? VideoPlayDoneTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频播放监测链接列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_play_track_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_play_track_url\")]\n        public string? VideoPlayTrackUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置数据发送方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"track_url_send_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"track_url_send_type\")]\n        public string? TrackUrlSendType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Creative/CreativeCreateV2Response.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/creative/create_v2 接口的响应。</para>\n    /// </summary>\n    public class CreativeCreateV2Response : OceanEngineResponse<CreativeCreateV2Response.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Creative\n                    {\n                        /// <summary>\n                        /// 获取或设置创意 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_id\")]\n                        public long? CreativeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_mode\")]\n                        public string ImageMode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创意标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string CreativeTitle { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置第三方 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_party_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_party_id\")]\n                        public string ThirdPartyId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                public long AdvertiserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long advertisingId { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_id\")]\n                public long CreativeId { get; set; }\n\n                /// <summary>\n                /// 获取或设置修改时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"modify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"modify_time\")]\n                public long ModifyTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置自定义素材列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creatives\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creatives\")]\n                public Types.Creative[] CreativeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Creative/CreativeGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/creative/get 接口的请求。</para>\n    /// </summary>\n    public class CreativeGetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置创意 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_ids\")]\n                public IList<long>? CreativeIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"campaign_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_id\")]\n                public long? CampaignId { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告计划 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                public long? AdvertisingId { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_title\")]\n                public string? CreativeTitle { get; set; }\n\n                /// <summary>\n                /// 获取或设置推广目的。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"landing_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"landing_type\")]\n                public string? LandingType { get; set; }\n\n                /// <summary>\n                /// 获取或设置出价方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pricing\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pricing\")]\n                public string? PricingType { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string? Status { get; set; }\n\n                /// <summary>\n                /// 获取或设置创意素材类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_mode\")]\n                public string? ImageMode { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_create_time\")]\n                public string? CreateDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新日期字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creative_modify_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creative_modify_time\")]\n                public string? CreateUpdateString { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置查询字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fields\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n        public IList<string>? FieldList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Creative/CreativeGetResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/creative/get 接口的响应。</para>\n    /// </summary>\n    public class CreativeGetResponse : OceanEngineResponse<CreativeGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Creative\n                    {\n                        public static class Types\n                        {\n                            public class Material\n                            {\n                                /// <summary>\n                                /// 获取或设置标题。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"title\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                                public string? Title { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                                public string? ImageId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                                public string? VideoId { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置创意 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_id\")]\n                        public long? CreativeId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long? AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告计划 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n                        public long? AdvertisingId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string? CreativeTitle { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string? Status { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置操作状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"opt_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"opt_status\")]\n                        public string? Operation { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置动态词包 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_word_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_word_ids\")]\n                        public long[]? CreativeWordIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意素材类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_mode\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_mode\")]\n                        public string? ImageMode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意素材图片 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n                        public string[]? ImageIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意素材封面图片 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                        public string? ImageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创意素材视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string? VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置第三方 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"third_party_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"third_party_id\")]\n                        public string? ThirdPartyId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"metarials\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"metarials\")]\n                        public Types.Material[]? MaterialList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置修改时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creative_modify_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creative_modify_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset? UpdateTime { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告组列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Creative[] CampaignList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/CustomerCenter/Advertiser/CustomerCenterAdvertiserListRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/customer_center/advertiser/list 接口的请求。</para>\n    /// </summary>\n    public class CustomerCenterAdvertiserListRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置账户名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"account_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"account_name\")]\n                public string? AccountName { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置纵横组织 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cc_account_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cc_account_id\")]\n        public long CCAccountId { get; set; }\n\n        /// <summary>\n        /// 获取或设置账户类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"account_source\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"account_source\")]\n        public string? AccountSource { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/CustomerCenter/Advertiser/CustomerCenterAdvertiserListResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/customer_center/advertiser/list 接口的响应。</para>\n    /// </summary>\n    public class CustomerCenterAdvertiserListResponse : OceanEngineResponse<CustomerCenterAdvertiserListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertiser\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long? AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_name\")]\n                        public string? AdvertiserName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置企业号 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"e_douyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"e_douyin_id\")]\n                        public string? EDouyinId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置企业号名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"e_douyin_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"e_douyin_name\")]\n                        public string? EDouyinName { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Advertiser[] AdvertiserList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Enterprise/EnterpriseInfoRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1.0/enterprise/info 接口的请求。</para>\n    /// </summary>\n    public class EnterpriseInfoRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置企业号 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"e_douyin_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"e_douyin_ids\")]\n        public IList<string> EDouyinIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Enterprise/EnterpriseInfoResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /v1.0/enterprise/info 接口的响应。</para>\n    /// </summary>\n    public class EnterpriseInfoResponse : OceanEngineResponse<EnterpriseInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Enterprise\n                    {\n                        /// <summary>\n                        /// 获取或设置企业号 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"e_douyin_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"e_douyin_id\")]\n                        public string EDouyinId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置企业号名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"e_douyin_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"e_douyin_name\")]\n                        public string Name { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置企业号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Enterprise[] EnterpriseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertiserGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/image/ad/get 接口的请求。</para>\n    /// </summary>\n    public class FileImageAdvertiserGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n        public IList<string> ImageIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertiserGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/image/ad/get 接口的响应。</para>\n    /// </summary>\n    public class FileImageAdvertiserGetResponse : OceanEngineResponse<FileImageAdvertiserGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string ImageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int Size { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string ImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string Format { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片 MD5 哈希值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                        public string Signature { get; set; } = default!;\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                        public long MaterialId { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Image[] ImageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertiserRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/image/advertiser 接口的请求。</para>\n    /// </summary>\n    public class FileImageAdvertiserRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上传资质。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadTo { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片 URL。与字段 <see cref=\"ImageFileBytes\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。与字段 <see cref=\"ImageUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[]? ImageFileBytes { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MD5 哈希值。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileHash { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertiserResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/image/advertiser 接口的响应。</para>\n    /// </summary>\n    public class FileImageAdvertiserResponse : OceanEngineResponse<FileImageAdvertiserResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string ImageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int Size { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string ImageUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片格式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                public string Format { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片 MD5 哈希值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"signature\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                public string Signature { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertisingRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/image/ad 接口的请求。</para>\n    /// </summary>\n    public class FileImageAdvertisingRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置上传类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置图片 URL。与字段 <see cref=\"ImageFileBytes\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件字节数组。与字段 <see cref=\"ImageUrl\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[]? ImageFileBytes { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MD5 哈希值。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileHash { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageAdvertisingResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/image/ad 接口的响应。</para>\n    /// </summary>\n    public class FileImageAdvertisingResponse : OceanEngineResponse<FileImageAdvertisingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : FileImageAdvertiserResponse.Types.Data\n            {\n                /// <summary>\n                /// 获取或设置素材 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                public long MaterialId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/image/get 接口的请求。</para>\n    /// </summary>\n    public class FileImageGetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置图片 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n                public IList<string>? ImageIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置素材 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_ids\")]\n                public IList<long>? MaterialIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片 MD5 哈希值列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"signatures\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"signatures\")]\n                public IList<string>? SignatureList { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int? Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int? Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片宽高比列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ratio\")]\n                public IList<double>? RatioList { get; set; }\n\n                /// <summary>\n                /// 获取或设置开始时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                public string? StartDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置结束时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                public string? EndDateString { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileImageGetResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/image/get 接口的响应。</para>\n    /// </summary>\n    public class FileImageGetResponse : OceanEngineResponse<FileImageGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string ImageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int Size { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string ImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string Format { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片 MD5 哈希值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                        public string Signature { get; set; } = default!;\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                        public long MaterialId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"filename\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"filename\")]\n                        public string FileName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上传时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Image[] ImageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileMaterialBindRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/material/bind 接口的请求。</para>\n    /// </summary>\n    public class FileMaterialBindRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置素材归属的广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置待推送的广告主 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"target_advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"target_advertiser_ids\")]\n        public IList<long> TargetAdvertiserIdList { get; set; } = new List<long>();\n\n        /// <summary>\n        /// 获取或设置图片 ID 列表。与字段 <see cref=\"VideoIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"image_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"image_ids\")]\n        public IList<string>? ImageIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。与字段 <see cref=\"ImageIdList\"/> 二选一。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string>? VideoIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileMaterialBindResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/material/bind 接口的响应。</para>\n    /// </summary>\n    public class FileMaterialBindResponse : OceanEngineResponse<FileMaterialBindResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Failure\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置推送的广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target_advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target_advertiser_id\")]\n                        public long TargetAdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                        public string? FailReason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置失败列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_list\")]\n                public Types.Failure[] FailureList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoAdvertiserGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/video/ad/get 接口的请求。</para>\n    /// </summary>\n    public class FileVideoAdvertiserGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> VideoIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoAdvertiserGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/video/ad/get 接口的响应。</para>\n    /// </summary>\n    public class FileVideoAdvertiserGetResponse : OceanEngineResponse<FileVideoGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int Size { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string VideoUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                        public decimal Duration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string Format { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                        public long MaterialId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 MD5 哈希值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                        public string Signature { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poster_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poster_url\")]\n                        public string PosterUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频比特率（单位：bps）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bit_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bit_rate\")]\n                        public int BitRate { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoAdvertisingRequest.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/ad 接口的请求。</para>\n    /// </summary>\n    public class FileVideoAdvertisingRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] VideoFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置视频文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VideoFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件 MD5 哈希值。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VideoFileHash { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? VideoContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoAdvertisingResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/ad 接口的响应。</para>\n    /// </summary>\n    public class FileVideoAdvertisingResponse : OceanEngineResponse<FileVideoAdvertisingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string VideoId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                public int Size { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n                public string VideoUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频时长（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"duration\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                public decimal Duration { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频格式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                public string Format { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置素材 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                public long MaterialId { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 MD5 哈希值。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"signature\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                public string Signature { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoDeleteRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/delete 接口的请求。</para>\n    /// </summary>\n    public class FileVideoDeleteRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n        public IList<string> VideoIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoDeleteResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/delete 接口的响应。</para>\n    /// </summary>\n    public class FileVideoDeleteResponse : OceanEngineResponse<FileVideoDeleteResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置删除失败的视频 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_video_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_video_ids\")]\n                public string[] FailedVideoIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/video/get 接口的请求。</para>\n    /// </summary>\n    public class FileVideoGetRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                /// <summary>\n                /// 获取或设置视频 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n                public IList<string>? VideoIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置素材 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"material_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"material_ids\")]\n                public IList<long>? MaterialIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 MD5 哈希值列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"signatures\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"signatures\")]\n                public IList<string>? SignatureList { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int? Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int? Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频宽高比列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ratio\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ratio\")]\n                public IList<double>? RatioList { get; set; }\n\n                /// <summary>\n                /// 获取或设置开始时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                public string? StartDateString { get; set; }\n\n                /// <summary>\n                /// 获取或设置结束时间字符串（格式：yyyy-MM-dd）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                public string? EndDateString { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置过滤条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filtering\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filtering\")]\n        public Types.Filter? Filter { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页页码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page\")]\n        public int? PageNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoGetResponse.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/file/video/get 接口的响应。</para>\n    /// </summary>\n    public class FileVideoGetResponse : OceanEngineResponse<FileVideoGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int Size { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string VideoUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                        public decimal Duration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string Format { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置素材 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"material_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"material_id\")]\n                        public long MaterialId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 MD5 哈希值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature\")]\n                        public string Signature { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频封面 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"poster_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"poster_url\")]\n                        public string PosterUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频比特率（单位：bps）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bit_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bit_rate\")]\n                        public int BitRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"filename\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"filename\")]\n                        public string FileName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上传时间。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.BasicDateTimeOffsetConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.BasicDateTimeOffsetConverter))]\n                        public DateTimeOffset CreateTime { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                        public string? Source { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置素材标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"labels\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"labels\")]\n                        public string[]? LabelList { get; set; }\n                    }\n\n                    public class Pagination : AgentAdvertiserSelectResponse.Types.Data.Types.Pagination\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"page_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"page_info\")]\n                public Types.Pagination Pagination { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoUpdateRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/update 接口的请求。</para>\n    /// </summary>\n    public class FileVideoUpdateRequest : OceanEngineRequest\n    {\n        public static class Types\n        {\n            public class Video\n            {\n                /// <summary>\n                /// 获取或设置视频 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                public string VideoId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置视频文件名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"filename\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"filename\")]\n                public string VideoFileName { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"videos\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n        public IList<Types.Video> VideoList { get; set; } = new List<Types.Video>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/File/FileVideoUpdateResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /2/file/video/update 接口的响应。</para>\n    /// </summary>\n    public class FileVideoUpdateResponse : OceanEngineResponse<FileVideoUpdateResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Result\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置更新状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_code\")]\n                        public string Status { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                public Types.Result[] ResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Fund/FundSharedWalletBalanceGetRequest.cs",
    "content": "﻿using System.Collections.Generic;\n\n/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/fund/shared_wallet_balance/get 接口的请求。</para>\n    /// </summary>\n    public class FundSharedWalletBalanceGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n        public IList<long> AdvertiserIdList { get; set; } = new List<long>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Fund/FundSharedWalletBalanceGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/fund/shared_wallet_balance/get 接口的响应。</para>\n    /// </summary>\n    public class FundSharedWalletBalanceGetResponse : OceanEngineResponse<FundSharedWalletBalanceGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SharedWallet\n                    {\n                        public static class Types\n                        {\n                            public class BalanceDetail\n                            {\n                                /// <summary>\n                                /// 获取或设置余额（单位：元）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"balance\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"balance\")]\n                                public decimal Balance { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置余额可用广告位。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"billing_inventory\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"billing_inventory\")]\n                                public string? BillingInventory { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置余额查询状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置余额查询状态说明。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status_message\")]\n                        public string StatusMessage { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置余额详情列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"balance_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"balance_detail\")]\n                        public Types.BalanceDetail[] BalanceDetailList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置共享钱包列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.SharedWallet[] SharedWalletList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Majordomo/Advertiser/MajordomoAdvertiserSelectRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/majordomo/advertiser/select 接口的请求。</para>\n    /// </summary>\n    public class MajordomoAdvertiserSelectRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置账户管家 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Majordomo/Advertiser/MajordomoAdvertiserSelectResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/majordomo/advertiser/select 接口的响应。</para>\n    /// </summary>\n    public class MajordomoAdvertiserSelectResponse : OceanEngineResponse<MajordomoAdvertiserSelectResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertiser\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_name\")]\n                        public string AdvertiserName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Advertiser[] AdvertiserList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AccessTokenRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/access_token 接口的请求。</para>\n    /// </summary>\n    public class OAuth2AccessTokenRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置应用 ID。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public long? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用密钥。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"auth_code\";\n\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"auth_code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"auth_code\")]\n        public string AuthCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AccessTokenResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/access_token 接口的响应。</para>\n    /// </summary>\n    public class OAuth2AccessTokenResponse : OceanEngineResponse<OAuth2AccessTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置调用接口的凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置接口刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置接口刷新令牌有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token_expires_in\")]\n                public int RefreshTokenExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置授权的账号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_ids\")]\n                public long[] AdvertiserIdList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AdvertiserGetRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /oauth2/advertiser/get 接口的请求。</para>\n    /// </summary>\n    public class OAuth2AdvertiserGetRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置应用 ID。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public long? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用密钥。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <inheritdoc/>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public override string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AdvertiserGetResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /oauth2/advertiser/get 接口的响应。</para>\n    /// </summary>\n    public class OAuth2AdvertiserGetResponse : OceanEngineResponse<OAuth2AdvertiserGetResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertiser\n                    {\n                        /// <summary>\n                        /// 获取或设置账号 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n                        public long AdvertiserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置账号名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_name\")]\n                        public string AdvertiserName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置账号角色。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser_role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_role\")]\n                        public int AdvertiserRole { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置授权是否有效。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_valid\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_valid\")]\n                        public bool IsValid { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置新版授权账号角色。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"account_role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"account_role\")]\n                        public string? AccountRole { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置账号列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Advertiser[] AdvertiserList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AppAccessTokenRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/app_access_token 接口的请求。</para>\n    /// </summary>\n    public class OAuth2AppAccessTokenRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置应用 ID。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public long? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用密钥。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置接口刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2AppAccessTokenResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/app_access_token 接口的响应。</para>\n    /// </summary>\n    public class OAuth2AppAccessTokenResponse : OceanEngineResponse<OAuth2AppAccessTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置应用级调用接口的凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"app_access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"app_access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2RefreshTokenRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/refresh_token 接口的请求。</para>\n    /// </summary>\n    public class OAuth2RefreshTokenRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置应用 ID。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppId\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"app_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"app_id\")]\n        public long? AppId { get; set; }\n\n        /// <summary>\n        /// 获取或设置应用密钥。如果不指定将使用构造 <see cref=\"OceanEngineClient\"/> 时的 <see cref=\"OceanEngineClientOptions.AppSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"secret\")]\n        public string? AppSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置接口刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/OAuth2/OAuth2RefreshTokenResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth2/refresh_token 接口的响应。</para>\n    /// </summary>\n    public class OAuth2RefreshTokenResponse : OceanEngineResponse<OAuth2RefreshTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置调用接口的凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n                public int ExpiresIn { get; set; }\n\n                /// <summary>\n                /// 获取或设置接口刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置接口刷新令牌有效期（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token_expires_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token_expires_in\")]\n                public int RefreshTokenExpiresIn { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Tools/VideoCover/ToolsVideoCoverSuggestRequest.cs",
    "content": "﻿/* @codestyle-disable no-jsonable-property-in-request-get */\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/tools/video_cover/suggest 接口的请求。</para>\n    /// </summary>\n    public class ToolsVideoCoverSuggestRequest : OceanEngineRequest\n    {\n        /// <summary>\n        /// 获取或设置广告主 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"advertiser_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_id\")]\n        public long AdvertiserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        public string VideoId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/Tools/VideoCover/ToolsVideoCoverSuggestResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/tools/video_cover/suggest 接口的响应。</para>\n    /// </summary>\n    public class ToolsVideoCoverSuggestResponse : OceanEngineResponse<ToolsVideoCoverSuggestResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Cover\n                    {\n                        /// <summary>\n                        /// 获取或设置封面图片 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string ImageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置封面高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置封面图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string ImageUrl { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置封面生成状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置封面列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"list\")]\n                public Types.Cover[]? CoverList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/User/UserInfoRequest.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/user/info 接口的请求。</para>\n    /// </summary>\n    public class UserInfoRequest : OceanEngineRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Models/User/UserInfoResponse.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /2/user/info 接口的响应。</para>\n    /// </summary>\n    public class UserInfoResponse : OceanEngineResponse<UserInfoResponse.Types.User[]>\n    {\n        public static class Types\n        {\n            public class User\n            {\n                /// <summary>\n                /// 获取或设置用户 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public long UserId { get; set; }\n\n                /// <summary>\n                /// 获取或设置邮箱（已脱敏处理）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                public string Email { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户名。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"display_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"display_name\")]\n                public string DisplayName { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 一个巨量引擎开放平台 API HTTP 客户端。\n    /// </summary>\n    public class OceanEngineClient : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的巨量引擎开放平台凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"OceanEngineClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public OceanEngineClient(OceanEngineClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected OceanEngineClient(OceanEngineClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? OceanEngineEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(OceanEngineRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            if (request.DebugMode)\n            {\n                flurlRequest.WithHeader(\"X-Debug-Mode\", 1);\n            }\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : OceanEngineResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await base.WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : OceanEngineResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null;\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken).ConfigureAwait(false) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"OceanEngineClient\"/> 时使用的配置项。\n    /// </summary>\n    public class OceanEngineClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置巨量引擎开放平台 API 入口点。\n        /// <para>默认值：<see cref=\"OceanEngineEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = OceanEngineEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置巨量引擎开放平台应用 ID。\n        /// </summary>\n        public long AppId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置巨量引擎开放平台应用密钥。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineEndpoints.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 巨量引擎开放平台 API 接口域名。\n    /// </summary>\n    public static class OceanEngineEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://ad.oceanengine.com/open_api\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineException.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 当调用巨量引擎开放平台 API 出错时引发的异常。\n    /// </summary>\n    public class OceanEngineException : CommonException\n    {\n        /// <inheritdoc/>\n        public OceanEngineException()\n        {\n        }\n\n        /// <inheritdoc/>\n        public OceanEngineException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public OceanEngineException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 巨量引擎开放平台 API 请求的基类。\n    /// </summary>\n    public abstract class OceanEngineRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置接口调用凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否开启调试模式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual bool DebugMode { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/OceanEngineResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine\n{\n    /// <summary>\n    /// 巨量引擎开放平台 API 响应的基类。\n    /// </summary>\n    public abstract class OceanEngineResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取巨量引擎开放平台 API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public virtual int ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取巨量引擎开放平台 API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public virtual string? ErrorMessage { get; set; }\n\n        /// <summary>\n        /// 获取巨量引擎开放平台 API 返回的请求日志 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public virtual string? RequestId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用巨量引擎开放平台 API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorCode\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && ErrorCode == 0;\n        }\n    }\n\n    /// <summary>\n    /// 巨量引擎开放平台 API 响应的泛型基类。\n    /// </summary>\n    public abstract class OceanEngineResponse<TData> : OceanEngineResponse\n        where TData : class\n    {\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.OceanEngine\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.OceanEngine.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.OceanEngine) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n_Pending ..._\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/SKIT.FlurlHttpClient.ByteDance.OceanEngine.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n\t\t<TargetFrameworks>net461; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>10.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.OceanEngine</PackageId>\n\t\t<PackageIcon>LOGO.png</PackageIcon>\n\t\t<PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance OceanEngine 字节 字节跳动 字节广告 字节跳动广告 头条 今日头条 头条广告 今日头条广告 巨量引擎 巨量引擎开放平台 巨量千川 巨量千川开放能力 巨量星图 巨量星图开放能力</PackageTags>\n        <Version>0.0.0</Version>\n        <Description>基于 Flurl.Http 的巨量引擎开放平台 API 客户端。</Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n    </PropertyGroup>\n\n\t<PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n\t\t<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n\t\t<Deterministic>true</Deterministic>\n\t\t<EmbedUntrackedSources>true</EmbedUntrackedSources>\n\t\t<GenerateDocumentationFile>true</GenerateDocumentationFile>\n\t\t<IncludeSymbols>true</IncludeSymbols>\n\t\t<SymbolPackageFormat>snupkg</SymbolPackageFormat>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n\t\t<None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n\t</ItemGroup>\n\n\t<ItemGroup>\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"3.1.0\" />\n\t</ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Settings/Credentials.cs",
    "content": "﻿using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"OceanEngineClientOptions.AppId\"/> 的副本。\n        /// </summary>\n        public long AppId { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"OceanEngineClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        internal Credentials(OceanEngineClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppId = options.AppId;\n            AppSecret = options.AppSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/Utilities/MD5Utility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// MD5 算法工具类。\n    /// </summary>\n    public static class MD5Utility\n    {\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] Hash(byte[] messageBytes)\n        {\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return MD5.HashData(messageBytes);\n#else\n            using MD5 md5 = MD5.Create();\n            return md5.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 MD5 哈希值。\n        /// </summary>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString Hash(string messageData)\n        {\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = Hash(messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Extensions/TikTokV2ClientExecuteOAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    public static class TikTokV2ClientExecuteOAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/oauth-user-access-token-management ]]> <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/client-access-token-management ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthAccessTokenResponse> ExecuteOAuthAccessTokenAsync(this TikTokV2Client client, Models.OAuthAccessTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.ClientSecret is null)\n                request.ClientSecret = client.Credentials.ClientSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"token/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthAccessTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/refresh_token/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/oauth-user-access-token-management ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthRefreshTokenResponse> ExecuteOAuthRefreshTokenAsync(this TikTokV2Client client, Models.OAuthRefreshTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.ClientSecret is null)\n                request.ClientSecret = client.Credentials.ClientSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"refresh_token/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthRefreshTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/revoke/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/login-kit-manage-user-access-tokens ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthRevokeTokenResponse> ExecuteOAuthRevokeTokenAsync(this TikTokV2Client client, Models.OAuthRevokeTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            if (request.ClientSecret is null)\n                request.ClientSecret = client.Credentials.ClientSecret;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"revoke/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthRevokeTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Qrcode\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/get_qrcode/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/login-kit-qr-code-authorization ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthGetQrcodeResponse> ExecuteOAuthGetQrcodeAsync(this TikTokV2Client client, Models.OAuthGetQrcodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ClientKey is null)\n                request.ClientKey = client.Credentials.ClientKey;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"get_qrcode/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthGetQrcodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /oauth/check_qrcode/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/login-kit-qr-code-authorization ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OAuthCheckQrcodeResponse> ExecuteOAuthCheckQrcodeAsync(this TikTokV2Client client, Models.OAuthCheckQrcodeRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"oauth\", \"check_qrcode/\");\n\n            return await client.SendFlurlRequestAsFormUrlEncodedAsync<Models.OAuthCheckQrcodeResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Extensions/TikTokV2ClientExecutePostExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    public static class TikTokV2ClientExecutePostExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /post/publish/video/init/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-direct-post ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostPublishVideoInitResponse> ExecutePostPublishVideoInitAsync(this TikTokV2Client client, Models.PostPublishVideoInitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"post\", \"publish\", \"video\", \"init/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PostPublishVideoInitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /post/publish/inbox/video/init/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-upload-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostPublishInboxVideoInitResponse> ExecutePostPublishInboxVideoInitAsync(this TikTokV2Client client, Models.PostPublishInboxVideoInitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"post\", \"publish\", \"inbox\", \"video\", \"init/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PostPublishInboxVideoInitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /{upload_url} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-direct-post ]]> <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-upload-video ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostUploadVideoResponse> ExecutePostUploadVideoAsync(this TikTokV2Client client, Models.PostUploadVideoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ChunkContentType is null)\n                request.ChunkContentType = \"video/mp4\";\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, request.UploadUrl)\n                .WithUrl(request.UploadUrl)\n                .WithHeader(HttpHeaders.ContentType, request.ChunkContentType)\n                .WithHeader(HttpHeaders.ContentLength, request.ChunkBytes.Length)\n                .WithHeader(HttpHeaders.ContentRange, $\"bytes {request.ChunkContentRangeStart}-{request.ChunkContentRangeEnd}/{request.VideoSize}\");\n\n            using HttpContent httpContent = new ByteArrayContent(request.ChunkBytes);\n            return await client.SendFlurlRequestAsync<Models.PostUploadVideoResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /post/publish/content/init/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-photo-post ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostPublishContentInitResponse> ExecutePostPublishContentInitAsync(this TikTokV2Client client, Models.PostPublishContentInitRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"post\", \"publish\", \"content\", \"init/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PostPublishContentInitResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /post/publish/creator_info/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-query-creator-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostPublishCreatorInfoQueryResponse> ExecutePostPublishCreatorInfoQueryAsync(this TikTokV2Client client, Models.PostPublishCreatorInfoQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"post\", \"publish\", \"creator_info\", \"query/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PostPublishCreatorInfoQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /post/publish/status/fetch/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/content-posting-api-reference-get-video-status ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PostPublishStatusFetchResponse> ExecutePostPublishStatusFetchAsync(this TikTokV2Client client, Models.PostPublishStatusFetchRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"post\", \"publish\", \"status\", \"fetch/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.PostPublishStatusFetchResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Extensions/TikTokV2ClientExecuteResearchExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    public static class TikTokV2ClientExecuteResearchExtensions\n    {\n        #region Adlib\n        /// <summary>\n        /// <para>异步调用 [POST] /research/adlib/ad/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/commercial-content-api-query-ads ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchAdlibAdQueryResponse> ExecuteResearchAdlibAdQueryAsync(this TikTokV2Client client, Models.ResearchAdlibAdQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"adlib\", \"ad\", \"query/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchAdlibAdQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/adlib/ad/detail/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/commercial-content-api-get-ad-details ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchAdlibAdDetailResponse> ExecuteResearchAdlibAdDetailAsync(this TikTokV2Client client, Models.ResearchAdlibAdDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"adlib\", \"ad\", \"detail/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchAdlibAdDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/adlib/ad/report/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/commercial-content-api-get-ad-report ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchAdlibAdReportResponse> ExecuteResearchAdlibAdReportAsync(this TikTokV2Client client, Models.ResearchAdlibAdReportRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"adlib\", \"ad\", \"report/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchAdlibAdReportResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/adlib/advertiser/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/commercial-content-api-query-advertisers ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchAdlibAdvertiserQueryResponse> ExecuteResearchAdlibAdvertiserQueryAsync(this TikTokV2Client client, Models.ResearchAdlibAdvertiserQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"adlib\", \"advertiser\", \"query/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchAdlibAdvertiserQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/adlib/commercial_content/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/commercial-content-api-query-commercial-content ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchAdlibCommercialContentQueryResponse> ExecuteResearchAdlibCommercialContentQueryAsync(this TikTokV2Client client, Models.ResearchAdlibCommercialContentQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"adlib\", \"commercial_content\", \"query/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchAdlibCommercialContentQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Playlist\n        /// <summary>\n        /// <para>异步调用 [POST] /research/playlist/info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-playlist-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchPlaylistInfoResponse> ExecuteResearchPlaylistInfoAsync(this TikTokV2Client client, Models.ResearchPlaylistInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"playlist\", \"info/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchPlaylistInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region User\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserInfoResponse> ExecuteResearchUserInfoAsync(this TikTokV2Client client, Models.ResearchUserInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"info/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/liked_videos/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-liked-videos ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserLikedVideosResponse> ExecuteResearchUserLikedVideosAsync(this TikTokV2Client client, Models.ResearchUserLikedVideosRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"liked_videos/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserLikedVideosResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/pinned_videos/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-pinned-videos ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserPinnedVideosResponse> ExecuteResearchUserPinnedVideosAsync(this TikTokV2Client client, Models.ResearchUserPinnedVideosRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"pinned_videos/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserPinnedVideosResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/reposted_videos/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-reposted-videos ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserRepostedVideosResponse> ExecuteResearchUserRepostedVideosAsync(this TikTokV2Client client, Models.ResearchUserRepostedVideosRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"reposted_videos/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserRepostedVideosResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/followers/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-followers ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserFollowersResponse> ExecuteResearchUserFollowersAsync(this TikTokV2Client client, Models.ResearchUserFollowersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"followers/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserFollowersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/user/following/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-user-following ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchUserFollowingResponse> ExecuteResearchUserFollowingAsync(this TikTokV2Client client, Models.ResearchUserFollowingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"user\", \"following/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchUserFollowingResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Video\n        /// <summary>\n        /// <para>异步调用 [POST] /research/video/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-videos ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchVideoQueryResponse> ExecuteResearchVideoQueryAsync(this TikTokV2Client client, Models.ResearchVideoQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"video\", \"query/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchVideoQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /research/video/comment/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/research-api-specs-query-video-comments ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ResearchVideoCommentListResponse> ExecuteResearchVideoCommentListAsync(this TikTokV2Client client, Models.ResearchVideoCommentListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"research\", \"video\", \"comment\", \"list/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.ResearchVideoCommentListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Extensions/TikTokV2ClientExecuteUserExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    public static class TikTokV2ClientExecuteUserExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /user/info/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/tiktok-api-v2-get-user-info ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserInfoResponse> ExecuteUserInfoAsync(this TikTokV2Client client, Models.UserInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"user\", \"info/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Data\n        /// <summary>\n        /// <para>异步调用 [POST] /user/data/add/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/data-portability-api-add-data-request ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserDataAddResponse> ExecuteUserDataAddAsync(this TikTokV2Client client, Models.UserDataAddRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"user\", \"data\", \"add/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserDataAddResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /user/data/cancel/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/data-portability-api-cancel-data-request ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserDataCancelResponse> ExecuteUserDataCancelAsync(this TikTokV2Client client, Models.UserDataCancelRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"user\", \"data\", \"cancel/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserDataCancelResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /user/data/check/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/data-portability-api-check-status-of-data-request ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserDataCheckResponse> ExecuteUserDataCheckAsync(this TikTokV2Client client, Models.UserDataCheckRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"user\", \"data\", \"check/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserDataCheckResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /user/data/download/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/data-portability-api-download ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.UserDataDownloadResponse> ExecuteUserDataDownloadAsync(this TikTokV2Client client, Models.UserDataDownloadRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"user\", \"data\", \"download/\");\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.UserDataDownloadResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Extensions/TikTokV2ClientExecuteVideoExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    public static class TikTokV2ClientExecuteVideoExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /video/list/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/tiktok-api-v2-video-list ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoListResponse> ExecuteVideoListAsync(this TikTokV2Client client, Models.VideoListRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"list/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /video/query/ 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://developers.tiktok.com/doc/tiktok-api-v2-video-query ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.VideoQueryResponse> ExecuteVideoQueryAsync(this TikTokV2Client client, Models.VideoQueryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"video\", \"query/\")\n                .SetQueryParam(\"fields\", string.Join(\",\", request.FieldList));\n\n            return await client.SendFlurlRequestAsJsonAsync<Models.VideoQueryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthAccessTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthAccessTokenRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置 TikTok ClientKey。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientSecret。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"authorization_code\";\n\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string Code { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置重定向 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"redirect_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"redirect_uri\")]\n        public string? RedirectUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权码验证器。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code_verifier\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code_verifier\")]\n        public string? CodeVerifier { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthAccessTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthAccessTokenResponse : TikTokV2Response\n    {\n        /// <summary>\n        /// 获取或设置接口调用凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"access_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n        public string AccessToken { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置授权用户唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n        public string OpenId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置用户授权的作用域。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n        public string Scope { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置凭证有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"expires_in\")]\n        public int ExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置刷新令牌有效期（单位：秒）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_expires_in\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_expires_in\")]\n        public int RefreshTokenExpiresIn { get; set; }\n\n        /// <summary>\n        /// 获取或设置令牌类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"token_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"token_type\")]\n        public string TokenType { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthRefreshTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_token/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthRefreshTokenRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置 TikTok ClientKey。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientSecret。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"grant_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"grant_type\")]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthRefreshTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/refresh_token/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthRefreshTokenResponse : OAuthAccessTokenResponse\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthRevokeTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/revoke/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthRevokeTokenRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置 TikTok ClientKey。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientSecret。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// <inheritdoc/>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"token\")]\n        public override string? AccessToken\n        {\n            get { return base.AccessToken; }\n            set { base.AccessToken = value; }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/OAuthRevokeTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/revoke/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthRevokeTokenResponse : TikTokV2Response\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/Qrcode/OAuthCheckQrcodeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/check_qrcode/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthCheckQrcodeRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置 TikTok ClientKey。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientSecret。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientSecret\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_secret\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_secret\")]\n        public string? ClientSecret { get; set; }\n\n        /// <summary>\n        /// 获取或设置二维码令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"token\")]\n        public string Token { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/Qrcode/OAuthCheckQrcodeResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/check_qrcode/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthCheckQrcodeResponse : TikTokV2Response\n    {\n        /// <summary>\n        /// 获取或设置二维码状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string Status { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置客户端票据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_ticket\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_ticket\")]\n        public string ClientTicket { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置重定向 URL。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"redirect_uri\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"redirect_uri\")]\n        public string? RedirectUrl { get; set; }\n\n        /// <summary>\n        /// 获取或设置自定义状态值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"state\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n        public string? State { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/Qrcode/OAuthGetQrcodeRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/get_qrcode/ 接口的请求。</para>\n    /// </summary>\n    public class OAuthGetQrcodeRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置 TikTok 应用 Key。如果不指定将使用构造 <see cref=\"TikTokV2Client\"/> 时的 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 参数。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"client_key\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"client_key\")]\n        public string? ClientKey { get; set; }\n\n        /// <summary>\n        /// 获取或设置授权范围。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scope\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scope\")]\n        public string Scope { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置自定义状态值。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"state\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n        public string? State { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/OAuth/Qrcode/OAuthGetQrcodeResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /oauth/get_qrcode/ 接口的响应。</para>\n    /// </summary>\n    public class OAuthGetQrcodeResponse : TikTokV2Response\n    {\n        /// <summary>\n        /// 获取或设置二维码链接。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"scan_qrcode_url\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"scan_qrcode_url\")]\n        public string ScanQrcodeUrl { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置二维码令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"token\")]\n        public string Token { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishContentInitRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/content/init/ 接口的请求。</para>\n    /// </summary>\n    public class PostPublishContentInitRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class PostInfo\n            {\n                /// <summary>\n                /// 获取或设置隐私级别。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"privacy_level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"privacy_level\")]\n                public string? PrivacyLevel { get; set; }\n\n                /// <summary>\n                /// 获取或设置标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string? Description { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止评论。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_comment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_comment\")]\n                public bool? DisableComment { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否自动添加音乐。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"auto_add_music\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"auto_add_music\")]\n                public bool? AutoAddMusic { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是第三方品牌推广内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_content_toggle\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_content_toggle\")]\n                public bool? IsBrandContent { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是自有品牌推广内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_organic_toggle\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_organic_toggle\")]\n                public bool? IsBrandOrganic { get; set; }\n            }\n\n            public class SourceInfo\n            {\n                /// <summary>\n                /// 获取或设置视频来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string Source { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置照片图片 URL 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"photo_images\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"photo_images\")]\n                public IList<string>? PhotoImageUrlList { get; set; }\n\n                /// <summary>\n                /// 获取或设置照片封面索引。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"photo_cover_index\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"photo_cover_index\")]\n                public int? PhotoCoverIndex { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置媒体类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"media_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"media_type\")]\n        public string MediaType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上传模式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_mode\")]\n        public string PostMode { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置上传信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_info\")]\n        public Types.PostInfo PostInfo { get; set; } = new Types.PostInfo();\n\n        /// <summary>\n        /// 获取或设置源文件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_info\")]\n        public Types.SourceInfo SourceInfo { get; set; } = new Types.SourceInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishContentInitResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/content/init/ 接口的响应。</para>\n    /// </summary>\n    public class PostPublishContentInitResponse : TikTokV2Response<PostPublishContentInitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置发布 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_id\")]\n                public string PublishId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishCreatorInfoQueryRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/creator_info/query/ 接口的请求。</para>\n    /// </summary>\n    public class PostPublishCreatorInfoQueryRequest : TikTokV2Request\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishCreatorInfoQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/creator_info/query/ 接口的响应。</para>\n    /// </summary>\n    public class PostPublishCreatorInfoQueryResponse : TikTokV2Response<PostPublishCreatorInfoQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置创作者头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creator_avatar_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creator_avatar_url\")]\n                public string CreatorAvatarUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创作者 TikTok 账号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creator_username\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creator_username\")]\n                public string CreatorUsername { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创作者昵称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creator_nickname\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creator_nickname\")]\n                public string CreatorNickname { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置隐私级别选项。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"privacy_level_options\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"privacy_level_options\")]\n                public string[] PrivacyLevelOptions { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否禁止二重奏。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"duet_disabled\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"duet_disabled\")]\n                public bool IsDuetDisabled { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止拼接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"stitch_disabled\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"stitch_disabled\")]\n                public bool IsStitchDisabled { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止评论。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comment_disabled\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comment_disabled\")]\n                public bool IsCommentDisabled { get; set; }\n\n                /// <summary>\n                /// 获取或设置可上传视频最大时长（单位：秒）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"max_video_post_duration_sec\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"max_video_post_duration_sec\")]\n                public int MaxVideoPostDuration { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishInboxVideoInitRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/inbox/video/init/ 接口的请求。</para>\n    /// </summary>\n    public class PostPublishInboxVideoInitRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class SourceInfo\n            {\n                /// <summary>\n                /// 获取或设置视频来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string Source { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置视频 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n                public string? VideoUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_size\")]\n                public long? VideoSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置分片大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"chunk_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"chunk_size\")]\n                public long? ChunkSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置分片数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_chunk_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_chunk_count\")]\n                public int? TotalChunkCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置源文件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_info\")]\n        public Types.SourceInfo SourceInfo { get; set; } = new Types.SourceInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishInboxVideoInitResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/inbox/video/init/ 接口的响应。</para>\n    /// </summary>\n    public class PostPublishInboxVideoInitResponse : TikTokV2Response<PostPublishInboxVideoInitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置发布 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_id\")]\n                public string PublishId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上传地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"upload_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"upload_url\")]\n                public string? UploadUrl { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishStatusFetchRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/status/fetch/ 接口的请求。</para>\n    /// </summary>\n    public class PostPublishStatusFetchRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置发布 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"publish_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"publish_id\")]\n        public string PublishId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishStatusFetchResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/status/fetch/ 接口的响应。</para>\n    /// </summary>\n    public class PostPublishStatusFetchResponse : TikTokV2Response<PostPublishStatusFetchResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置发布状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reason\")]\n                public string? FailReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置帖子 ID 列表\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publicaly_available_post_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publicaly_available_post_id\")]\n                public long[]? PublicalyAvailablePostId { get; set; }\n\n                /// <summary>\n                /// 获取或设置已上传的字节大小。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uploaded_bytes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uploaded_bytes\")]\n                public long? UploadedByteSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置已下载的字节大小。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"downloaded_bytes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"downloaded_bytes\")]\n                public long? DownloadedByteSize { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishVideoInitRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/video/init/ 接口的请求。</para>\n    /// </summary>\n    public class PostPublishVideoInitRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class PostInfo\n            {\n                /// <summary>\n                /// 获取或设置隐私级别。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"privacy_level\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"privacy_level\")]\n                public string? PrivacyLevel { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string? Title { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止二重奏。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_duet\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_duet\")]\n                public bool? DisableDuet { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止拼接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_stitch\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_stitch\")]\n                public bool? DisableStitch { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否禁止评论。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"disable_comment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"disable_comment\")]\n                public bool? DisableComment { get; set; }\n\n                /// <summary>\n                /// 获取或设置使用视频第几毫秒作为封面。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_cover_timestamp_ms\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_cover_timestamp_ms\")]\n                public int? VideoCoverTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是第三方品牌推广内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_content_toggle\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_content_toggle\")]\n                public bool? IsBrandContent { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是自有品牌推广内容。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand_organic_toggle\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand_organic_toggle\")]\n                public bool? IsBrandOrganic { get; set; }\n            }\n\n            public class SourceInfo\n            {\n                /// <summary>\n                /// 获取或设置视频来源。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"source\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"source\")]\n                public string Source { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置视频 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_url\")]\n                public string? VideoUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_size\")]\n                public long? VideoSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置分片大小（单位：字节）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"chunk_size\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"chunk_size\")]\n                public long? ChunkSize { get; set; }\n\n                /// <summary>\n                /// 获取或设置分片数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_chunk_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_chunk_count\")]\n                public int? TotalChunkCount { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置上传信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"post_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"post_info\")]\n        public Types.PostInfo PostInfo { get; set; } = new Types.PostInfo();\n\n        /// <summary>\n        /// 获取或设置源文件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"source_info\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"source_info\")]\n        public Types.SourceInfo SourceInfo { get; set; } = new Types.SourceInfo();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostPublishVideoInitResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /post/publish/video/init/ 接口的响应。</para>\n    /// </summary>\n    public class PostPublishVideoInitResponse : TikTokV2Response<PostPublishVideoInitResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置发布 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_id\")]\n                public string PublishId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置上传地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"upload_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"upload_url\")]\n                public string? UploadUrl { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostUploadVideoRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /{upload_url} 接口的请求。</para>\n    /// </summary>\n    public class PostUploadVideoRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置文件上传地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string UploadUrl { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置视频分片字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ChunkBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置视频分片起始位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long ChunkContentRangeStart { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频分片结束位置。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long ChunkContentRangeEnd { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件 Conent-Type。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ChunkContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频文件大小（单位：字节）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long VideoSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Post/PostUploadVideoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /{upload_url} 接口的响应。</para>\n    /// </summary>\n    public class PostUploadVideoResponse : TikTokV2Response<PostUploadVideoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdDetailRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/detail/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchAdlibAdDetailRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置广告 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ad_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ad_id\")]\n        public long AdId { get; set; }\n\n        public ResearchAdlibAdDetailRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"ad.id\");\n            FieldList.Add(\"ad.first_shown_date\");\n            FieldList.Add(\"ad.last_shown_date\");\n            FieldList.Add(\"ad.status\");\n            FieldList.Add(\"ad.status_statement\");\n            FieldList.Add(\"ad.videos\");\n            FieldList.Add(\"ad.image_urls\");\n            FieldList.Add(\"ad.reach\");\n            FieldList.Add(\"advertiser.business_id\");\n            FieldList.Add(\"advertiser.business_name\");\n            FieldList.Add(\"advertiser.paid_for_by\");\n            FieldList.Add(\"advertiser.follower_count\");\n            FieldList.Add(\"advertiser.avatar_url\");\n            FieldList.Add(\"advertiser.profile_url\");\n            FieldList.Add(\"advertiser.targeting_info\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdDetailResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/detail/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchAdlibAdDetailResponse : TikTokV2Response<ResearchAdlibAdDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertisement\n                    {\n                        public static class Types\n                        {\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = default!;\n                            }\n\n                            public class Reach\n                            {\n                                /// <summary>\n                                /// 获取或设置 UV。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unique_users_seen\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unique_users_seen\")]\n                                public string UniqueUsersSeen { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置各国家的 UV。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unique_users_seen_by_country\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unique_users_seen_by_country\")]\n                                public IDictionary<string, string> UniqueUsersSeenByCountry { get; set; } = default!;\n                            }\n\n                            public class Rejection\n                            {\n                                /// <summary>\n                                /// 获取或设置拒绝原因列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reasons\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reasons\")]\n                                public string[]? ReasonList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置受影响的国家代码列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"affected_countries\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"affected_countries\")]\n                                public string[]? AffectedCountrieCodeList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置报告来源。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reporting_source\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reporting_source\")]\n                                public string? ReportingSource { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置自动化审查通知。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"automated_notice\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"automated_notice\")]\n                                public string? AutomatedNotice { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long AdId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置首次曝光日期字符串（格式：yyyyMMdd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"first_shown_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"first_shown_date\")]\n                        public string FirstShownDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置末次曝光日期字符串（格式：yyyyMMdd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"last_shown_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"last_shown_date\")]\n                        public string LastShownDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"videos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                        public Types.Video[] VideoList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_urls\")]\n                        public string[] ImageList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置触客信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reach\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reach\")]\n                        public Types.Reach Reach { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置审核拒绝信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rejection_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rejection_info\")]\n                        public Types.Rejection? Rejection { get; set; }\n                    }\n\n                    public class Advertiser\n                    {\n                        public static class Types\n                        {\n                            public class TikTokAccount\n                            {\n                                /// <summary>\n                                /// 获取或设置用户资料页 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"profile_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"profile_url\")]\n                                public string ProfileUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置用户头像 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                                public string AvatarUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置粉丝数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"follower_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"follower_count\")]\n                                public long FollowerCount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"business_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"business_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long BusinessId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"business_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"business_name\")]\n                        public string BusinessName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置国家代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                        public string CountryCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置资金来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"paid_by\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"paid_by\")]\n                        public string PaidBy { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 账户信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tiktok_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tiktok_account\")]\n                        public Types.TikTokAccount TikTokAccount { get; set; } = default!;\n                    }\n\n                    public class AdGroup\n                    {\n                        public static class Types\n                        {\n                            public class Target\n                            {\n                                /// <summary>\n                                /// 获取或设置目标用户数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"number_of_users_targeted\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"number_of_users_targeted\")]\n                                public string UsersTargeted { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置目标国家代码列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"country\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"country\")]\n                                public string[] CountryCodeList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置目标年龄分布字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"age\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"age\")]\n                                public IDictionary<string, bool> AgeMap { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置目标性别分布字典。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"gender\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"gender\")]\n                                public IDictionary<string, bool> GenderMap { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置受众目标。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"audience_targeting\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"audience_targeting\")]\n                                public string? AudienceTargeting { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频交互类别。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"video_interactions\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"video_interactions\")]\n                                public string? VideoInteractions { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置创建者交互类别。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"creator_interactions\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_interactions\")]\n                                public string? CreatorInteractions { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置兴趣类别。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"interest\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"interest\")]\n                                public string? Interest { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置投放目标信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"targeting_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"targeting_info\")]\n                        public Types.Target Target { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad\")]\n                public Types.Advertisement Advertisement { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置广告主信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser\")]\n                public Types.Advertiser Advertiser { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置广告组信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_group\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_group\")]\n                public Types.AdGroup AdGroup { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdQueryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/query/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchAdlibAdQueryRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                public static class Types\n                {\n                    public class Range\n                    {\n                        /// <summary>\n                        /// 获取或设置最小值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min\")]\n                        public string Min { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置最大值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max\")]\n                        public string Max { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告发布日期范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_published_date_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_published_date_range\")]\n                public Types.Range? AdPublishedDateRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置曝光 UV 范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unique_users_seen_size_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unique_users_seen_size_range\")]\n                public Types.Range? UniqueUsersSeenSizeRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置国家代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string? CountryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告商 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_business_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_business_ids\")]\n                public IList<long>? AdvertiserBusinessIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置过滤条件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filters\")]\n        public Types.Filter Filter { get; set; } = new Types.Filter();\n\n        /// <summary>\n        /// 获取或设置搜索词。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_term\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_term\")]\n        public string? SearchTerm { get; set; }\n\n        /// <summary>\n        /// 获取或设置搜索方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_type\")]\n        public string? SearchType { get; set; }\n\n        /// <summary>\n        /// 获取或设置搜索结果标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n        public string? SearchId { get; set; }\n\n        /// <summary>\n        /// 获取或设置最大返回数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? MaxCount { get; set; }\n\n        public ResearchAdlibAdQueryRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"ad.id\");\n            FieldList.Add(\"ad.first_shown_date\");\n            FieldList.Add(\"ad.last_shown_date\");\n            FieldList.Add(\"ad.status\");\n            FieldList.Add(\"ad.status_statement\");\n            FieldList.Add(\"ad.videos\");\n            FieldList.Add(\"ad.image_urls\");\n            FieldList.Add(\"ad.reach\");\n            FieldList.Add(\"advertiser.business_id\");\n            FieldList.Add(\"advertiser.business_name\");\n            FieldList.Add(\"advertiser.paid_for_by\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/query/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchAdlibAdQueryResponse : TikTokV2Response<ResearchAdlibAdQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Ad\n                    {\n                        public static class Types\n                        {\n                            public class Advertisement\n                            {\n                                public static class Types\n                                {\n                                    public class Video\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置视频 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                        public string Url { get; set; } = default!;\n                                    }\n\n                                    public class Reach\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置 UV。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"unique_users_seen\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"unique_users_seen\")]\n                                        public string UniqueUsersSeen { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置广告 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long AdId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置首次曝光日期字符串（格式：yyyyMMdd）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"first_shown_date\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"first_shown_date\")]\n                                public string FirstShownDateString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置末次曝光日期字符串（格式：yyyyMMdd）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"last_shown_date\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"last_shown_date\")]\n                                public string LastShownDateString { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置审核状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public string Status { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"videos\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                                public Types.Video[] VideoList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置图片列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_urls\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_urls\")]\n                                public string[] ImageList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置触客信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reach\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reach\")]\n                                public Types.Reach Reach { get; set; } = default!;\n                            }\n\n                            public class Advertiser\n                            {\n                                /// <summary>\n                                /// 获取或设置广告主 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"business_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"business_id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public long BusinessId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置广告主名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"business_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"business_name\")]\n                                public string BusinessName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置资金来源。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"paid_by\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"paid_by\")]\n                                public string PaidBy { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ad\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ad\")]\n                        public Types.Advertisement Advertisement { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置广告主信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"advertiser\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"advertiser\")]\n                        public Types.Advertiser Advertiser { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ads\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ads\")]\n                public Types.Ad[] AdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置搜索结果 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n                public string? SearchId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdReportRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/report/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchAdlibAdReportRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                public static class Types\n                {\n                    public class Range\n                    {\n                        /// <summary>\n                        /// 获取或设置最小值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min\")]\n                        public string Min { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置最大值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max\")]\n                        public string Max { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告发布日期范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_published_date_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_published_date_range\")]\n                public Types.Range? AdPublishedDateRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置国家代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string? CountryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告商 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_business_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_business_ids\")]\n                public IList<long>? AdvertiserBusinessIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置过滤条件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filters\")]\n        public Types.Filter Filter { get; set; } = new Types.Filter();\n\n        public ResearchAdlibAdReportRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"count_time_series_by_country\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdReportResponse.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/ad/report/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchAdlibAdReportResponse : TikTokV2Response<ResearchAdlibAdReportResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DateCount\n                    {\n                        /// <summary>\n                        /// 获取或设置日期字符串（格式：yyyyMMdd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"date\")]\n                        public string DateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"count\")]\n                        public long Count { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置各国家的广告统计数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"count_time_series_by_country\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"count_time_series_by_country\")]\n                public IDictionary<string, Types.DateCount[]> CountTimeSeriesByCountry { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdvertiserQueryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/advertiser/query/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchAdlibAdvertiserQueryRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                public static class Types\n                {\n                    public class Range\n                    {\n                        /// <summary>\n                        /// 获取或设置最小值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min\")]\n                        public string Min { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置最大值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max\")]\n                        public string Max { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告发布日期范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ad_published_date_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ad_published_date_range\")]\n                public Types.Range? AdPublishedDateRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置曝光 UV 范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unique_users_seen_size_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unique_users_seen_size_range\")]\n                public Types.Range? UniqueUsersSeenSizeRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置国家代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string? CountryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置广告商 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertiser_business_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertiser_business_ids\")]\n                public IList<long>? AdvertiserBusinessIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置搜索词。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_term\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_term\")]\n        public string? SearchTerm { get; set; }\n\n        /// <summary>\n        /// 获取或设置最大返回数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? MaxCount { get; set; }\n\n        public ResearchAdlibAdvertiserQueryRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"business_name\");\n            FieldList.Add(\"business_id\");\n            FieldList.Add(\"country_code\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibAdvertiserQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/advertiser/query/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchAdlibAdvertiserQueryResponse : TikTokV2Response<ResearchAdlibAdvertiserQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Advertiser\n                    {\n                        /// <summary>\n                        /// 获取或设置广告主 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"business_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"business_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long BusinessId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置广告主名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"business_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"business_name\")]\n                        public string BusinessName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置国家代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                        public string CountryCode { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置广告主列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"advertisers\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"advertisers\")]\n                public Types.Advertiser[] AdvertiserList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibCommercialContentQueryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/commercial_content/query/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchAdlibCommercialContentQueryRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Filter\n            {\n                public static class Types\n                {\n                    public class Range\n                    {\n                        /// <summary>\n                        /// 获取或设置最小值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"min\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"min\")]\n                        public string Min { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置最大值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"max\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"max\")]\n                        public string Max { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置内容发布日期范围。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"content_published_date_range\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"content_published_date_range\")]\n                public Types.Range? ContentPublishedDateRange { get; set; }\n\n                /// <summary>\n                /// 获取或设置创作者国家代码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creator_country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creator_country_code\")]\n                public string? CreatorCountryCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置创作者用户名列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"creator_usernames\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"creator_usernames\")]\n                public IList<string>? CreatorUsernameList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置过滤条件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filters\")]\n        public Types.Filter Filter { get; set; } = new Types.Filter();\n\n        /// <summary>\n        /// 获取或设置搜索结果标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n        public string? SearchId { get; set; }\n\n        /// <summary>\n        /// 获取或设置最大返回数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? MaxCount { get; set; }\n\n        public ResearchAdlibCommercialContentQueryRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_timestamp\");\n            FieldList.Add(\"create_date\");\n            FieldList.Add(\"label\");\n            FieldList.Add(\"brand_names\");\n            FieldList.Add(\"creator\");\n            FieldList.Add(\"videos\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Adlib/ResearchAdlibCommercialContentQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/adlib/commercial_content/query/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchAdlibCommercialContentQueryResponse : TikTokV2Response<ResearchAdlibCommercialContentQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CommercialContent\n                    {\n                        public static class Types\n                        {\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public long VideoId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public string Status { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置封面图 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cover_image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cover_image_url\")]\n                                public string CoverImageUrl { get; set; } = default!;\n                            }\n\n                            public class Creator\n                            {\n                                /// <summary>\n                                /// 获取或设置用户名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"username\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n                                public string Username { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置广告 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long CommercialContentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创作日期字符串（格式：yyyyMMdd）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_date\")]\n                        public string CreateDateString { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_timestamp\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_timestamp\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创作者信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creator\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creator\")]\n                        public Types.Creator Creator { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置内容标签。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"label\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"label\")]\n                        public string Label { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌名称列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_names\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_names\")]\n                        public string[] BrandNameList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"videos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                        public Types.Video[] VideoList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商业化内容列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"commercial_contents\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"commercial_contents\")]\n                public Types.CommercialContent[] CommercialContentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置搜索结果 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n                public string? SearchId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Playlist/ResearchPlaylistInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/playlist/info/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchPlaylistInfoRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置播放列表 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"playlist_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"playlist_id\")]\n        public long PlaylistId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Playlist/ResearchPlaylistInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/playlist/info/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchPlaylistInfoResponse : TikTokV2Response<ResearchPlaylistInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置播放列表 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playlist_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playlist_id\")]\n                public long PlaylistId { get; set; }\n\n                /// <summary>\n                /// 获取或设置播放列表名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playlist_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playlist_name\")]\n                public string PlaylistName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置视频总数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playlist_item_total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playlist_item_total\")]\n                public int TotalItemCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置最后更新时间。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playlist_last_updated\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playlist_last_updated\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"playlist_video_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"playlist_video_ids\")]\n                public long[]? VideoIdList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserFollowersRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/followers/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserFollowersRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserFollowersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/followers/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserFollowersResponse : TikTokV2Response<ResearchUserFollowersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Follower\n                    {\n                        /// <summary>\n                        /// 获取或设置用户名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"username\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n                        public string Username { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户展示名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"display_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"display_name\")]\n                        public string DisplayName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置粉丝列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_followers\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_followers\")]\n                public Types.Follower[] FollowerList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserFollowingRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/following/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserFollowingRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserFollowingResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/following/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserFollowingResponse : TikTokV2Response<ResearchUserFollowingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Following\n                    {\n                        /// <summary>\n                        /// 获取或设置用户名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"username\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n                        public string Username { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户展示名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"display_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"display_name\")]\n                        public string DisplayName { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置关注列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_following\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_following\")]\n                public Types.Following[] FollowingList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserInfoRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/info/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserInfoRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        public ResearchUserInfoRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"display_name\");\n            FieldList.Add(\"bio_description\");\n            FieldList.Add(\"avatar_url\");\n            FieldList.Add(\"is_verified\");\n            FieldList.Add(\"follower_count\");\n            FieldList.Add(\"following_count\");\n            FieldList.Add(\"likes_count\");\n            FieldList.Add(\"video_count\");\n            FieldList.Add(\"bio_url\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/info/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserInfoResponse : TikTokV2Response<ResearchUserInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置用户头像 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                public string AvatarUrl { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户展示名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"display_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"display_name\")]\n                public string DisplayName { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户个人描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bio_description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bio_description\")]\n                public string? BioDescription { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户个人描述 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"bio_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"bio_url\")]\n                public string? BioUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否已认证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_verified\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_verified\")]\n                public bool IsVerified { get; set; }\n\n                /// <summary>\n                /// 获取或设置粉丝数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"follower_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"follower_count\")]\n                public long FollowerCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置关注数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"following_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"following_count\")]\n                public long FollowingCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收到点赞数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"likes_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"likes_count\")]\n                public long LikesCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置上传视频数。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_count\")]\n                public long VideoCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserLikedVideosRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/liked_videos/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserLikedVideosRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        public ResearchUserLikedVideosRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"username\");\n            FieldList.Add(\"region_code\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"music_id\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            FieldList.Add(\"hashtag_names\");\n            FieldList.Add(\"is_stem_verified\");\n            FieldList.Add(\"favourites_count\");\n            FieldList.Add(\"video_duration\");\n            FieldList.Add(\"hashtag_info_list\");\n            FieldList.Add(\"video_mention_list\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserLikedVideosResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/liked_videos/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserLikedVideosResponse : TikTokV2Response<ResearchUserLikedVideosResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video : ResearchVideoQueryResponse.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_liked_videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_liked_videos\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserPinnedVideosRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/pinned_videos/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserPinnedVideosRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        public ResearchUserPinnedVideosRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"username\");\n            FieldList.Add(\"region_code\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"music_id\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            FieldList.Add(\"hashtag_names\");\n            FieldList.Add(\"is_stem_verified\");\n            FieldList.Add(\"favourites_count\");\n            FieldList.Add(\"video_duration\");\n            FieldList.Add(\"hashtag_info_list\");\n            FieldList.Add(\"video_mention_list\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserPinnedVideosResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/pinned_videos/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserPinnedVideosResponse : TikTokV2Response<ResearchUserPinnedVideosResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video : ResearchUserLikedVideosResponse.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pinned_videos_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pinned_videos_list\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserRepostedVideosRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/reposted_videos/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchUserRepostedVideosRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置用户名。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"username\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n        public string Username { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        public ResearchUserRepostedVideosRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"username\");\n            FieldList.Add(\"region_code\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"music_id\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            FieldList.Add(\"hashtag_names\");\n            FieldList.Add(\"is_stem_verified\");\n            FieldList.Add(\"favourites_count\");\n            FieldList.Add(\"video_duration\");\n            FieldList.Add(\"hashtag_info_list\");\n            FieldList.Add(\"video_mention_list\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/User/ResearchUserRepostedVideosResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/user/reposted_videos/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchUserRepostedVideosResponse : TikTokV2Response<ResearchUserRepostedVideosResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video : ResearchUserLikedVideosResponse.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reposted_videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reposted_videos\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Video/ResearchVideoCommentListRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/video/comment/list/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchVideoCommentListRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置视频 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n        public long VideoId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        public ResearchVideoCommentListRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"video_id\");\n            FieldList.Add(\"text\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"reply_count\");\n            FieldList.Add(\"parent_comment_id\");\n            FieldList.Add(\"create_time\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Video/ResearchVideoCommentListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/video/comment/list/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchVideoCommentListResponse : TikTokV2Response<ResearchVideoCommentListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Comment\n                    {\n                        /// <summary>\n                        /// 获取或设置评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long CommentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置父评论 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_comment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_comment_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long? ParentCommentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文本内容。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                        public string Text { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like_count\")]\n                        public long LikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reply_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reply_count\")]\n                        public long ReplyCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置评论列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"comments\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"comments\")]\n                public Types.Comment[] CommentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Video/ResearchVideoQueryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/video/query/ 接口的请求。</para>\n    /// </summary>\n    public class ResearchVideoQueryRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Query\n            {\n                public static class Types\n                {\n                    public class Condition\n                    {\n                        /// <summary>\n                        /// 获取或设置运算符。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"operation\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"operation\")]\n                        public string Operation { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置字段名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"field_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"field_name\")]\n                        public string FieldName { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置字段值。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"field_values\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"field_values\")]\n                        public IList<string> FieldValues { get; set; } = new List<string>();\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置“和”条件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"and\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"and\")]\n                public IList<Types.Condition>? And { get; set; }\n\n                /// <summary>\n                /// 获取或设置“或”条件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"or\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"or\")]\n                public IList<Types.Condition>? Or { get; set; }\n\n                /// <summary>\n                /// 获取或设置“否”条件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"not\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"not\")]\n                public IList<Types.Condition>? Not { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置查询条件信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"query\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"query\")]\n        public Types.Query Query { get; set; } = new Types.Query();\n\n        /// <summary>\n        /// 获取或设置开始日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"start_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"start_date\")]\n        public string StartDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置结束日期字符串（格式：yyyyMMdd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_date\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_date\")]\n        public string EndDateString { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置搜索结果标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"search_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n        public string? SearchId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否随机排序。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_random\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_random\")]\n        public bool? IsRandom { get; set; }\n\n        public ResearchVideoQueryRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"region_code\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"music_id\");\n            FieldList.Add(\"hashtag_names\");\n            FieldList.Add(\"username\");\n            FieldList.Add(\"effect_ids\");\n            FieldList.Add(\"playlist_id\");\n            FieldList.Add(\"voice_to_text\");\n            FieldList.Add(\"is_stem_verified\");\n            FieldList.Add(\"favourites_count\");\n            FieldList.Add(\"video_duration\");\n            FieldList.Add(\"hashtag_info_list\");\n            FieldList.Add(\"video_mention_list\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Research/Video/ResearchVideoQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /research/video/query/ 接口的响应。</para>\n    /// </summary>\n    public class ResearchVideoQueryResponse : TikTokV2Response<ResearchVideoQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        public static class Types\n                        {\n                            public class HashTagInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置话题标签 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"hashtag_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"hashtag_id\")]\n                                public string HashTagId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置话题标签描述。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"hashtag_description\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"hashtag_description\")]\n                                public string HashTagDescription { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long VideoId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置作者用户名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"username\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"username\")]\n                        public string Username { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地区代码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                        public string RegionCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like_count\")]\n                        public long LikeCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置评论次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                        public long CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                        public long ShareCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置观看次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"view_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"view_count\")]\n                        public long ViewCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收藏次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"favourites_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"favourites_count\")]\n                        public long FavouritesCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_duration\")]\n                        public int VideoDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置音乐 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"music_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"music_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long? MusicId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置特效 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_ids\")]\n                        public string[]? EffectIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置话题标签列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hashtag_names\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hashtag_names\")]\n                        public string[]? HashtagNameList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置话题标签信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"hashtag_info_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"hashtag_info_list\")]\n                        public Types.HashTagInfo[]? HashTagInfoList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置提及列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_mention_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_mention_list\")]\n                        public string[]? VideoMentionList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置播放列表 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"playlist_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"playlist_id\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public long? PlaylistId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置语音转文本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"voice_to_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"voice_to_text\")]\n                        public string? VoiceToText { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已通过 STEM 认证。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_stem_verified\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_stem_verified\")]\n                        public bool? IsSTEMVerified { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n\n                /// <summary>\n                /// 获取或设置搜索结果 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"search_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"search_id\")]\n                public string? SearchId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataAddRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/add/ 接口的请求。</para>\n    /// </summary>\n    public class UserDataAddRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置数据格式。\n        /// <para>默认值：\"text\"</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data_format\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data_format\")]\n        public string DataFormat { get; set; } = \"text\";\n\n        /// <summary>\n        /// 获取或设置数据分类列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_selection_list\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_selection_list\")]\n        public IList<string> CategorySelectionList { get; set; } = new List<string>();\n\n        public UserDataAddRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"request_id\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataAddResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/add/ 接口的响应。</para>\n    /// </summary>\n    public class UserDataAddResponse : TikTokV2Response<UserDataAddResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置申请 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"request_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n                public long RequestId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataCancelRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/cancel/ 接口的请求。</para>\n    /// </summary>\n    public class UserDataCancelRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置申请 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public long RequestId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataCancelResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/cancel/ 接口的响应。</para>\n    /// </summary>\n    public class UserDataCancelResponse : TikTokV2Response<UserDataCancelResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataCheckRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/check/ 接口的请求。</para>\n    /// </summary>\n    public class UserDataCheckRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置申请 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public long RequestId { get; set; }\n\n        public UserDataCheckRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"request_id\");\n            FieldList.Add(\"apply_time\");\n            FieldList.Add(\"collect_time\");\n            FieldList.Add(\"status\");\n            FieldList.Add(\"data_format\");\n            FieldList.Add(\"category_selection_list\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataCheckResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/check/ 接口的响应。</para>\n    /// </summary>\n    public class UserDataCheckResponse : TikTokV2Response<UserDataCheckResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置申请 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"request_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n                public long RequestId { get; set; }\n\n                /// <summary>\n                /// 获取或设置申请时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"apply_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"apply_time\")]\n                public long ApplyTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置采集时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"collect_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"collect_time\")]\n                public long CollectTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置数据格式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"data_format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"data_format\")]\n                public string DataFormat { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置数据分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_selection_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_selection_list\")]\n                public string[] CategorySelectionList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataDownloadRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/download/ 接口的请求。</para>\n    /// </summary>\n    public class UserDataDownloadRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置申请 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public long RequestId { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/Data/UserDataDownloadResponse.cs",
    "content": "using System.Linq;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /user/data/download/ 接口的响应。</para>\n    /// </summary>\n    public class UserDataDownloadResponse : TikTokV2Response<UserDataDownloadResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && string.IsNullOrEmpty(Error?.Code) && GetRawBytes().Any();\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/UserInfoRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /user/info/ 接口的请求。</para>\n    /// </summary>\n    public class UserInfoRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        public UserInfoRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"open_id\");\n            FieldList.Add(\"union_id\");\n            FieldList.Add(\"avatar_url\");\n            FieldList.Add(\"avatar_url_100\");\n            FieldList.Add(\"avatar_large_url\");\n            FieldList.Add(\"display_name\");\n            FieldList.Add(\"bio_description\");\n            FieldList.Add(\"profile_deep_link\");\n            FieldList.Add(\"is_verified\");\n            FieldList.Add(\"follower_count\");\n            FieldList.Add(\"following_count\");\n            FieldList.Add(\"likes_count\");\n            FieldList.Add(\"video_count\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/User/UserInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /user/info/ 接口的响应。</para>\n    /// </summary>\n    public class UserInfoResponse : TikTokV2Response<UserInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class User\n                    {\n                        /// <summary>\n                        /// 获取或设置用户的 OpenId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                        public string OpenId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户的 UnionId。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"union_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"union_id\")]\n                        public string? UnionId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置用户头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url\")]\n                        public string AvatarUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户 100×100 尺寸头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar_url_100\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar_url_100\")]\n                        public string Avatar100Url { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户高清头像 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avatar_large_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avatar_large_url\")]\n                        public string AvatarLargeUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户展示名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"display_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"display_name\")]\n                        public string DisplayName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户个人描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bio_description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bio_description\")]\n                        public string BioDescription { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置用户个人资料页 DeepLink 地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"profile_deep_link\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"profile_deep_link\")]\n                        public string? ProfileDeepLink { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否已认证。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_verified\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_verified\")]\n                        public bool IsVerified { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置粉丝数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"follower_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"follower_count\")]\n                        public long FollowerCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置关注数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"following_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"following_count\")]\n                        public long FollowingCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收到点赞数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"likes_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"likes_count\")]\n                        public long LikesCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上传视频数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_count\")]\n                        public long VideoCount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置用户信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user\")]\n                public Types.User User { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Video/VideoListRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/list/ 接口的请求。</para>\n    /// </summary>\n    public class VideoListRequest : TikTokV2Request\n    {\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cursor\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n        public long? PageCursor { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"max_count\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"max_count\")]\n        public int? PageSize { get; set; }\n\n        public VideoListRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"cover_image_url\");\n            FieldList.Add(\"share_url\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"duration\");\n            FieldList.Add(\"height\");\n            FieldList.Add(\"width\");\n            FieldList.Add(\"title\");\n            FieldList.Add(\"embed_html\");\n            FieldList.Add(\"embed_link\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Video/VideoListResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/list/ 接口的响应。</para>\n    /// </summary>\n    public class VideoListResponse : TikTokV2Response<VideoListResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置视频 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string VideoId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover_image_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover_image_url\")]\n                        public string CoverImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分享链接 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_url\")]\n                        public string ShareUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"video_description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"video_description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频时长（单位：秒）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"duration\")]\n                        public int Duration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置内嵌 HTML。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"embed_html\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"embed_html\")]\n                        public string EmbedHtml { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置内嵌链接。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"embed_link\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"embed_link\")]\n                        public string EmbedLink { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置点赞次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"like_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"like_count\")]\n                        public long LikeCount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置评论次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"comment_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"comment_count\")]\n                        public long CommentCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置分享次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"share_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"share_count\")]\n                        public long ShareCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置观看次数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"view_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"view_count\")]\n                        public long ViewCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置分页游标。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cursor\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cursor\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long? PageCursor { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否还有更多。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_more\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_more\")]\n                public bool HasMore { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Video/VideoQueryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/query/ 接口的请求。</para>\n    /// </summary>\n    public class VideoQueryRequest : TikTokV2Request\n    {\n        public static class Types\n        {\n            public class Filters\n            {\n                /// <summary>\n                /// 获取或设置视频 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video_ids\")]\n                public IList<string>? VideoIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置要读取的字段列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> FieldList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置筛选条件。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"filters\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"filters\")]\n        public Types.Filters Filters { get; set; } = new Types.Filters();\n        \n        public VideoQueryRequest SetCompleteFields()\n        {\n            FieldList ??= new List<string>();\n            FieldList.Clear();\n            FieldList.Add(\"id\");\n            FieldList.Add(\"create_time\");\n            FieldList.Add(\"cover_image_url\");\n            FieldList.Add(\"share_url\");\n            FieldList.Add(\"video_description\");\n            FieldList.Add(\"duration\");\n            FieldList.Add(\"height\");\n            FieldList.Add(\"width\");\n            FieldList.Add(\"title\");\n            FieldList.Add(\"embed_html\");\n            FieldList.Add(\"embed_link\");\n            FieldList.Add(\"like_count\");\n            FieldList.Add(\"comment_count\");\n            FieldList.Add(\"share_count\");\n            FieldList.Add(\"view_count\");\n            return this;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Models/Video/VideoQueryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /video/query/ 接口的响应。</para>\n    /// </summary>\n    public class VideoQueryResponse : TikTokV2Response<VideoQueryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Video : VideoListResponse.Types.Data.Types.Video\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置视频列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"videos\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                public Types.Video[] VideoList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n---\n\n## 简体中文 / Simplified Chinese\n\n基于 `Flurl.Http` 的 TikTok Developer HTTP API SDK。\n\n### 【功能特性】\n\n-   基于 TikTok Developer API 封装。\n\n### 【开发文档】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)。\n\n### 【更新日志】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md)。\n\n---\n\n## 英文 / English\n\nThe TikTok SDK for .NET. (Offical Website: https://developers.tiktok.com/)\n\n### Documentation\n\n[Click here for details](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance).\n\n### Changelog\n\n[Click here for details](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md).\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n        <TargetFrameworks>net462; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>10.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.TikTokGlobal</PackageId>\n        <PackageIcon>LOGO.png</PackageIcon>\n        <PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance TikTok 字节 字节跳动 抖音国际版</PackageTags>\n        <Version>3.2.0</Version>\n        <Description>\n            基于 Flurl.Http 的 TikTok Developer API 客户端。\n            The TikTok Developer API SDK for .NET. (Offical Website: https://developers.tiktok.com/)\n        </Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n    </PropertyGroup>\n\n    <PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n        <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n        <Deterministic>true</Deterministic>\n        <EmbedUntrackedSources>true</EmbedUntrackedSources>\n        <GenerateDocumentationFile>true</GenerateDocumentationFile>\n        <IncludeSymbols>true</IncludeSymbols>\n        <SymbolPackageFormat>snupkg</SymbolPackageFormat>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n        <None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"3.1.1\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"TikTokV2ClientOptions.ClientKey\"/> 的副本。\n        /// </summary>\n        public string ClientKey { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"TikTokV2ClientOptions.ClientSecret\"/> 的副本。\n        /// </summary>\n        public string ClientSecret { get; }\n\n        internal Credentials(TikTokV2ClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            ClientKey = options.ClientKey;\n            ClientSecret = options.ClientSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2Client.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// 一个 TikTok v2 API HTTP 客户端。\n    /// </summary>\n    public class TikTokV2Client : CommonClientBase, ICommonClient\n    {\n        /// <summary>\n        /// 获取当前客户端使用的 TikTok API 凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"TikTokV2Client\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public TikTokV2Client(TikTokV2ClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected TikTokV2Client(TikTokV2ClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? TikTokV2Endpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(TikTokV2Request request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            if (request.AccessToken is not null)\n            {\n                flurlRequest.WithHeader(HttpHeaders.Authorization, \"Bearer \" + request.AccessToken);\n            }\n\n            return flurlRequest;\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : TikTokV2Response, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsJsonAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : TikTokV2Response, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken).ConfigureAwait(false) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsFormUrlEncodedAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : TikTokV2Response, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken).ConfigureAwait(false) :\n                await base.SendFlurlRequestAsFormUrlEncodedAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2ClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"TikTokV2Client\"/> 实例的构造器。\n    /// </summary>\n    public partial class TikTokV2ClientBuilder : ICommonClientBuilder<TikTokV2Client>\n    {\n        private readonly TikTokV2ClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private TikTokV2ClientBuilder(TikTokV2ClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<TikTokV2Client> ICommonClientBuilder<TikTokV2Client>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<TikTokV2Client> ICommonClientBuilder<TikTokV2Client>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<TikTokV2Client> ICommonClientBuilder<TikTokV2Client>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public TikTokV2ClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public TikTokV2ClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public TikTokV2ClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public TikTokV2Client Build()\n        {\n            TikTokV2Client client = _disposeClient.HasValue\n                ? new TikTokV2Client(_options, _httpClient, _disposeClient.Value)\n                : new TikTokV2Client(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class TikTokV2ClientBuilder\n    {\n        public static TikTokV2ClientBuilder Create(TikTokV2ClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new TikTokV2ClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2ClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"TikTokV2Client\"/> 时使用的配置项。\n    /// </summary>\n    public class TikTokV2ClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置 TikTok API 入口点。\n        /// <para>默认值：<see cref=\"TikTokV2Endpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = TikTokV2Endpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientKey。\n        /// </summary>\n        public string ClientKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置 TikTok ClientSecret。\n        /// </summary>\n        public string ClientSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2Endpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// TikTok v2 API 接口域名。\n    /// </summary>\n    public static class TikTokV2Endpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://open.tiktokapis.com/v2\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2Exception.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// 当调用 TikTok v2 API 出错时引发的异常。\n    /// </summary>\n    public class TikTokV2Exception : CommonException\n    {\n        /// <inheritdoc/>\n        public TikTokV2Exception()\n        {\n        }\n\n        /// <inheritdoc/>\n        public TikTokV2Exception(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public TikTokV2Exception(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2Request.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// TikTok v2 API 请求的基类。\n    /// </summary>\n    public abstract class TikTokV2Request : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置接口调用凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/TikTokV2Response.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\n{\n    /// <summary>\n    /// TikTok v2 API 响应的基类。\n    /// </summary>\n    public abstract class TikTokV2Response : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取 TikTok API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error\")]\n        public virtual string? ErrorCode { get; set; }\n\n        /// <summary>\n        /// 获取 TikTok API 返回的错误描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error_description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error_description\")]\n        public virtual string? ErrorDescription { get; set; }\n\n        /// <summary>\n        /// 获取 TikTok API 返回的请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public virtual string? LogId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用 TikTok API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"ErrorCode\"/> 值为空）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && string.IsNullOrEmpty(ErrorCode);\n        }\n    }\n\n    /// <summary>\n    /// TikTok v2 API 响应的泛型基类。\n    /// </summary>\n    public abstract class TikTokV2Response<TData> : TikTokV2Response\n    {\n        /// <summary>\n        /// <i>（保留字段，无实际意义）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? ErrorCode\n        {\n            get { return base.ErrorCode; }\n            set { base.ErrorCode = value; }\n        }\n\n        /// <summary>\n        /// <i>（保留字段，无实际意义）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override string? ErrorDescription\n        {\n            get { return base.ErrorDescription; }\n            set { base.ErrorDescription = value; }\n        }\n\n        /// <summary>\n        /// 获取 TikTok API 返回的错误信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"error\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"error\")]\n        public virtual TikTokV2ResponseError? Error { get; set; }\n\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n\n        /// <summary>\n        /// 获取一个值，该值指示调用 TikTok API 是否成功。\n        /// <para>\n        ///（即 HTTP 状态码为 200，且 <see cref=\"Error.Code\"/> 值为 \"ok\"）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return base.IsSuccessful() && (string.IsNullOrEmpty(Error?.Code) || \"ok\".Equals(Error?.Code));\n        }\n    }\n\n    /// <summary>\n    /// TikTok v2 API 响应的错误信息字段。\n    /// </summary>\n    public sealed class TikTokV2ResponseError\n    {\n        /// <summary>\n        /// 获取或设置错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        public string Code { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置错误信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public string? Message { get; set; }\n\n        /// <summary>\n        /// 获取请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"log_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"log_id\")]\n        public string LogId { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/Utilities/[Internal]/HttpContentBuilder.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Web;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Utilities\n{\n    using SKIT.FlurlHttpClient;\n\n    internal static class HttpContentBuilder\n    {\n        public static MultipartFormDataContent BuildWithFile(string fileName, byte[] fileBytes, string? fileContentType, string formDataName, Action<HttpContent>? configureFileHttpContent = null)\n        {\n            if (fileName is null) throw new ArgumentNullException(nameof(fileName));\n            if (formDataName is null) throw new ArgumentNullException(nameof(formDataName));\n\n            fileName = fileName.Replace(\"\\\"\", \"\");\n            fileBytes = fileBytes ?? Array.Empty<byte>();\n            fileContentType = string.IsNullOrEmpty(fileContentType) ? MimeTypes.Binary : fileContentType;\n            formDataName = formDataName.Replace(\"\\\"\", \"\");\n\n            ByteArrayContent fileContent = new ByteArrayContent(fileBytes);\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(fileContentType);\n            configureFileHttpContent?.Invoke(fileContent);\n\n            string boundary = \"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\");\n            MultipartFormDataContent httpContent = new MultipartFormDataContent(boundary);\n            httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse($\"{MimeTypes.FormData}; boundary={boundary}\");\n            httpContent.Add(fileContent, $\"\\\"{formDataName}\\\"\", $\"\\\"{HttpUtility.UrlEncode(fileName)}\\\"\");\n            return httpContent;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/CancellationStatusChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 CANCELLATION_STATUS_CHANGE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65030150746462028285f657 ]]>\n    /// </para>\n    /// </summary>\n    public class CancellationStatusChangeEvent : TikTokShopEvent<CancellationStatusChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置取消 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string CancelId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置取消发起人。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancellations_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancellations_role\")]\n                public string CancelRole { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置取消状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_status\")]\n                public string CancelStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/OrderStatusChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 ORDER_STATUS_CHANGE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650300b8a57708028b430b4a ]]>\n    /// </para>\n    /// </summary>\n    public class OrderStatusChangeEvent : TikTokShopEvent<OrderStatusChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                public string OrderStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否是延期订单。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_on_hold_order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_on_hold_order\")]\n                public bool? IsOnHoldOrder { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/PackageUpdateEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 PACKAGE_UPDATE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650955cabace3e02b73cc886 ]]>\n    /// </para>\n    /// </summary>\n    public class PackageUpdateEvent : TikTokShopEvent<PackageUpdateEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package\n                    {\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string? PackageId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id_list\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id_list\")]\n                        public string[]? OrderIdList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置事件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sc_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sc_type\")]\n                public string Type { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置角色类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"role_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"role_type\")]\n                public string RoleType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_list\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_list\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/ProductCreationEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 PRODUCT_CREATION 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/663c98b566828e02e4515580 ]]>\n    /// </para>\n    /// </summary>\n    public class ProductCreationEvent : TikTokShopEvent<ProductCreationEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_type\")]\n                public string[] ProductTypeList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/ProductInformationChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 PRODUCT_INFORMATION_CHANGE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65d6f41411a60f02dc1cf8bf ]]>\n    /// </para>\n    /// </summary>\n    public class ProductInformationChangeEvent : TikTokShopEvent<ProductInformationChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置修改过的字段列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"changed_fields\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"changed_fields\")]\n                public string[] ChangedFieldList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/ProductStatusChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 PRODUCT_STATUS_CHANGE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650956aff1fd3102b90b6261 ]]>\n    /// </para>\n    /// </summary>\n    public class ProductStatusChangeEvent : TikTokShopEvent<ProductStatusChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string ProductStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置审核拒绝原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"suspended_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"suspended_reason\")]\n                public string? RejectReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/RecipientAddressUpdateEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 RECIPIENT_ADDRESS_UPDATE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650301af5a12ff0294ea3bf9 ]]>\n    /// </para>\n    /// </summary>\n    public class RecipientAddressUpdateEvent : TikTokShopEvent<RecipientAddressUpdateEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/ReturnStatusChangeEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 RETURN_STATUS_CHANGE 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65030162bb2a4d028d50cc51 ]]>\n    /// </para>\n    /// </summary>\n    public class ReturnStatusChangeEvent : TikTokShopEvent<ReturnStatusChangeEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退货 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ReturnId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退货发起人。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_role\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_role\")]\n                public string ReturnRole { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退货类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_type\")]\n                public string ReturnType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退货状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n                public string ReturnStatus { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/SellerDeauthorizationEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 SELLER_DEAUTHORIZATION 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65095746defece02be4d749d ]]>\n    /// </para>\n    /// </summary>\n    public class SellerDeauthorizationEvent : TikTokShopEvent<SellerDeauthorizationEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置通知消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string Message { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Events/UpcomingAuthorizationExpirationEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\n{\n    /// <summary>\n    /// <para>表示 UPCOMING_AUTHORIZATION_EXPIRATION 事件。</para>\n    /// <para>\n    /// REF: <br/>\n    /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509579c0fcef602bf11312c ]]>\n    /// </para>\n    /// </summary>\n    public class UpcomingAuthorizationExpirationEvent : TikTokShopEvent<UpcomingAuthorizationExpirationEvent.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置通知消息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                public string Message { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"expiration_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"expiration_time\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                public long ExpireTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientEventExtensions.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientEventExtensions\n    {\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"TikTokShopEvent\"/> 对象。</para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TikTokShopEvent DeserializeEvent(this TikTokShopClient client, string webhookJson)\n        {\n            return DeserializeEvent<TikTokShopEvent>(client, webhookJson);\n        }\n\n        /// <summary>\n        /// <para>从 JSON 反序列化得到 <see cref=\"TikTokShopEvent\"/> 对象。</para>\n        /// </summary>\n        /// <typeparam name=\"TEvent\"></typeparam>\n        /// <param name=\"client\"></param>\n        /// <param name=\"webhookJson\"></param>\n        /// <returns></returns>\n        public static TEvent DeserializeEvent<TEvent>(this TikTokShopClient client, string webhookJson)\n            where TEvent : TikTokShopEvent, new()\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (webhookJson is null) throw new ArgumentNullException(webhookJson);\n\n            try\n            {\n                return client.JsonSerializer.Deserialize<TEvent>(webhookJson)!;\n            }\n            catch (Exception ex)\n            {\n                throw new TikTokShopException(\"Failed to deserialize event data. Please see the inner exception for more details.\", ex);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteAuthExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteAuthExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /token/get 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6632a7a926b40c02d97de61b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthGetTokenResponse> ExecuteAuthGetTokenAsync(this TikTokShopClient client, Models.AuthGetTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"token\", \"get\")\n                .WithUrl($\"{client._BASEURL_AUTHAPI}/token/get\")\n                .SetQueryParam(\"app_key\", client.Credentials.AppKey)\n                .SetQueryParam(\"app_secret\", client.Credentials.AppSecret)\n                .SetQueryParam(\"grant_type\", request.GrantType)\n                .SetQueryParam(\"auth_code\", request.AuthorizedCode)\n                .RemoveQueryParams(\"access_token\", \"timestamp\", \"shop_cipher\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.AuthGetTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /token/refresh 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6632a7a926b40c02d97de61b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthRefreshTokenResponse> ExecuteAuthRefreshTokenAsync(this TikTokShopClient client, Models.AuthRefreshTokenRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"token\", \"refresh\")\n                .WithUrl($\"{client._BASEURL_AUTHAPI}/token/refresh\")\n                .SetQueryParam(\"app_key\", client.Credentials.AppKey)\n                .SetQueryParam(\"app_secret\", client.Credentials.AppSecret)\n                .SetQueryParam(\"grant_type\", request.GrantType)\n                .SetQueryParam(\"refresh_token\", request.RefreshToken)\n                .RemoveQueryParams(\"access_token\", \"timestamp\", \"shop_cipher\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.AuthRefreshTokenResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteAuthorizationExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteAuthorizationExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /authorization/{version}/shops 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6507ead7b99d5302be949ba9 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthorizationGetShopsResponse> ExecuteAuthorizationGetShopsAsync(this TikTokShopClient client, Models.AuthorizationGetShopsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"authorization\", request.ApiVersion, \"shops\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.AuthorizationGetShopsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /authorization/{version}/category_assets 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/666012dd609d4402cc3be995 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.AuthorizationGetCategoryAssetsResponse> ExecuteAuthorizationGetCategoryAssetsAsync(this TikTokShopClient client, Models.AuthorizationGetCategoryAssetsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"authorization\", request.ApiVersion, \"category_assets\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.AuthorizationGetCategoryAssetsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteCustomerServiceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class TikTokShopClientExecuteCustomerServiceExtensions\n    {\n        #region Agents\n        /// <summary>\n        /// <para>异步调用 [GET] /customer_service/{version}/agents/settings 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a58d2bace3e02b7556575 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceGetAgentSettingsResponse> ExecuteCustomerServiceGetAgentSettingsAsync(this TikTokShopClient client, Models.CustomerServiceGetAgentSettingsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"customer_service\", request.ApiVersion, \"agents\", \"settings\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceGetAgentSettingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /customer_service/{version}/agents/settings 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a59870fcef602bf2a1d79 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceUpdateAgentSettingsResponse> ExecuteCustomerServiceUpdateAgentSettingsAsync(this TikTokShopClient client, Models.CustomerServiceUpdateAgentSettingsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"customer_service\", request.ApiVersion, \"agents\", \"settings\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceUpdateAgentSettingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Performance\n        /// <summary>\n        /// <para>异步调用 [GET] /customer_service/{version}/performance 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/66bec10859f0b0030018e518 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceGetPerformanceResponse> ExecuteCustomerServiceGetPerformanceAsync(this TikTokShopClient client, Models.CustomerServiceGetPerformanceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"customer_service\", request.ApiVersion, \"performance\")\n                .SetQueryParam(\"support_date_ge\", request.SupportDateStringGreaterThan)\n                .SetQueryParam(\"support_date_lt\", request.SupportDateStringLessThan);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceGetPerformanceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        /// <summary>\n        /// <para>异步调用 [POST] /customer_service/{version}/conversations 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a5a0bf1fd3102b9245b8d ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceCreateConversationResponse> ExecuteCustomerServiceCreateConversationAsync(this TikTokShopClient client, Models.CustomerServiceCreateConversationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"customer_service\", request.ApiVersion, \"conversations\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceCreateConversationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /customer_service/{version}/conversations 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a589f0fcef602bf29fecf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceGetConversationsResponse> ExecuteCustomerServiceGetConversationsAsync(this TikTokShopClient client, Models.CustomerServiceGetConversationsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"customer_service\", request.ApiVersion, \"conversations\")\n                .SetQueryParam(\"locale\", request.Locale)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceGetConversationsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /customer_service/{version}/conversations/{conversation_id}/messages 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a58bbbace3e02b7556286 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceCreateConversationMessageResponse> ExecuteCustomerServiceCreateConversationMessageAsync(this TikTokShopClient client, Models.CustomerServiceCreateConversationMessageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"customer_service\", request.ApiVersion, \"conversations\", request.ConversationId, \"messages\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceCreateConversationMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /customer_service/{version}/conversations/{conversation_id}/messages 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a587edefece02be664cd2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceGetConversationMessagesResponse> ExecuteCustomerServiceGetConversationMessagesAsync(this TikTokShopClient client, Models.CustomerServiceGetConversationMessagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"customer_service\", request.ApiVersion, \"conversations\", request.ConversationId, \"messages\")\n                .SetQueryParam(\"locale\", request.Locale)\n                .SetQueryParam(\"sort_field\", request.SortField)\n                .SetQueryParam(\"sort_order\", request.SortOrder)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceGetConversationMessagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /customer_service/{version}/images/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a599d0fcef602bf2a1dc8 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceUploadImageResponse> ExecuteCustomerServiceUploadImageAsync(this TikTokShopClient client, Models.CustomerServiceUploadImageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"customer_service\", request.ApiVersion, \"images\", \"upload\");\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"data\");\n            return await client.SendFlurlRequestAsync<Models.CustomerServiceUploadImageResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /customer_service/{version}/conversations/{conversation_id}/messages/read 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a59f7c16ffe02b8e8db3f ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.CustomerServiceReadConversationMessageResponse> ExecuteCustomerServiceReadConversationMessageAsync(this TikTokShopClient client, Models.CustomerServiceReadConversationMessageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"customer_service\", request.ApiVersion, \"conversations\", request.ConversationId, \"messages\", \"read\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.CustomerServiceReadConversationMessageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteEventExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteEventExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /event/{version}/webhooks 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509a3a1c16ffe02b8d64149 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EventGetWebhooksResponse> ExecuteEventGetWebhooksAsync(this TikTokShopClient client, Models.EventGetWebhooksRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"event\", request.ApiVersion, \"webhooks\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.EventGetWebhooksResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /event/{version}/webhooks 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa064defece02be6df919 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EventUpdateWebhookResponse> ExecuteEventUpdateWebhookAsync(this TikTokShopClient client, Models.EventUpdateWebhookRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"event\", request.ApiVersion, \"webhooks\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.EventUpdateWebhookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [DELETE] /event/{version}/webhooks 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa1eadefece02be6e224a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.EventDeleteWebhookResponse> ExecuteEventDeleteWebhookAsync(this TikTokShopClient client, Models.EventDeleteWebhookRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Delete, \"event\", request.ApiVersion, \"webhooks\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.EventDeleteWebhookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteFBTExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteFBTExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /fbt/{version}/merchants/onboarded_regions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d583a1ce48d030862011f ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetMerchantOnboardedRegionsResponse> ExecuteFBTGetMerchantOnboardedRegionsAsync(this TikTokShopClient client, Models.FBTGetMerchantOnboardedRegionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fbt\", request.ApiVersion, \"merchants\", \"onboarded_regions\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetMerchantOnboardedRegionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fbt/{version}/warehouses 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d588b192d3d0308430d56 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetWarehousesResponse> ExecuteFBTGetWarehousesAsync(this TikTokShopClient client, Models.FBTGetWarehousesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fbt\", request.ApiVersion, \"warehouses\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetWarehousesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fbt/{version}/inbound_orders 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d585aa88d11032480e0fc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetInboundOrdersResponse> ExecuteFBTGetInboundOrdersAsync(this TikTokShopClient client, Models.FBTGetInboundOrdersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fbt\", request.ApiVersion, \"inbound_orders\")\n                .SetQueryParam(\"ids\", string.Join(\",\", request.InboundOrderIdList));\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetInboundOrdersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fbt/{version}/inventory/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d5868c78b9802f796ab81 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetInventoriesResponse> ExecuteFBTGetInventoriesAsync(this TikTokShopClient client, Models.FBTGetInventoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fbt\", request.ApiVersion, \"inventory\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetInventoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fbt/{version}/inventory_records/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d584ba83c5f030f3071e4 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetInventoryRecordsResponse> ExecuteFBTGetInventoryRecordsAsync(this TikTokShopClient client, Models.FBTGetInventoryRecordsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fbt\", request.ApiVersion, \"inventory_records\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetInventoryRecordsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fbt/{version}/goods/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/670d587d6921310398a3af3d ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FBTGetGoodsResponse> ExecuteFBTGetGoodsAsync(this TikTokShopClient client, Models.FBTGetGoodsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fbt\", request.ApiVersion, \"goods\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FBTGetGoodsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteFinanceExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteFinanceExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /finance/{version}/orders/{order_id}/statement_transactions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a6734defece02be67d724 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FinanceGetOrderStatementTransactionsResponse> ExecuteFinanceGetOrderStatementTransactionsAsync(this TikTokShopClient client, Models.FinanceGetOrderStatementTransactionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"finance\", request.ApiVersion, \"orders\", request.OrderId, \"statement_transactions\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FinanceGetOrderStatementTransactionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /finance/{version}/statements/{statement_id}/statement_transactions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a6749defece02be67da87 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FinanceGetStatementTransactionsResponse> ExecuteFinanceGetStatementTransactionsAsync(this TikTokShopClient client, Models.FinanceGetStatementTransactionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"finance\", request.ApiVersion, \"statements\", request.StatementId, \"statement_transactions\")\n                .SetQueryParam(\"sort_field\", request.SortField)\n                .SetQueryParam(\"sort_order\", request.SortOrder)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FinanceGetStatementTransactionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /finance/{version}/statements 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a676f0fcef602bf2b91f0 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FinanceGetStatementsResponse> ExecuteFinanceGetStatementsAsync(this TikTokShopClient client, Models.FinanceGetStatementsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"finance\", request.ApiVersion, \"statements\")\n                .SetQueryParam(\"statement_time_ge\", request.SettlementTimestampGreaterThan)\n                .SetQueryParam(\"statement_time_lt\", request.SettlementTimestampLessThan)\n                .SetQueryParam(\"payment_status\", request.PaymentStatus)\n                .SetQueryParam(\"sort_field\", request.SortField)\n                .SetQueryParam(\"sort_order\", request.SortOrder)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FinanceGetStatementsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /finance/{version}/payments 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a676f0fcef602bf2b91f0 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FinanceGetPaymentsResponse> ExecuteFinanceGetPaymentsAsync(this TikTokShopClient client, Models.FinanceGetPaymentsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"finance\", request.ApiVersion, \"payments\")\n                .SetQueryParam(\"create_time_ge\", request.CreateTimestampGreaterThan)\n                .SetQueryParam(\"create_time_lt\", request.CreateTimestampLessThan)\n                .SetQueryParam(\"sort_field\", request.SortField)\n                .SetQueryParam(\"sort_order\", request.SortOrder)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FinanceGetPaymentsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /finance/{version}/withdrawals 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a675af1fd3102b925d283 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FinanceGetWithdrawalsResponse> ExecuteFinanceGetWithdrawalsAsync(this TikTokShopClient client, Models.FinanceGetWithdrawalsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"finance\", request.ApiVersion, \"withdrawals\")\n                .SetQueryParam(\"types\", request.TypeList is null ? null : string.Join(\",\", request.TypeList))\n                .SetQueryParam(\"create_time_ge\", request.CreateTimestampGreaterThan)\n                .SetQueryParam(\"create_time_lt\", request.CreateTimestampLessThan)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FinanceGetWithdrawalsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteFulfillmentExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class TikTokShopClientExecuteFulfillmentExtensions\n    {\n        #region Bundle\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/bundles 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/669f4a4e762e2402ff17df5c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentCreateBundleResponse> ExecuteFulfillmentCreateBundleAsync(this TikTokShopClient client, Models.FulfillmentCreateBundleRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"bundles\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentCreateBundleResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Orders\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/orders/split_attributes 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa9210fcef602bf32ae5b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentGetOrderSplitAttributesResponse> ExecuteFulfillmentGetOrderSplitAttributesAsync(this TikTokShopClient client, Models.FulfillmentGetOrderSplitAttributesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"orders\", \"split_attributes\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentGetOrderSplitAttributesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/orders/{order_id}/tracking 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa630c16ffe02b8f11803 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentGetOrderTrackingResponse> ExecuteFulfillmentGetOrderTrackingAsync(this TikTokShopClient client, Models.FulfillmentGetOrderTrackingRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"orders\", request.OrderId, \"tracking\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentGetOrderTrackingResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/orders/{order_id}/shipping_services/query 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa6b2bace3e02b75dda4e ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentSearchOrderShippingServicesResponse> ExecuteFulfillmentSearchOrderShippingServicesAsync(this TikTokShopClient client, Models.FulfillmentSearchOrderShippingServicesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"orders\", request.OrderId, \"shipping_services\", \"query\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentSearchOrderShippingServicesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/orders/{order_id}/split 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa8890fcef602bf329fcc ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentSplitOrderResponse> ExecuteFulfillmentSplitOrderAsync(this TikTokShopClient client, Models.FulfillmentSplitOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"orders\", request.OrderId, \"split\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentSplitOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/orders/{order_id}/packages 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503c95456e2bb0289ee4e81 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUpdateOrderPackagesResponse> ExecuteFulfillmentUpdateOrderPackagesAsync(this TikTokShopClient client, Models.FulfillmentUpdateOrderPackagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"orders\", request.OrderId, \"packages\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentUpdateOrderPackagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/orders/{order_id}/shipping_info/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab7c40fcef602bf346f3a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUpdateOrderShippingInfoResponse> ExecuteFulfillmentUpdateOrderShippingInfoAsync(this TikTokShopClient client, Models.FulfillmentUpdateOrderShippingInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"orders\", request.OrderId, \"shipping_info\", \"update\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentUpdateOrderShippingInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Packages\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa132bace3e02b75d40d8 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentCreatePackageResponse> ExecuteFulfillmentCreatePackageAsync(this TikTokShopClient client, Models.FulfillmentCreatePackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentCreatePackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa592bace3e02b75db748 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentSearchPackagesResponse> ExecuteFulfillmentSearchPackagesAsync(this TikTokShopClient client, Models.FulfillmentSearchPackagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentSearchPackagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/packages/{package_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa39fbace3e02b75d8617 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentGetPackageDetailResponse> ExecuteFulfillmentGetPackageDetailAsync(this TikTokShopClient client, Models.FulfillmentGetPackageDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"packages\", request.PackageId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentGetPackageDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/packages/{package_id}/shipping_documents 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa5fac16ffe02b8f112ca ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentGetPackageShippingDocumentsResponse> ExecuteFulfillmentGetPackageShippingDocumentsAsync(this TikTokShopClient client, Models.FulfillmentGetPackageShippingDocumentsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"packages\", request.PackageId, \"shipping_documents\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentGetPackageShippingDocumentsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/packages/{package_id}/handover_time_slots 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa5360fcef602bf324492 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentGetPackageHandoverTimeSlotsResponse> ExecuteFulfillmentGetPackageHandoverTimeSlotsAsync(this TikTokShopClient client, Models.FulfillmentGetPackageHandoverTimeSlotsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"packages\", request.PackageId, \"handover_time_slots\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentGetPackageHandoverTimeSlotsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/{package_id}/shipping_info/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa666c16ffe02b8f1203c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUpdatePackageShippingInfoResponse> ExecuteFulfillmentUpdatePackageShippingInfoAsync(this TikTokShopClient client, Models.FulfillmentUpdatePackageShippingInfoRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", request.PackageId, \"shipping_info\", \"update\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentUpdatePackageShippingInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/{package_id}/ship 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa4f1defece02be6e7cb1 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentShipPackageResponse> ExecuteFulfillmentShipPackageAsync(this TikTokShopClient client, Models.FulfillmentShipPackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", request.PackageId, \"ship\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentShipPackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/ship 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa3ebbace3e02b75d8bd4 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentBatchShipPackagesResponse> ExecuteFulfillmentBatchShipPackagesAsync(this TikTokShopClient client, Models.FulfillmentBatchShipPackagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", \"ship\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentBatchShipPackagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/deliver 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa332c16ffe02b8f0ba82 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentBatchUpdatePackagesDeliveryStatusResponse> ExecuteFulfillmentBatchUpdatePackagesDeliveryStatusAsync(this TikTokShopClient client, Models.FulfillmentBatchUpdatePackagesDeliveryStatusRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", \"deliver\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentBatchUpdatePackagesDeliveryStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Package/Combine\n        /// <summary>\n        /// <para>异步调用 [GET] /fulfillment/{version}/combinable_packages/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa481bace3e02b75d9e32 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentSearchCombinablePackagesResponse> ExecuteFulfillmentSearchCombinablePackagesAsync(this TikTokShopClient client, Models.FulfillmentSearchCombinablePackagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"fulfillment\", request.ApiVersion, \"combinable_packages\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentSearchCombinablePackagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/combine 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa99adefece02be6f07c9 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentCombinePackageResponse> ExecuteFulfillmentCombinePackageAsync(this TikTokShopClient client, Models.FulfillmentCombinePackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", \"combine\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentCombinePackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/packages/uncombine 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa960f1fd3102b92ceb0e ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUncombinePackageResponse> ExecuteFulfillmentUncombinePackageAsync(this TikTokShopClient client, Models.FulfillmentUncombinePackageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"packages\", \"uncombine\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.FulfillmentUncombinePackageResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n        #endregion\n\n        #region Upload\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/images/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa70d0fcef602bf32772f ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUploadImageResponse> ExecuteFulfillmentUploadImageAsync(this TikTokShopClient client, Models.FulfillmentUploadImageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"images\", \"upload\");\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"data\");\n            return await client.SendFlurlRequestAsync<Models.FulfillmentUploadImageResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /fulfillment/{version}/files/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509dffdc16ffe02b8dc10c5 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.FulfillmentUploadFileResponse> ExecuteFulfillmentUploadFileAsync(this TikTokShopClient client, Models.FulfillmentUploadFileRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.FileName is null)\n                request.FileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".pdf\";\n\n            if (request.FileContentType is null)\n                request.FileContentType = MimeTypes.GetMimeMapping(request.FileName) ;\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"fulfillment\", request.ApiVersion, \"files\", \"upload\");\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, formDataName: \"data\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.FileName)), \"name\");\n            return await client.SendFlurlRequestAsync<Models.FulfillmentUploadFileResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteLogisticsExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteLogisticsExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /logistics/{version}/warehouses 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa418defece02be6e66b6 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetWarehousesResponse> ExecuteLogisticsGetWarehousesAsync(this TikTokShopClient client, Models.LogisticsGetWarehousesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"logistics\", request.ApiVersion, \"warehouses\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.LogisticsGetWarehousesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /logistics/{version}/global_warehouses 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa3f0defece02be6e5ffb ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetGlobalWarehousesResponse> ExecuteLogisticsGetGlobalWarehousesAsync(this TikTokShopClient client, Models.LogisticsGetGlobalWarehousesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"logistics\", request.ApiVersion, \"global_warehouses\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.LogisticsGetGlobalWarehousesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /logistics/{version}/warehouses/{warehouse_id}/delivery_options 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa46ebace3e02b75d9afa ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetWarehouseDeliveryOptionsResponse> ExecuteLogisticsGetWarehouseDeliveryOptionsAsync(this TikTokShopClient client, Models.LogisticsGetWarehouseDeliveryOptionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"logistics\", request.ApiVersion, \"warehouses\", request.WarehouseId, \"delivery_options\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.LogisticsGetWarehouseDeliveryOptionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /logistics/{version}/delivery_options/{delivery_option_id}/shipping_providers 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa48d4a0bb702c06d85cd ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.LogisticsGetDeliveryOptionShippingProvidersResponse> ExecuteLogisticsGetDeliveryOptionShippingProvidersAsync(this TikTokShopClient client, Models.LogisticsGetDeliveryOptionShippingProvidersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"logistics\", request.ApiVersion, \"delivery_options\", request.DeliveryOptionId, \"shipping_providers\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.LogisticsGetDeliveryOptionShippingProvidersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteOrderExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteOrderExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /order/{version}/orders/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa8094a0bb702c06df242 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderSearchOrdersResponse> ExecuteOrderSearchOrdersAsync(this TikTokShopClient client, Models.OrderSearchOrdersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"order\", request.ApiVersion, \"orders\", \"search\")\n                .SetQueryParam(\"sort_field\", request.SortField)\n                .SetQueryParam(\"sort_order\", request.SortOrder)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderSearchOrdersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /order/{version}/orders 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aa8ccc16ffe02b8f167a0 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderBatchGetOrderDetailResponse> ExecuteOrderBatchGetOrderDetailAsync(this TikTokShopClient client, Models.OrderBatchGetOrderDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"order\", request.ApiVersion, \"orders\")\n                .SetQueryParam(\"ids\", request.OrderIdList);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderBatchGetOrderDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /order/{version}/orders/{order_id}/price_detail 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/66ce16cadefa5102ffda9c6b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderGetOrderPriceDetailResponse> ExecuteOrderGetOrderPriceDetailAsync(this TikTokShopClient client, Models.OrderGetOrderPriceDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"order\", request.ApiVersion, \"orders\", request.OrderId, \"price_detail\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderGetOrderPriceDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region ExternalOrder\n        /// <summary>\n        /// <para>异步调用 [POST] /order/{version}/orders/external_orders 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/668cf073a6a5e002e69d4a28 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderCreateExternalOrderResponse> ExecuteOrderCreateExternalOrderAsync(this TikTokShopClient client, Models.OrderCreateExternalOrderRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"order\", request.ApiVersion, \"orders\", \"external_orders\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderCreateExternalOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /order/{version}/orders/{order_id}/external_orders 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/668cf073115ebe02f8050b0a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderGetExternalOrdersResponse> ExecuteOrderGetExternalOrdersAsync(this TikTokShopClient client, Models.OrderGetExternalOrdersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"order\", request.ApiVersion, \"orders\", request.OrderId, \"external_orders\")\n                .SetQueryParam(\"platform\", request.Platform);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderGetExternalOrdersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /order/{version}/orders/external_order_search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/668cf073737c3702ef051a27 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.OrderSearchExternalOrdersResponse> ExecuteOrderSearchExternalOrdersAsync(this TikTokShopClient client, Models.OrderSearchExternalOrdersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"order\", request.ApiVersion, \"orders\", \"external_order_search\")\n                .SetQueryParam(\"external_order_id\", request.ExternalOrderId)\n                .SetQueryParam(\"platform\", request.Platform);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.OrderSearchExternalOrdersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteProductExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    using SKIT.FlurlHttpClient;\n\n    public static class TikTokShopClientExecuteProductExtensions\n    {\n        #region Brand\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/brands 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503075656e2bb0289dd5d01 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetBrandsResponse> ExecuteProductGetBrandsAsync(this TikTokShopClient client, Models.ProductGetBrandsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"brands\")\n                .SetQueryParam(\"category_id\", request.CategoryId)\n                .SetQueryParam(\"category_version\", request.CategoryVersion)\n                .SetQueryParam(\"brand_name\", request.BrandName)\n                .SetQueryParam(\"is_authorized\", request.IsAuthorized.HasValue ? request.IsAuthorized.Value ? \"true\" : \"false\" : null)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetBrandsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/brands 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a0926f1fd3102b91bbfb0 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateBrandResponse> ExecuteProductCreateBrandAsync(this TikTokShopClient client, Models.ProductCreateBrandRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"brands\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateBrandResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Category\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503075656e2bb0289dd5d01 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetCategoriesResponse> ExecuteProductGetCategoriesAsync(this TikTokShopClient client, Models.ProductGetCategoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"categories\")\n                .SetQueryParam(\"keyword\", request.Keyword)\n                .SetQueryParam(\"category_version\", request.CategoryVersion)\n                .SetQueryParam(\"locale\", request.Locale);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetCategoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/categories/{category_id}/rules 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503075656e2bb0289dd5d01 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetCategoryRulesResponse> ExecuteProductGetCategoryRulesAsync(this TikTokShopClient client, Models.ProductGetCategoryRulesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"categories\", request.CategoryId, \"rules\")\n                .SetQueryParam(\"category_version\", request.CategoryVersion);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetCategoryRulesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/categories/{category_id}/attributes 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509c5784a0bb702c0561cc8 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetCategoryAttributesResponse> ExecuteProductGetCategoryAttributesAsync(this TikTokShopClient client, Models.ProductGetCategoryAttributesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"categories\", request.CategoryId, \"attributes\")\n                .SetQueryParam(\"category_version\", request.CategoryVersion)\n                .SetQueryParam(\"locale\", request.Locale);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetCategoryAttributesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/categories/recommend 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509bae1f1fd3102b91379d4 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductRecommendCategoriesResponse> ExecuteProductRecommendCategoriesAsync(this TikTokShopClient client, Models.ProductRecommendCategoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"categories\", \"recommend\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductRecommendCategoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Compliance\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/manufacturers 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a54a049d802e7afd063 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateComplianceManufacturerResponse> ExecuteProductCreateComplianceManufacturerAsync(this TikTokShopClient client, Models.ProductCreateComplianceManufacturerRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"manufacturers\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateComplianceManufacturerResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/manufacturers/{manufacturer_id}/partial_edit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a55c55b3a03044eea29 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateComplianceManufacturerPartiallyResponse> ExecuteProductUpdateComplianceManufacturerPartiallyAsync(this TikTokShopClient client, Models.ProductUpdateComplianceManufacturerPartiallyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"manufacturers\", request.ManufacturerId, \"partial_edit\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateComplianceManufacturerPartiallyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/manufacturers/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a580dcee902fa03ccf9 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSearchComplianceManufacturersResponse> ExecuteProductSearchComplianceManufacturersAsync(this TikTokShopClient client, Models.ProductSearchComplianceManufacturersRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"manufacturers\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductSearchComplianceManufacturersResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/responsible_persons 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a553521310300c988f2 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateComplianceResponsiblePersonResponse> ExecuteProductCreateComplianceResponsiblePersonAsync(this TikTokShopClient client, Models.ProductCreateComplianceResponsiblePersonRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"responsible_persons\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateComplianceResponsiblePersonResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/responsible_persons/{responsible_person_id}/partial_edit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a5587019802fdce19b3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateComplianceResponsiblePersonPartiallyResponse> ExecuteProductUpdateComplianceResponsiblePersonPartiallyAsync(this TikTokShopClient client, Models.ProductUpdateComplianceResponsiblePersonPartiallyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"responsible_persons\", request.ResponsiblePersonId, \"partial_edit\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateComplianceResponsiblePersonPartiallyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/compliance/responsible_persons/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/67066a55f17b7d02f95d2fb1 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSearchComplianceResponsiblePersonsResponse> ExecuteProductSearchComplianceResponsiblePersonsAsync(this TikTokShopClient client, Models.ProductSearchComplianceResponsiblePersonsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"compliance\", \"responsible_persons\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductSearchComplianceResponsiblePersonsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Global\n        #region Global/Category\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/global_categories 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a03f8f1fd3102b91b338a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetGlobalCategoriesResponse> ExecuteProductGetGlobalCategoriesAsync(this TikTokShopClient client, Models.ProductGetGlobalCategoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"global_categories\")\n                .SetQueryParam(\"locale\", request.Locale);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetGlobalCategoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/categories/{category_id}/global_rules 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a056df1fd3102b91b5b8e ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetGlobalCategoryRulesResponse> ExecuteProductGetGlobalCategoryRulesAsync(this TikTokShopClient client, Models.ProductGetGlobalCategoryRulesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"categories\", request.CategoryId, \"global_rules\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetGlobalCategoryRulesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/categories/{category_id}/global_attributes 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a0483c16ffe02b8dfc80a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetGlobalCategoryAttributesResponse> ExecuteProductGetGlobalCategoryAttributesAsync(this TikTokShopClient client, Models.ProductGetGlobalCategoryAttributesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"categories\", request.CategoryId, \"global_attributes\")\n                .SetQueryParam(\"locale\", request.Locale);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetGlobalCategoryAttributesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/global_categories/recommend 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a9354f1fd3102b92a853b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductRecommendGlobalCategoriesResponse> ExecuteProductRecommendGlobalCategoriesAsync(this TikTokShopClient client, Models.ProductRecommendGlobalCategoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"global_categories\", \"recommend\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductRecommendGlobalCategoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/global_products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509de61bace3e02b7489cba ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateGlobalProductResponse> ExecuteProductCreateGlobalProductAsync(this TikTokShopClient client, Models.ProductCreateGlobalProductRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"global_products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateGlobalProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/global_products/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65854fa5a46cdd02bcbd0a18 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSearchGlobalProductsResponse> ExecuteProductSearchGlobalProductsAsync(this TikTokShopClient client, Models.ProductSearchGlobalProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"global_products\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductSearchGlobalProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/global_products/{global_product_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509e2b0bace3e02b7490c96 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetGlobalProductDetailResponse> ExecuteProductGetGlobalProductDetailAsync(this TikTokShopClient client, Models.ProductGetGlobalProductDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"global_products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetGlobalProductDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/global_products/{global_product_id}/publish 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a64d6defece02be678fd6 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductPublishGlobalProductResponse> ExecuteProductPublishGlobalProductAsync(this TikTokShopClient client, Models.ProductPublishGlobalProductRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"global_products\", request.ProductId, \"publish\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductPublishGlobalProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /product/{version}/global_products/{global_product_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509e1bcc16ffe02b8dc3cd7 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateGlobalProductResponse> ExecuteProductUpdateGlobalProductAsync(this TikTokShopClient client, Models.ProductUpdateGlobalProductRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"product\", request.ApiVersion, \"global_products\", request.ProductId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateGlobalProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/global_products/{global_product_id}/inventory/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a64d6defece02be678fd6 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateGlobalProductInventoryResponse> ExecuteProductUpdateGlobalProductInventoryAsync(this TikTokShopClient client, Models.ProductUpdateGlobalProductInventoryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"global_products\", request.ProductId, \"inventory\", \"update\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateGlobalProductInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [DELETE] /product/{version}/global_products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a116fdefece02be5ebbb6 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductDeleteGlobalProductsResponse> ExecuteProductDeleteGlobalProductsAsync(this TikTokShopClient client, Models.ProductDeleteGlobalProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Delete, \"product\", request.ApiVersion, \"global_products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductDeleteGlobalProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region SizeChart\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/sizecharts/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/66bebeaa224acb02f7d7e8c5 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSearchSizeChartsResponse> ExecuteProductSearchSizeChartsAsync(this TikTokShopClient client, Models.ProductSearchSizeChartsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"sizecharts\", \"search\")\n                .SetQueryParam(\"locales\", request.Locales is not null ? string.Join(\",\", request.Locales) : null)\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductSearchSizeChartsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Upload\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/images/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509df95defece02be598a22 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUploadImageResponse> ExecuteProductUploadImageAsync(this TikTokShopClient client, Models.ProductUploadImageRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.ImageFileName is null)\n                request.ImageFileName = Guid.NewGuid().ToString(\"N\").ToLower() + \".jpg\";\n\n            if (request.ImageFileContentType is null)\n                request.ImageFileContentType = MimeTypes.GetMimeMapping(request.ImageFileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"images\", \"upload\");\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.ImageFileName, fileBytes: request.ImageFileBytes, fileContentType: request.ImageFileContentType, formDataName: \"data\");\n            if (request.UseCase is not null)\n                httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.UseCase)), \"use_case\");\n\n            return await client.SendFlurlRequestAsync<Models.ProductUploadImageResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/files/upload 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509dffdc16ffe02b8dc10c5 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUploadFileResponse> ExecuteProductUploadFileAsync(this TikTokShopClient client, Models.ProductUploadFileRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            if (request.FileName is null)\n                request.FileName = Guid.NewGuid().ToString(\"N\").ToLower();\n\n            if (request.FileContentType is null)\n                request.FileContentType = MimeTypes.GetMimeMapping(request.FileName);\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"files\", \"upload\");\n\n            using var httpContent = Utilities.HttpContentBuilder.BuildWithFile(fileName: request.FileName, fileBytes: request.FileBytes, fileContentType: request.FileContentType, formDataName: \"data\");\n            httpContent.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(request.FileName)), \"name\");\n            return await client.SendFlurlRequestAsync<Models.ProductUploadFileResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/images/optimize 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/665692b35d39dc02deb49a97 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductOptimizeImagesResponse> ExecuteProductOptimizeImagesAsync(this TikTokShopClient client, Models.ProductOptimizeImagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"images\", \"optimize\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductOptimizeImagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6502fc8da57708028b42b18a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateProductResponse> ExecuteProductCreateProductAsync(this TikTokShopClient client, Models.ProductCreateProductRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/listing_check 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a0ee8f1fd3102b91c6493 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateProductListingCheckResponse> ExecuteProductCreateProductListingCheckAsync(this TikTokShopClient client, Models.ProductCreateProductListingCheckRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"listing_check\");\n\n            if (request.IsDiagnosisRequired is not null)\n                flurlReq.SetQueryParam(\"is_diagnosis_required\", request.IsDiagnosisRequired.Value ? \"true\" : \"false\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateProductListingCheckResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65854ffb8f559302d8a6acda ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductSearchProductsResponse> ExecuteProductSearchProductsAsync(this TikTokShopClient client, Models.ProductSearchProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductSearchProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/products/{product_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509d85b4a0bb702c057fdda ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetProductDetailResponse> ExecuteProductGetProductDetailAsync(this TikTokShopClient client, Models.ProductGetProductDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"products\", request.ProductId)\n                .SetQueryParam(\"return_under_review_version\", request.IsReturnUnderReviewVersion.HasValue ? request.IsReturnUnderReviewVersion.Value ? \"true\" : \"false\" : null);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetProductDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /product/{version}/products/{product_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509da7d0fcef602bf1caddf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateProductResponse> ExecuteProductUpdateProductAsync(this TikTokShopClient client, Models.ProductUpdateProductRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"product\", request.ApiVersion, \"products\", request.ProductId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateProductResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/{product_id}/partial_edit 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a98d74a0bb702c06c3289 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateProductPartiallyResponse> ExecuteProductUpdateProductPartiallyAsync(this TikTokShopClient client, Models.ProductUpdateProductPartiallyRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", request.ProductId, \"partial_edit\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateProductPartiallyResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/{product_id}/inventory/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503068fc20ad60284b38858 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateProductInventoryResponse> ExecuteProductUpdateProductInventoryAsync(this TikTokShopClient client, Models.ProductUpdateProductInventoryRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", request.ProductId, \"inventory\", \"update\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateProductInventoryResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/{product_id}/prices/update 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650307de5a12ff0294eac8b0 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductUpdateProductPriceResponse> ExecuteProductUpdateProductPriceAsync(this TikTokShopClient client, Models.ProductUpdateProductPriceRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", request.ProductId, \"prices\", \"update\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductUpdateProductPriceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/activate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650306ff5a12ff0294eab4a9 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductActivateProductsResponse> ExecuteProductActivateProductsAsync(this TikTokShopClient client, Models.ProductActivateProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"activate\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductActivateProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/deactivate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509de450fcef602bf1d087c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductDeactivateProductsResponse> ExecuteProductDeactivateProductsAsync(this TikTokShopClient client, Models.ProductDeactivateProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"deactivate\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductDeactivateProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [DELETE] /product/{version}/products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6503079ebb2a4d028d515acf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductDeleteProductsResponse> ExecuteProductDeleteProductsAsync(this TikTokShopClient client, Models.ProductDeleteProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Delete, \"product\", request.ApiVersion, \"products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductDeleteProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/recover 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6509df0ebace3e02b748ac72 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductRecoverProductsResponse> ExecuteProductRecoverProductsAsync(this TikTokShopClient client, Models.ProductRecoverProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"recover\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductRecoverProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/inventory/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a9191c16ffe02b8eec161 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetInventoriesResponse> ExecuteProductGetInventoriesAsync(this TikTokShopClient client, Models.ProductGetInventoriesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"search\", \"inventory\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetInventoriesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/prerequisites 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6571ae94c5524602c081d0bb ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetPrerequisitesResponse> ExecuteProductGetPrerequisitesAsync(this TikTokShopClient client, Models.ProductGetPrerequisitesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"prerequisites\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetPrerequisitesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/listing_schemas 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/65b0caabb943c102df5843ab ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetListingSchemasResponse> ExecuteProductGetListingSchemasAsync(this TikTokShopClient client, Models.ProductGetListingSchemasRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"listing_schemas\")\n                .SetQueryParam(\"category_ids\", $\"[{string.Join(\",\", request.CategoryIdList)}]\")\n                .SetQueryParam(\"category_version\", request.CategoryVersion)\n                .SetQueryParam(\"locale\", request.Locale);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetListingSchemasResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/products/diagnoses 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/665048f380b6b302e73917d9 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetProductDiagnosesResponse> ExecuteProductGetProductDiagnosesAsync(this TikTokShopClient client, Models.ProductGetProductDiagnosesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"products\", \"diagnoses\")\n                .SetQueryParam(\"product_ids\", $\"[{string.Join(\",\", request.ProductIdList)}]\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetProductDiagnosesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/products/seo_words 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/66504921e2c24802e66f1a85 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetProductSEOWordsResponse> ExecuteProductGetProductSEOWordsAsync(this TikTokShopClient client, Models.ProductGetProductSEOWordsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"products\", \"seo_words\")\n                .SetQueryParam(\"product_ids\", $\"[{string.Join(\",\", request.ProductIdList)}]\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetProductSEOWordsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /product/{version}/products/suggestions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/66504931a0778602df120244 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductGetProductSuggestionsResponse> ExecuteProductGetProductSuggestionsAsync(this TikTokShopClient client, Models.ProductGetProductSuggestionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"product\", request.ApiVersion, \"products\", \"suggestions\")\n                .SetQueryParam(\"product_ids\", $\"[{string.Join(\",\", request.ProductIdList)}]\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductGetProductSuggestionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /product/{version}/products/category_upgrade_task 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6690f62988c3cf02ee1a8d72 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ProductCreateProductCategoryUpgradeTaskResponse> ExecuteProductCreateProductCategoryUpgradeTaskAsync(this TikTokShopClient client, Models.ProductCreateProductCategoryUpgradeTaskRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"product\", request.ApiVersion, \"products\", \"category_upgrade_task\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ProductCreateProductCategoryUpgradeTaskResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecutePromotionExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecutePromotionExtensions\n    {\n        #region Activity\n        /// <summary>\n        /// <para>异步调用 [POST] /promotion/{version}/activities 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650c33c155bc3202b762b507 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionCreateActivityResponse> ExecutePromotionCreateActivityAsync(this TikTokShopClient client, Models.PromotionCreateActivityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"promotion\", request.ApiVersion, \"activities\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionCreateActivityResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /promotion/{version}/activities/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650acfbaf1fd3102b9315a3a ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionSearchActivitiesResponse> ExecutePromotionSearchActivitiesAsync(this TikTokShopClient client, Models.PromotionSearchActivitiesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"promotion\", request.ApiVersion, \"activities\", \"search\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionSearchActivitiesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /promotion/{version}/activities/{activity_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650acd920fcef602bf36ee2b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionGetActivityDetailResponse> ExecutePromotionGetActivityDetailAsync(this TikTokShopClient client, Models.PromotionGetActivityDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"promotion\", request.ApiVersion, \"activities\", request.ActivityId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionGetActivityDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /promotion/{version}/activities/{activity_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650c584d82c3a602befa4ab8 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionUpdateActivityResponse> ExecutePromotionUpdateActivityAsync(this TikTokShopClient client, Models.PromotionUpdateActivityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"promotion\", request.ApiVersion, \"activities\", request.ActivityId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionUpdateActivityResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /promotion/{version}/activities/{activity_id}/deactivate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650acf9adefece02be7380cf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionDeactivateActivityResponse> ExecutePromotionDeactivateActivityAsync(this TikTokShopClient client, Models.PromotionDeactivateActivityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"promotion\", request.ApiVersion, \"activities\", request.ActivityId, \"deactivate\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionDeactivateActivityResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [PUT] /promotion/{version}/activities/{activity_id}/products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650d32c42aaa3602b86ccb5c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionUpdateActivityProductsResponse> ExecutePromotionUpdateActivityProductsAsync(this TikTokShopClient client, Models.PromotionUpdateActivityProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Put, \"promotion\", request.ApiVersion, \"activities\", request.ActivityId, \"products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionUpdateActivityProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [DELETE] /promotion/{version}/activities/{activity_id}/products 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650d32c42aaa3602b86ccb5c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionDeleteActivityProductsResponse> ExecutePromotionDeleteActivityProductsAsync(this TikTokShopClient client, Models.PromotionDeleteActivityProductsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Delete, \"promotion\", request.ApiVersion, \"activities\", request.ActivityId, \"products\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionDeleteActivityProductsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Coupon\n        /// <summary>\n        /// <para>异步调用 [POST] /promotion/{version}/coupons/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6699dcdf115ebe02f841e4cd ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionSearchCouponsResponse> ExecutePromotionSearchCouponsAsync(this TikTokShopClient client, Models.PromotionSearchCouponsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"promotion\", request.ApiVersion, \"coupons\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionSearchCouponsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /promotion/{version}/coupons/{coupon_id} 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/6699dce0de15e502ed219e37 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.PromotionGetCouponDetailResponse> ExecutePromotionGetCouponDetailAsync(this TikTokShopClient client, Models.PromotionGetCouponDetailRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"promotion\", request.ApiVersion, \"coupons\", request.CouponId);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.PromotionGetCouponDetailResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteReturnRefundExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteReturnRefundExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /return_refund/{version}/reject_reasons 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab658defece02be706f98 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundGetRejectReasonsResponse> ExecuteReturnRefundGetRejectReasonsAsync(this TikTokShopClient client, Models.ReturnRefundGetRejectReasonsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"return_refund\", request.ApiVersion, \"reject_reasons\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundGetRejectReasonsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        #region Cancellations\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/cancellations 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650aecb64a0bb702c076b03d ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundCreateCancellationResponse> ExecuteReturnRefundCreateCancellationAsync(this TikTokShopClient client, Models.ReturnRefundCreateCancellationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"cancellations\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundCreateCancellationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/cancellations/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab68bc16ffe02b8f2ea41 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundSearchCancellationsResponse> ExecuteReturnRefundSearchCancellationsAsync(this TikTokShopClient client, Models.ReturnRefundSearchCancellationsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"cancellations\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundSearchCancellationsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/cancellations/{cancel_id}/approve 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab6eff1fd3102b92e6a92 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundApproveCancellationResponse> ExecuteReturnRefundApproveCancellationAsync(this TikTokShopClient client, Models.ReturnRefundApproveCancellationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"cancellations\", request.CancelId, \"approve\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundApproveCancellationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/cancellations/{cancel_id}/reject 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab6df0fcef602bf34528f ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundRejectCancellationResponse> ExecuteReturnRefundRejectCancellationAsync(this TikTokShopClient client, Models.ReturnRefundRejectCancellationRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"cancellations\", request.CancelId, \"reject\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundRejectCancellationResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Orders\n        /// <summary>\n        /// <para>异步调用 [GET] /return_refund/{version}/orders/{order_id}/aftersale_eligibility 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab645c16ffe02b8f2e1c1 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundGetOrderAftersaleEligibilityResponse> ExecuteReturnRefundGetOrderAftersaleEligibilityAsync(this TikTokShopClient client, Models.ReturnRefundGetOrderAftersaleEligibilityRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"return_refund\", request.ApiVersion, \"orders\", request.OrderId, \"aftersale_eligibility\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundGetOrderAftersaleEligibilityResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Refunds\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/refunds/calculate 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab630defece02be706871 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundCalculateRefundResponse> ExecuteReturnRefundCalculateRefundAsync(this TikTokShopClient client, Models.ReturnRefundCalculateRefundRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"refunds\", \"calculate\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundCalculateRefundResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n\n        #region Returns\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/returns 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ae5fc4a0bb702c075d05d ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundCreateReturnResponse> ExecuteReturnRefundCreateReturnAsync(this TikTokShopClient client, Models.ReturnRefundCreateReturnRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"returns\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundCreateReturnResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/returns/search 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab69edefece02be70785b ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundSearchReturnsResponse> ExecuteReturnRefundSearchReturnsAsync(this TikTokShopClient client, Models.ReturnRefundSearchReturnsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"returns\", \"search\")\n                .SetQueryParam(\"page_size\", request.PageSize)\n                .SetQueryParam(\"page_token\", request.PageToken);\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundSearchReturnsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/returns/{return_id}/approve 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab6c2c16ffe02b8f2efcf ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundApproveReturnResponse> ExecuteReturnRefundApproveReturnAsync(this TikTokShopClient client, Models.ReturnRefundApproveReturnRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"returns\", request.ReturnId, \"approve\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundApproveReturnResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [POST] /return_refund/{version}/returns/{return_id}/reject 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab6d14a0bb702c06faec4 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundRejectReturnResponse> ExecuteReturnRefundRejectReturnAsync(this TikTokShopClient client, Models.ReturnRefundRejectReturnRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"return_refund\", request.ApiVersion, \"returns\", request.ReturnId, \"reject\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundRejectReturnResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /return_refund/{version}/returns/{return_id}/records 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ab676f1fd3102b92e6027 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.ReturnRefundGetReturnRecordsResponse> ExecuteReturnRefundGetReturnRecordsAsync(this TikTokShopClient client, Models.ReturnRefundGetReturnRecordsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"return_refund\", request.ApiVersion, \"returns\", request.ReturnId, \"records\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.ReturnRefundGetReturnRecordsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n        #endregion\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteSellerExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteSellerExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [GET] /seller/{version}/permissions 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a69db4a0bb702c06727ea ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SellerGetPermissionsResponse> ExecuteSellerGetPermissionsAsync(this TikTokShopClient client, Models.SellerGetPermissionsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"seller\", request.ApiVersion, \"permissions\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.SellerGetPermissionsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// <para>异步调用 [GET] /seller/{version}/shops 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650a69e24a0bb702c067291c ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SellerGetShopsResponse> ExecuteSellerGetShopsAsync(this TikTokShopClient client, Models.SellerGetShopsRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Get, \"seller\", request.ApiVersion, \"shops\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.SellerGetShopsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Extensions/TikTokShopClientExecuteSupplyChainExtensions.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    public static class TikTokShopClientExecuteSupplyChainExtensions\n    {\n        /// <summary>\n        /// <para>异步调用 [POST] /supply_chain/{version}/packages/sync 接口。</para>\n        /// <para>\n        /// REF: <br/>\n        /// <![CDATA[ https://partner.tiktokshop.com/docv2/page/650ac12b4a0bb702c070e7c3 ]]>\n        /// </para>\n        /// </summary>\n        /// <param name=\"client\"></param>\n        /// <param name=\"request\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public static async Task<Models.SupplyChainSyncPackagesResponse> ExecuteSupplyChainSyncPackagesAsync(this TikTokShopClient client, Models.SupplyChainSyncPackagesRequest request, CancellationToken cancellationToken = default)\n        {\n            if (client is null) throw new ArgumentNullException(nameof(client));\n            if (request is null) throw new ArgumentNullException(nameof(request));\n\n            IFlurlRequest flurlReq = client\n                .CreateFlurlRequest(request, HttpMethod.Post, \"supply_chain\", request.ApiVersion, \"packages\", \"sync\");\n\n            return await client.SendFlurlRequesAsJsontAsync<Models.SupplyChainSyncPackagesResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Interceptors/TikTokShopRequestSigningInterceptor.cs",
    "content": "using System;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Interceptors\n{\n    using SKIT.FlurlHttpClient.Internal;\n\n    internal class TikTokShopRequestSigningInterceptor : HttpInterceptor\n    {\n        private readonly string _baseUrl;\n        private readonly string _appSecret;\n\n        public TikTokShopRequestSigningInterceptor(string baseUrl, string appSecret)\n        {\n            _baseUrl = baseUrl.TrimEnd('/');\n            _appSecret = appSecret;\n        }\n\n        public override async Task BeforeCallAsync(HttpInterceptorContext context, CancellationToken cancellationToken = default)\n        {\n            if (context is null) throw new ArgumentNullException(nameof(context));\n            if (context.FlurlCall.Completed) throw new TikTokShopException(\"Failed to sign request. This interceptor must be called before request completed.\");\n\n            string requestUrl = context.FlurlCall.HttpRequestMessage.RequestUri?.ToString() ?? string.Empty;\n            if (!requestUrl.StartsWith(_baseUrl, StringComparison.OrdinalIgnoreCase))\n            {\n                // 非基地址的请求跳过签名（如 Auth API）\n                return;\n            }\n\n            string body = string.Empty;\n            if (context.FlurlCall.HttpRequestMessage?.Content is not null)\n            {\n                if (context.FlurlCall.HttpRequestMessage.Method != HttpMethod.Get &&\n                    context.FlurlCall.HttpRequestMessage.Content is not MultipartFormDataContent)\n                {\n                    HttpContent httpContent = context.FlurlCall.HttpRequestMessage.Content;\n                    body = await _AsyncEx.RunTaskWithCancellationTokenAsync(httpContent.ReadAsStringAsync(), cancellationToken).ConfigureAwait(false);\n                }\n            }\n\n            string signature;\n\n            try\n            {\n                var queryParams = new QueryParamCollection(context.FlurlCall.HttpRequestMessage?.RequestUri?.Query);\n                queryParams.Remove(\"access_token\");\n                queryParams.Remove(\"sign\");\n\n                string msgText = string.Format(\n                    \"{0}{1}{2}{3}{4}\",\n                    _appSecret,\n                    context.FlurlCall.HttpRequestMessage?.RequestUri?.AbsolutePath,\n                    string.Join(string.Empty, queryParams\n                        .ToDictionary(k => k.Name, v => v.Value.ToString())\n                        .OrderBy(k => k.Key, StringComparer.Ordinal)\n                        .Where(e =>\n                        {\n                            if (string.IsNullOrEmpty(e.Value))\n                            {\n                                // 过滤空参数，空参数不参与签名\n                                context.FlurlCall.Request.RemoveQueryParam(e.Key);\n                                return false;\n                            }\n\n                            return true;\n                        })\n                        .Select(e => $\"{e.Key}{e.Value}\")\n                    ),\n                    body,\n                    _appSecret\n                );\n                signature = Utilities.HMACUtility.HashWithSHA256(_appSecret, msgText).Value!.ToLower();\n            }\n            catch (Exception ex)\n            {\n                throw new TikTokShopException(\"Failed to sign request. Please see the inner exception for more details.\", ex);\n            }\n\n            context.FlurlCall.Request.SetQueryParam(\"sign\", signature);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Auth/AuthGetTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /token/get 接口的请求。</para>\n    /// </summary>\n    public class AuthGetTokenRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string GrantType { get; set; } = \"authorized_code\";\n\n        /// <summary>\n        /// 获取或设置授权码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string AuthorizedCode { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Auth/AuthGetTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /token/get 接口的响应。</para>\n    /// </summary>\n    public class AuthGetTokenResponse : TikTokShopResponse<AuthGetTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置接口调用凭证。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token\")]\n                public string AccessToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置凭证过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"access_token_expire_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"access_token_expire_in\")]\n                public int AccessTokenExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置刷新令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token\")]\n                public string RefreshToken { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置刷新令牌过期时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"refresh_token_expire_in\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"refresh_token_expire_in\")]\n                public int RefreshTokenExpireTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置用户唯一标识。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"open_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"open_id\")]\n                public string OpenId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置用户类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"user_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"user_type\")]\n                public int UserType { get; set; }\n\n                /// <summary>\n                /// 获取或设置卖家名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_name\")]\n                public string? SellerName { get; set; }\n\n                /// <summary>\n                /// 获取或设置卖家所在地。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_base_region\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_base_region\")]\n                public string? SellerBaseRegion { get; set; }\n\n                /// <summary>\n                /// 获取或设置已授权的权限列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"granted_permissions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"granted_permissions\")]\n                public string[]? GrantedPermissionList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Auth/AuthRefreshTokenRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /token/refresh 接口的请求。</para>\n    /// </summary>\n    public class AuthRefreshTokenRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// <i>（使用默认值即可，无需修改）</i>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string GrantType { get; set; } = \"refresh_token\";\n\n        /// <summary>\n        /// 获取或设置刷新令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string RefreshToken { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Auth/AuthRefreshTokenResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /token/refresh 接口的响应。</para>\n    /// </summary>\n    public class AuthRefreshTokenResponse : TikTokShopResponse<AuthRefreshTokenResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : AuthGetTokenResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Authorization/AuthorizationGetCategoryAssetsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /authorization/{version}/category_assets 接口的请求。</para>\n    /// </summary>\n    public class AuthorizationGetCategoryAssetsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202405</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202405;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Authorization/AuthorizationGetCategoryAssetsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /authorization/{version}/category_assets 接口的响应。</para>\n    /// </summary>\n    public class AuthorizationGetCategoryAssetsResponse : TikTokShopResponse<AuthorizationGetCategoryAssetsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CategoryAsset\n                    {\n                        public static class Types\n                        {\n                            public class Category\n                            {\n                                /// <summary>\n                                /// 获取或设置类目 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public int CategoryId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置类目名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置店铺密码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cipher\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cipher\")]\n                        public string Cipher { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置目标市场。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target_market\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target_market\")]\n                        public string TargetMarket { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类目信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                        public Types.Category Category { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置类目资产列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_assets\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_assets\")]\n                public Types.CategoryAsset[] CategoryAssetList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Authorization/AuthorizationGetShopsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /authorization/{version}/shops 接口的请求。</para>\n    /// </summary>\n    public class AuthorizationGetShopsRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Authorization/AuthorizationGetShopsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /authorization/{version}/shops 接口的响应。</para>\n    /// </summary>\n    public class AuthorizationGetShopsResponse : TikTokShopResponse<AuthorizationGetShopsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Shop\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ShopId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置所在地。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string Region { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_type\")]\n                        public string SellerType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺密码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cipher\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cipher\")]\n                        public string Cipher { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string Code { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置店铺列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shops\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shops\")]\n                public Types.Shop[] ShopList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Agents/CustomerServiceGetAgentSettingsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/agents/settings 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceGetAgentSettingsRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Agents/CustomerServiceGetAgentSettingsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/agents/settings 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceGetAgentSettingsResponse : TikTokShopResponse<CustomerServiceGetAgentSettingsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置是否可接收会话。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_accept_chat\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_accept_chat\")]\n                public bool CanAcceptChat { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Agents/CustomerServiceUpdateAgentSettingsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /customer_service/{version}/agents/settings 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceUpdateAgentSettingsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置是否可接收会话。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"can_accept_chat\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"can_accept_chat\")]\n        public bool CanAcceptChat { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Agents/CustomerServiceUpdateAgentSettingsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /customer_service/{version}/agents/settings 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceUpdateAgentSettingsResponse : TikTokShopResponse<CustomerServiceUpdateAgentSettingsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceCreateConversationMessageRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations/{conversation_id}/messages 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceCreateConversationMessageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ConversationId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        public string Type { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置消息内容 JSON 字符串。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"content\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n        public string ContentJson { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceCreateConversationMessageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations/{conversation_id}/messages 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceCreateConversationMessageResponse : TikTokShopResponse<CustomerServiceCreateConversationMessageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置消息 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"message_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"message_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string MessageId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceCreateConversationRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceCreateConversationRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置买家用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_user_id\")]\n        public string BuyerUserId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceCreateConversationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceCreateConversationResponse : TikTokShopResponse<CustomerServiceCreateConversationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置会话 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversation_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversation_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ConversationId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceGetConversationMessagesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/conversations/{conversation_id}/messages 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceGetConversationMessagesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ConversationId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortField { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceGetConversationMessagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/conversations/{conversation_id}/messages 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceGetConversationMessagesResponse : TikTokShopResponse<CustomerServiceGetConversationMessagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Message : CustomerServiceGetConversationsResponse.Types.Data.Types.Conversation.Types.Message\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置消息列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"messages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"messages\")]\n                public Types.Message[] MessageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n\n                /// <summary>\n                /// 获取或设置不支持的消息提示。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unsupported_msg_tips\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unsupported_msg_tips\")]\n                public string? UnsupportedMessageTips { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceGetConversationsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/conversations 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceGetConversationsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceGetConversationsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/conversations 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceGetConversationsResponse : TikTokShopResponse<CustomerServiceGetConversationsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Conversation\n                    {\n                        public static class Types\n                        {\n                            public class Participant\n                            {\n                                /// <summary>\n                                /// 获取或设置用户 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                                public string? UserId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 IM 用户 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"im_user_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"im_user_id\")]\n                                public string? IMUserId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置头像 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"avatar\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"avatar\")]\n                                public string AvatarUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置角色。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"role\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                                public string Role { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置昵称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"nickname\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"nickname\")]\n                                public string Nickname { get; set; } = default!;\n                            }\n\n                            public class Message\n                            {\n                                /// <summary>\n                                /// 获取或设置消息 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string MessageId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置消息类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置消息内容 JSON 字符串。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"content\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"content\")]\n                                public string ContentJson { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置发送者信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sender\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sender\")]\n                                public Types.Participant Sender { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置创建时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                                public long CreateTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否可见。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_visible\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_visible\")]\n                                public bool IsVisible { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置会话 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ConversationId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置参与者数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"participant_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"participant_count\")]\n                        public int ParticipantCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置未读消息数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unread_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unread_count\")]\n                        public int UnreadMessageCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否可发送消息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_send_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_send_message\")]\n                        public bool CanSendMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置参与者列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"participants\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"participants\")]\n                        public Types.Participant[] ParticipantList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置最新消息信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latest_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latest_message\")]\n                        public Types.Message? LatestMessage { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置会话列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"conversations\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"conversations\")]\n                public Types.Conversation[] ConversationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceReadConversationMessageRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations/{conversation_id}/messages/read 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceReadConversationMessageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置会话 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ConversationId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceReadConversationMessageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/conversations/{conversation_id}/messages/read 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceReadConversationMessageResponse : TikTokShopResponse<CustomerServiceReadConversationMessageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceUploadImageRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/images/upload 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceUploadImageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/CustomerServiceUploadImageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /customer_service/{version}/images/upload 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceUploadImageResponse : TikTokShopResponse<CustomerServiceUploadImageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int Height { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Performance/CustomerServiceGetPerformanceRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/performance 接口的请求。</para>\n    /// </summary>\n    public class CustomerServiceGetPerformanceRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n\n        /// <summary>\n        /// 获取或设置日期范围起始时间字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SupportDateStringGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置日期范围截止时间字符串（格式：yyyy-MM-dd）。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SupportDateStringLessThan { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/CustomerService/Performance/CustomerServiceGetPerformanceResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /customer_service/{version}/performance 接口的响应。</para>\n    /// </summary>\n    public class CustomerServiceGetPerformanceResponse : TikTokShopResponse<CustomerServiceGetPerformanceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Performance\n                    {\n                        /// <summary>\n                        /// 获取或设置会话数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"support_session_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"support_session_count\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public int SupportSessionCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置回复率（单位：百分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"response_percentage\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"response_percentage\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ResponsePercentage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户满意率（单位：百分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"satisfaction_percentage\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"satisfaction_percentage\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SatisfactionPercentage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平均首次响应时间（单位：分钟）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"response_time_mins\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"response_time_mins\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AverageResponseTime { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置统计数据。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"performance\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"performance\")]\n                public Types.Performance Performance { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventDeleteWebhookRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /event/{version}/webhooks 接口的请求。</para>\n    /// </summary>\n    public class EventDeleteWebhookRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n        public string EventType { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventDeleteWebhookResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /event/{version}/webhooks 接口的响应。</para>\n    /// </summary>\n    public class EventDeleteWebhookResponse : TikTokShopResponse<EventDeleteWebhookResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventGetWebhooksRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /event/{version}/webhooks 接口的请求。</para>\n    /// </summary>\n    public class EventGetWebhooksRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventGetWebhooksResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /event/{version}/webhooks 接口的响应。</para>\n    /// </summary>\n    public class EventGetWebhooksResponse : TikTokShopResponse<EventGetWebhooksResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Webhook\n                    {\n                        /// <summary>\n                        /// 获取或设置事件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n                        public string EventType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置回调地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string WebhookUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 Webhook 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"webhooks\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"webhooks\")]\n                public Types.Webhook[] WebhookList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventUpdateWebhookRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /event/{version}/webhooks 接口的请求。</para>\n    /// </summary>\n    public class EventUpdateWebhookRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"event_type\", Order = 1)]\n        [System.Text.Json.Serialization.JsonPropertyName(\"event_type\")]\n        [System.Text.Json.Serialization.JsonPropertyOrder(1)]\n        public string EventType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置回调地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\", Order = 2)]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyOrder(2)]\n        public string WebhookUrl { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Event/EventUpdateWebhookResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /event/{version}/webhooks 接口的响应。</para>\n    /// </summary>\n    public class EventUpdateWebhookResponse : TikTokShopResponse<EventUpdateWebhookResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetGoodsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/goods/search 接口的请求。</para>\n    /// </summary>\n    public class FBTGetGoodsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置货物 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_ids\")]\n        public IList<string>? GoodsIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商家自定义货物标识符列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reference_codes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reference_codes\")]\n        public IList<string>? ReferenceCodeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<string>? ProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n        public IList<string>? SKUIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetGoodsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/goods/search 接口的响应。</para>\n    /// </summary>\n    public class FBTGetGoodsResponse : TikTokShopResponse<FBTGetGoodsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Goods\n                    {\n                        public static class Types\n                        {\n                            public class BarCode\n                            {\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                public string Code { get; set; } = default!;\n                            }\n\n                            public class MerchantDeclarationInfo\n                            {\n                                public static class Types\n                                {\n                                    public class Dimension\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置单位。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                        public string Unit { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置长度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"length\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal? Length { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置宽度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal? Width { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置高度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal? Height { get; set; }\n                                    }\n\n                                    public class Weight\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置单位。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                        public string Unit { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置重量。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal? Value { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置尺寸信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                                public Types.Dimension? Dimension { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置重量信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                                public Types.Weight? Weight { get; set; }\n                            }\n\n                            public class WarehouseConfirmationInfo\n                            {\n                                public static class Types\n                                {\n                                    public class Dimension : MerchantDeclarationInfo.Types.Dimension\n                                    {\n                                    }\n\n                                    public class Weight : MerchantDeclarationInfo.Types.Weight\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置尺寸信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                                public Types.Dimension? Dimension { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置重量信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                                public Types.Weight? Weight { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Product\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public string ProductId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置图片 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                        public string ImageUrl { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                public string ImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product\")]\n                                public Types.Product Product { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置销售地区编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"regions\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"regions\")]\n                                public string[] RegionCodeList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置是否匹配。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"matched\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"matched\")]\n                                public bool IsMatched { get; set; }\n                            }\n\n                            public class LotExpirationInfo\n                            {\n                                /// <summary>\n                                /// 获取或设置是否受批次控制。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_lot_control\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_lot_control\")]\n                                public bool IsLotControl { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否受过期管理。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_expiration_management\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_expiration_management\")]\n                                public bool IsExpirationManagement { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置保质期天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shelf_life_days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shelf_life_days\")]\n                                public int? ShelfLifeDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置入库截止天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"inbound_cutoff_days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"inbound_cutoff_days\")]\n                                public int? InboundCutOffDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过期提醒天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"expiration_alert_days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"expiration_alert_days\")]\n                                public int? ExpirationAlertDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置销售截止天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sales_cutoff_days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sales_cutoff_days\")]\n                                public int? SalesCutOffDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置过期库存处理方式。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"handling_method\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"handling_method\")]\n                                public string? HandlingMethod { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退货周期类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_cycle\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_cycle\")]\n                                public string? ReturnCycleType { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置货物 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string GoodsId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家自定义货物标识符。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reference_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reference_code\")]\n                        public string ReferenceCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置货物名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置条码列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"barcodes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"barcodes\")]\n                        public Types.BarCode[]? BarCodeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                        public string ImageUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商家声明信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant_declaration_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant_declaration_info\")]\n                        public Types.MerchantDeclarationInfo? MerchantDeclarationInfo { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库确认信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_confirmation_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_confirmation_info\")]\n                        public Types.WarehouseConfirmationInfo? WarehouseConfirmationInfo { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置货物批次控制和到期管理信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"lot_expiration_info\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"lot_expiration_info\")]\n                        public Types.LotExpirationInfo? LotExpirationInfo { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置货物列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"goods\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                public Types.Goods[] GoodsList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInboundOrdersRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/inbound_orders 接口的请求。</para>\n    /// </summary>\n    public class FBTGetInboundOrdersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置入库单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> InboundOrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInboundOrdersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/inbound_orders 接口的响应。</para>\n    /// </summary>\n    public class FBTGetInboundOrdersResponse : TikTokShopResponse<FBTGetInboundOrdersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class InboundOrder\n                    {\n                        public static class Types\n                        {\n                            public class Merchant\n                            {\n                                /// <summary>\n                                /// 获取或设置商户 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string MerchantId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n\n                            public class Warehouse\n                            {\n                                /// <summary>\n                                /// 获取或设置 FBT 仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_id\")]\n                                public string FBTWarehouseId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置仓库 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"warehouse_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_ids\")]\n                                public string[] WarehouseIdList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n                            }\n\n                            public class PlannedGoods\n                            {\n                                /// <summary>\n                                /// 获取或设置货物 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string GoodsId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商家自定义货物标识符。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reference_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reference_code\")]\n                                public string ReferenceCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置货物名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n                                public string[] SKUIdList { get; set; } = default!;\n                            }\n\n                            public class ReceivedBatch\n                            {\n                                /// <summary>\n                                /// 获取或设置批次 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string BatchId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置货物 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"goods_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"goods_id\")]\n                                public string GoodsId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置正常货物数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"normal_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"normal_quantity\")]\n                                public int NormalQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置缺陷数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"defective_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"defective_quantity\")]\n                                public int DefectiveQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置总数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_quantity\")]\n                                public int TotalQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n                                public string[] ProductIdList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n                                public string[] SKUIdList { get; set; } = default!;\n                            }\n\n                            public class OperationLog\n                            {\n                                /// <summary>\n                                /// 获取或设置入库单状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n                                public string OrderStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置操作时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"operate_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"operate_time\")]\n                                public long OperateTimestamp { get; set; }\n                            }\n\n                            public class Carrier\n                            {\n                                /// <summary>\n                                /// 获取或设置运输商名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"carrier_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"carrier_name\")]\n                                public string CarrierName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                                public string TrackingNumber { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置入库单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string InboundOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商户信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"merchant\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"merchant\")]\n                        public Types.Merchant Merchant { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ship_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ship_time\")]\n                        public long ShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预计到达时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"expect_arrive_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"expect_arrive_time\")]\n                        public long ExpectArriveTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置实际到达时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_arrive_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_arrive_time\")]\n                        public long ActualArriveTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse\")]\n                        public Types.Warehouse Warehouse { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置计划货物列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"planned_goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"planned_goods\")]\n                        public Types.PlannedGoods[] PlannedGoodsList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置接收批次列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"received_batches\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"received_batches\")]\n                        public Types.ReceivedBatch[] ReceivedBatchList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置操作日志列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_operation_logs\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_operation_logs\")]\n                        public Types.OperationLog[] OperationLogList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置运输商列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"carriers\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"carriers\")]\n                        public Types.Carrier[] CarrierList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置入库单列表 。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inbound_orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inbound_orders\")]\n                public Types.InboundOrder[] InboundOrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInventoriesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/inventory/search 接口的请求。</para>\n    /// </summary>\n    public class FBTGetInventoriesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202408</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202408;\n\n        /// <summary>\n        /// 获取或设置货物 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_ids\")]\n        public IList<string>? GoodsIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 FBT 仓库 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_ids\")]\n        public IList<string>? FBTWarehouseIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n        public IList<string>? SKUIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInventoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/inventory/search 接口的响应。</para>\n    /// </summary>\n    public class FBTGetInventoriesResponse : TikTokShopResponse<FBTGetInventoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Inventory\n                    {\n                        public static class Types\n                        {\n                            public class Goods\n                            {\n                                public static class Types\n                                {\n                                    public class SKU\n                                    {\n                                        public static class Types\n                                        {\n                                            public class OnHandDetail\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置总数量。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"total_quantity\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"total_quantity\")]\n                                                public int TotalQuantity { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置可用数量。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"available_quantity\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"available_quantity\")]\n                                                public int AvailableQuantity { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置退回数量。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"reserved_quantity\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"reserved_quantity\")]\n                                                public int ReservedQuantity { get; set; }\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public string SKUId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置详细信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"on_hand_detail\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"on_hand_detail\")]\n                                        public Types.OnHandDetail? OnHandDetail { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置货物 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string GoodsId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商家自定义货物标识符。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reference_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reference_code\")]\n                                public string ReferenceCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置货物名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                                public Types.SKU[] SKUList { get; set; } = default!;\n                            }\n\n                            public class OnHandDetail\n                            {\n                                /// <summary>\n                                /// 获取或设置总数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_quantity\")]\n                                public int TotalQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置可用数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"available_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"available_quantity\")]\n                                public int AvailableQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退回数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reserved_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reserved_quantity\")]\n                                public int ReservedQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置不可售数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unfulfillable_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unfulfillable_quantity\")]\n                                public int UnfulfillableQuantity { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 FBT 仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_id\")]\n                        public string FBTWarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置货物信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                        public Types.Goods Goods { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置在途货物数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"in_transit_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"in_transit_quantity\")]\n                        public int InTransitQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"on_hand_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"on_hand_detail\")]\n                        public Types.OnHandDetail? OnHandDetail { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public Types.Inventory[] InventoryList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInventoryRecordsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/inventory_records/search 接口的请求。</para>\n    /// </summary>\n    public class FBTGetInventoryRecordsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202410</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202410;\n\n        /// <summary>\n        /// 获取或设置货物 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"goods_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"goods_ids\")]\n        public IList<string>? GoodsIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 FBT 仓库 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_ids\")]\n        public IList<string>? FBTWarehouseIdList { get; set; }\n\n        /// <summary>1\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_le\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_le\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetInventoryRecordsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fbt/{version}/inventory_records/search 接口的响应。</para>\n    /// </summary>\n    public class FBTGetInventoryRecordsResponse : TikTokShopResponse<FBTGetInventoryRecordsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class InventoryRecord\n                    {\n                        public static class Types\n                        {\n                            public class Goods\n                            {\n                                /// <summary>\n                                /// 获取或设置货物 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string GoodsId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商家自定义货物标识符。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reference_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reference_code\")]\n                                public string ReferenceCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置货物名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n\n                            public class Order\n                            {\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string Id { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 FBT 仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_id\")]\n                        public string FBTWarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置货物信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"goods\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"goods\")]\n                        public Types.Goods Goods { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置单据信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order\")]\n                        public Types.Order Order { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存货物类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory_goods_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory_goods_type\")]\n                        public string InventoryGoodsType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置初始库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"initial_on_hand_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"initial_on_hand_quantity\")]\n                        public int InitialOnHandQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最终库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"final_on_hand_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"final_on_hand_quantity\")]\n                        public int FinalOnHandQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置变化的库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"changed_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"changed_quantity\")]\n                        public int ChangedQuantity { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置库存记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory_records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_records\")]\n                public Types.InventoryRecord[] InventoryRecordList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetMerchantOnboardedRegionsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/merchants/onboarded_regions 接口的请求。</para>\n    /// </summary>\n    public class FBTGetMerchantOnboardedRegionsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetMerchantOnboardedRegionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/merchants/onboarded_regions 接口的响应。</para>\n    /// </summary>\n    public class FBTGetMerchantOnboardedRegionsResponse : TikTokShopResponse<FBTGetMerchantOnboardedRegionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class OnboardedRegion\n                    {\n                        /// <summary>\n                        /// 获取或设置国家或地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                        public string RegionCode { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置已入驻国家或地区列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"onboarded_regions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"onboarded_regions\")]\n                public Types.OnboardedRegion[] OnboardedRegionList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetWarehousesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/warehouses 接口的请求。</para>\n    /// </summary>\n    public class FBTGetWarehousesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202408</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202408;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/FBT/FBTGetWarehousesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fbt/{version}/warehouses 接口的响应。</para>\n    /// </summary>\n    public class FBTGetWarehousesResponse : TikTokShopResponse<FBTGetWarehousesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warehouse\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                /// <summary>\n                                /// 获取或设置地区编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                                public string RegionCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置邮编。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                                public string PostalCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置州。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"state\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n                                public string State { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                                public string District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置市。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public string City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地址行 1。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line_1\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line_1\")]\n                                public string? AddressLine1 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 2。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line_2\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line_2\")]\n                                public string? AddressLine2 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 3。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line_3\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line_3\")]\n                                public string? AddressLine3 { get; set; }\n                            }\n\n                            public class LogisticsService\n                            {\n                                /// <summary>\n                                /// 获取或设置物流服务 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string Id { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置物流服务名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置是否订阅。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"subscribed\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"subscribed\")]\n                                public bool IsSubscribed { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 FBT 仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_warehouse_id\")]\n                        public string FBTWarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_ids\")]\n                        public string[] WarehouseIdList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否订阅。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subscribed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subscribed\")]\n                        public bool IsSubscribed { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"addresses\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"addresses\")]\n                        public Types.Address[] AddressList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置物流服务列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"logistics_services\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"logistics_services\")]\n                        public Types.LogisticsService[] LogisticsServiceList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置仓库列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warehouses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warehouses\")]\n                public Types.Warehouse[] WarehouseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetOrderStatementTransactionsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/orders/{order_id}/statement_transactions 接口的请求。</para>\n    /// </summary>\n    public class FinanceGetOrderStatementTransactionsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetOrderStatementTransactionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/orders/{order_id}/statement_transactions 接口的响应。</para>\n    /// </summary>\n    public class FinanceGetOrderStatementTransactionsResponse : TikTokShopResponse<FinanceGetOrderStatementTransactionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Transaction\n                    {\n                        public static class Types\n                        {\n                            public class SKUTransaction\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置产品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置结算金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SettlementAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置净销售金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"net_sales_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"net_sales_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? NetSalesAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置毛销售金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"gross_sales_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? GrossSalesAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置毛销售退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"gross_sales_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? GrossSalesRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? SellerDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家优惠退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_discount_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? SellerDiscountRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置收入金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"revenue_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"revenue_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RevenueAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置费用金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal FeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置违约金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"adjustment_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AdjustmentAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家支付金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerPaymentAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家折扣后小计金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"after_seller_discounts_subtotal_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"after_seller_discounts_subtotal_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AfterSellerDiscountsSubtotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置增值税金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sales_tax_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SalesTaxAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置增值税支付金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sales_tax_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SalesTaxPaymentAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置增值税退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sales_tax_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SalesTaxRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformDiscountRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家订单退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_order_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_order_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerOrderRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台退款补贴金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_refund_subsidy_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_refund_subsidy_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformRefundSubsidyAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输费补贴金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_subsidy_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_subsidy_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeeSubsidyAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家运输金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台运输费优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_shipping_fee_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_shipping_fee_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformShippingFeeDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输费实际金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ActualShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退单运输费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ReturnShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退单运输费实际金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"actual_return_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"actual_return_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ActualReturnShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费支付金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_payment_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFeePaymentAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFeeRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台佣金金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformCommissionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置联盟佣金金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"affiliate_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AffiliateCommissionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置联盟广告佣金金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"affiliate_ads_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_ads_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AffiliateAdsCommissionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置附属合作伙伴佣金金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"affiliate_partner_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_partner_commission_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AffiliatePartnerCommissionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置联盟佣金税前金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"affiliate_commission_before_pit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_before_pit\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal AffiliateCommissionAmountBeforePit { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置个人所得税金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"pit_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"pit_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PitAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置交易费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"transaction_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"transaction_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal TransactionFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置转介费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"referral_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"referral_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ReferralFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款管理费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_administration_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_administration_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundAdministrationFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingCostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 TikTok 运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fbm_shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fbm_shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal FBMShippingCostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 TikTok 平台运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fbt_shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fbt_shipping_cost_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal FBTShippingCostAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 TikTok 配送费用金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fbt_fulfillment_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fbt_fulfillment_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal FBTFulfillmentFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 TikTok 运费优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_cost_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingCostDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 TikTok 退货运费优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_shipping_cost_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_shipping_cost_discount_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundShippingCostDiscountAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置客户支付的运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerPaidShippingFeeAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置客户支付的运费退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_refund_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerPaidShippingFeeRefundAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置客户运费补偿金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_offset_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_offset_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal CustomerShippingFeeOffsetAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费保险费用金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_insurance_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingInsuranceFeetAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置物流激励金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"promo_shipping_incentive_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"promo_shipping_incentive_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PromoShippingIncentiveAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置签字确认费用金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"signature_confirmation_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"signature_confirmation_fee_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SignatureConfirmationFeeAmount { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置交易 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string TransactionId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置交易状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statement_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statement_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string StatementId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statement_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statement_time\")]\n                        public long StatementTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SettlementAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置净销售金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? NetSalesAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置毛销售金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gross_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? GrossSalesAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置毛销售退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gross_sales_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? GrossSalesRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? SellerDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家优惠退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? SellerDiscountRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收入金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RevenueAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置违约金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AdjustmentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家折扣后小计金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_seller_discounts_subtotal_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_seller_discounts_subtotal_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AfterSellerDiscountsSubtotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxPaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台优惠退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformDiscountRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家订单退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_order_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_order_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerOrderRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台退款补贴金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_refund_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_refund_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformRefundSubsidyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费补贴金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeeSubsidyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家运输金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台运输费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_shipping_fee_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_shipping_fee_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformShippingFeeDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费实际金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ActualShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退单运输费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ReturnShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退单运输费实际金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ActualReturnShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeePaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeeRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟广告佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_ads_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_ads_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateAdsCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附属合作伙伴佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_partner_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_partner_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliatePartnerCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟佣金税前金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_commission_before_pit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_before_pit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateCommissionAmountBeforePit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置个人所得税金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pit_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pit_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PitAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置交易费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transaction_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transaction_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal TransactionFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置转介费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"referral_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"referral_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ReferralFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款管理费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_administration_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_administration_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RefundAdministrationFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbm_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbm_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBMShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 平台运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBTShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 配送费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_fulfillment_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_fulfillment_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBTFulfillmentFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 运费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingCostDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 退货运费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RefundShippingCostDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户支付的运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaidShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户支付的运费退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaidShippingFeeRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户运费补偿金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_offset_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_offset_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerShippingFeeOffsetAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费保险费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_insurance_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingInsuranceFeetAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流激励金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promo_shipping_incentive_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promo_shipping_incentive_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PromoShippingIncentiveAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置签字确认费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature_confirmation_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature_confirmation_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SignatureConfirmationFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 交易列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_statement_transactions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_statement_transactions\")]\n                        public Types.SKUTransaction[] SKUTransactionList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_create_time\")]\n                public long OrderCreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置交易列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"statement_transactions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"statement_transactions\")]\n                public Types.Transaction[] TransactionList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetPaymentsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/payments 接口的请求。</para>\n    /// </summary>\n    public class FinanceGetPaymentsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortField { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetPaymentsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/payments 接口的响应。</para>\n    /// </summary>\n    public class FinanceGetPaymentsResponse : TikTokShopResponse<FinanceGetPaymentsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Payment\n                    {\n                        public static class Types\n                        {\n                            public class Amount\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? Value { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置付款单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string PaymentId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置付款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"paid_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"paid_time\")]\n                        public long? PaidTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置付款金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        public Types.Amount Amount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                        public Types.Amount? SettlementAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置保留金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reserve_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reserve_amount\")]\n                        public Types.Amount? ReserveAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置兑换前金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_amount_before_exchange\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_amount_before_exchange\")]\n                        public Types.Amount? PaymentAmountBeforeExchange { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置汇率。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"exchange_rate\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"exchange_rate\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? ExchangeRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置银行账号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"bank_account\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"bank_account\")]\n                        public string? BankAccount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置付款单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payments\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payments\")]\n                public Types.Payment[] PaymentList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetStatementTransactionsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/statements/{statement_id}/statement_transactions 接口的请求。</para>\n    /// </summary>\n    public class FinanceGetStatementTransactionsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置结算单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string StatementId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置付款单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PaymentStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortField { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetStatementTransactionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/statements/{statement_id}/statement_transactions 接口的响应。</para>\n    /// </summary>\n    public class FinanceGetStatementTransactionsResponse : TikTokShopResponse<FinanceGetStatementTransactionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Transaction\n                    {\n                        /// <summary>\n                        /// 获取或设置交易 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string TransactionId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置交易类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string? OrderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置违约 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjustment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string? AdjustmentId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置违约订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjustment_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string? AdjustmentOrderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_create_time\")]\n                        public long OrderCreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SettlementAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置净销售金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? NetSalesAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置毛销售金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gross_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? GrossSalesAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置毛销售退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"gross_sales_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"gross_sales_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? GrossSalesRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? SellerDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家优惠退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? SellerDiscountRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收入金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RevenueAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置违约金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AdjustmentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家折扣后小计金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"after_seller_discounts_subtotal_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"after_seller_discounts_subtotal_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AfterSellerDiscountsSubtotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxPaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置增值税退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_tax_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_tax_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SalesTaxRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台优惠退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformDiscountRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家订单退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_order_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_order_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerOrderRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台退款补贴金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_refund_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_refund_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformRefundSubsidyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费补贴金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_subsidy_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeeSubsidyAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家运输金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台运输费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_shipping_fee_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_shipping_fee_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformShippingFeeDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退单运输费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ReturnShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输费实际金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ActualShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退单运输费实际金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"actual_return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"actual_return_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ActualReturnShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_payment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeePaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置零售配送费退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RetailDeliveryFeeRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PlatformCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟广告佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_ads_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_ads_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateAdsCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置附属合作伙伴佣金金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_partner_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_partner_commission_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliatePartnerCommissionAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联盟佣金税前金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"affiliate_commission_before_pit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"affiliate_commission_before_pit\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AffiliateCommissionAmountBeforePit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置个人所得税金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pit_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pit_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PitAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置交易费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"transaction_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"transaction_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal TransactionFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置转介费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"referral_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"referral_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ReferralFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款管理费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_administration_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_administration_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RefundAdministrationFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbm_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbm_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBMShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 平台运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBTShippingCostAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 配送费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fbt_fulfillment_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fbt_fulfillment_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FBTFulfillmentFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 运费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingCostDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TikTok 退货运费优惠金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_shipping_cost_discount_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RefundShippingCostDiscountAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户支付的运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaidShippingFeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户支付的运费退款金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_paid_shipping_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_paid_shipping_fee_refund_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerPaidShippingFeeRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置客户运费补偿金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"customer_shipping_fee_offset_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"customer_shipping_fee_offset_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal CustomerShippingFeeOffsetAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费保险费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_insurance_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingInsuranceFeetAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流激励金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promo_shipping_incentive_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promo_shipping_incentive_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PromoShippingIncentiveAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置签字确认费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"signature_confirmation_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"signature_confirmation_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SignatureConfirmationFeeAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结算单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"statement_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"statement_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string StatementId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置结算时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"statement_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"statement_time\")]\n                public long StatementTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置币种。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                public string Currency { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置结算金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SettlementAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置净销售金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"net_sales_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"net_sales_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal? NetSalesAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置收入金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"revenue_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"revenue_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal RevenueAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置费用金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal FeeAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置违约金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"adjustment_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal AdjustmentAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置运费金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_cost_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingCostAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置交易列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"statement_transactions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"statement_transactions\")]\n                public Types.Transaction[] TransactionList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetStatementsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/statements 接口的请求。</para>\n    /// </summary>\n    public class FinanceGetStatementsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置结算时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? SettlementTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置结算时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? SettlementTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置付款单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PaymentStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortField { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetStatementsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/statements 接口的响应。</para>\n    /// </summary>\n    public class FinanceGetStatementsResponse : TikTokShopResponse<FinanceGetStatementsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Statement\n                    {\n                        /// <summary>\n                        /// 获取或设置结算单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string StatementId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"statement_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"statement_time\")]\n                        public long StatementTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置付款单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string PaymentId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置付款单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_status\")]\n                        public string PaymentStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置结算金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"settlement_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SettlementAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置净销售金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_sales_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? NetSalesAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收入金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"revenue_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal RevenueAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置费用金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal FeeAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置违约金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"adjustment_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal AdjustmentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_cost_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingCostAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置结算单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"statements\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"statements\")]\n                public Types.Statement[] StatementList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetWithdrawalsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/withdrawals 接口的请求。</para>\n    /// </summary>\n    public class FinanceGetWithdrawalsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置提现类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? TypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页游标。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Finance/FinanceGetWithdrawalsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /finance/{version}/withdrawals 接口的响应。</para>\n    /// </summary>\n    public class FinanceGetWithdrawalsResponse : TikTokShopResponse<FinanceGetWithdrawalsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Withdrawal\n                    {\n                        /// <summary>\n                        /// 获取或设置提现 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string WithdrawalId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置提现类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置提现状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? Amount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置提现列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"withdrawals\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"withdrawals\")]\n                public Types.Withdrawal[] WithdrawalList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Bundle/FulfillmentCreateBundleRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/bundles 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentCreateBundleRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置交接方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n        public string HandoverMethod { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输服务商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n        public string? ShippingProviderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n        public string? TrackingNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置电话号码后四位。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_tail_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_tail_number\")]\n        public string? PhoneTailNumber { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Bundle/FulfillmentCreateBundleResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/bundles 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentCreateBundleResponse : TikTokShopResponse<FulfillmentCreateBundleResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                public string OrderId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置套餐 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"first_mile_bundle_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"first_mile_bundle_id\")]\n                public string FirstMileBundleId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置运单链接。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentGetOrderSplitAttributesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/orders/split_attributes 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentGetOrderSplitAttributesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentGetOrderSplitAttributesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/orders/split_attributes 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentGetOrderSplitAttributesResponse : TikTokShopResponse<FulfillmentGetOrderSplitAttributesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SplitAttribute\n                    {\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否可分单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_split\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_split\")]\n                        public bool CanSplit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason\")]\n                        public string? Reason { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置拆分属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"split_attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"split_attributes\")]\n                public Types.SplitAttribute[] SplitAttributeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentGetOrderTrackingRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/orders/{order_id}/tracking 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentGetOrderTrackingRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentGetOrderTrackingResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/orders/{order_id}/tracking 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentGetOrderTrackingResponse : TikTokShopResponse<FulfillmentGetOrderTrackingResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Tracking\n                    {\n                        /// <summary>\n                        /// 获取或设置描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置更新时间毫秒级时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time_millis\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_millis\")]\n                        public long UpdateTimeMilliseconds { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置物流轨迹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tracking\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tracking\")]\n                public Types.Tracking[] TrackingList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentSearchOrderShippingServicesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/shipping_services/query 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentSearchOrderShippingServicesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PackageDimension : FulfillmentCreatePackageRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : FulfillmentCreatePackageRequest.Types.PackageWeight\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dimension\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentSearchOrderShippingServicesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/shipping_services/query 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentSearchOrderShippingServicesResponse : TikTokShopResponse<FulfillmentSearchOrderShippingServicesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PackageDimension : FulfillmentGetPackageDetailResponse.Types.Data.Types.PackageDimension\n                    {\n                    }\n\n                    public class PackageWeight : FulfillmentGetPackageDetailResponse.Types.Data.Types.PackageWeight\n                    {\n                    }\n\n                    public class ShippingService\n                    {\n                        /// <summary>\n                        /// 获取或设置运输服务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ShippingServiceId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置运输服务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置价格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最小运输天数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"earliest_delivery_days\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"earliest_delivery_days\")]\n                        public int EarliestDeliveryDays { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最大运输天数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latest_delivery_days\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latest_delivery_days\")]\n                        public int LatestDeliveryDays { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否为默认服务。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_default\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_default\")]\n                        public bool IsDefault { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                        public string? ShippingProviderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                        public string? ShippingProviderName { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单行 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_line_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_id\")]\n                public string[]? OrderLineItemIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                public Types.PackageWeight? PackageWeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置运输服务列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_services\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_services\")]\n                public Types.ShippingService[] ShippingServiceList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentSplitOrderRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/split 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentSplitOrderRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SplittableGroup\n            {\n                /// <summary>\n                /// 获取或设置分组 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string SplittableGroupId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置订单行 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n                public IList<string> OrderLineItemIdList { get; set; } = new List<string>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分组列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"splittable_groups\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"splittable_groups\")]\n        public IList<Types.SplittableGroup> SplittableGroupList { get; set; } = new List<Types.SplittableGroup>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentSplitOrderResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/split 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentSplitOrderResponse : TikTokShopResponse<FulfillmentSplitOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package\n                    {\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分组 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"splittable_group_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"splittable_group_id\")]\n                        public string SplittableGroupId { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentUpdateOrderPackagesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/packages 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUpdateOrderPackagesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n        public string TrackingNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输服务商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n        public string ShippingProviderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentUpdateOrderPackagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/packages 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUpdateOrderPackagesResponse : TikTokShopResponse<FulfillmentUpdateOrderPackagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warning\n                    {\n                        /// <summary>\n                        /// 获取或设置警告信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单行 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n                public string[]? OrderLineItemIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string PackageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置警告信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warning\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warning\")]\n                public Types.Warning? Warning { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentUpdateOrderShippingInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/shipping_info/update 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUpdateOrderShippingInfoRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n        public string TrackingNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输服务商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n        public string ShippingProviderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Orders/FulfillmentUpdateOrderShippingInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/orders/{order_id}/shipping_info/update 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUpdateOrderShippingInfoResponse : TikTokShopResponse<FulfillmentUpdateOrderShippingInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentCombinePackageRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/combine 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentCombinePackageRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class CombinablePackage\n            {\n                /// <summary>\n                /// 获取或设置可合并的包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string CombinablePackageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置订单 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n                public IList<string>? OrderIdList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置可合并的包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"combinable_packages\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"combinable_packages\")]\n        public IList<Types.CombinablePackage> CombinablePackageList { get; set; } = new List<Types.CombinablePackage>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentCombinePackageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/combine 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentCombinePackageResponse : TikTokShopResponse<FulfillmentCombinePackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package\n                    {\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n                        public string[]? OrderIdList { get; set; }\n                    }\n\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置可合并的包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                                public string CombinablePackageId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentSearchCombinablePackagesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/combinable_packages/search 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentSearchCombinablePackagesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentSearchCombinablePackagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/combinable_packages/search 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentSearchCombinablePackagesResponse : TikTokShopResponse<FulfillmentSearchCombinablePackagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CombinablePackage\n                    {\n                        /// <summary>\n                        /// 获取或设置可合并的包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CombinablePackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n                        public string[] OrderIdList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置可合并的包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"combinable_packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"combinable_packages\")]\n                public Types.CombinablePackage[] CombinablePackageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentUncombinePackageRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/uncombine 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUncombinePackageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<string>? OrderIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/Combine/FulfillmentUncombinePackageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/uncombine 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUncombinePackageResponse : TikTokShopResponse<FulfillmentUncombinePackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package : FulfillmentCombinePackageResponse.Types.Data.Types.Package\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentBatchShipPackagesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/ship 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentBatchShipPackagesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Package\n            {\n                public static class Types\n                {\n                    public class TimeSlot : FulfillmentShipPackageRequest.Types.TimeSlot\n                    {\n                    }\n\n                    public class Shipment : FulfillmentShipPackageRequest.Types.Shipment\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string PackageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置交接方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n                public string? HandoverMethod { get; set; }\n\n                /// <summary>\n                /// 获取或设置取件时间段信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pickup_slot\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pickup_slot\")]\n                public Types.TimeSlot? PickupTimeSlot { get; set; }\n\n                /// <summary>\n                /// 获取或设置自行运输信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"self_shipment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"self_shipment\")]\n                public Types.Shipment? Shipment { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"packages\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n        public IList<Types.Package> PackageList { get; set; } = new List<Types.Package>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentBatchShipPackagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/ship 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentBatchShipPackagesResponse : TikTokShopResponse<FulfillmentBatchShipPackagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                                public string PackageId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentBatchUpdatePackagesDeliveryStatusRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/deliver 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentBatchUpdatePackagesDeliveryStatusRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Package\n            {\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string PackageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置配送类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                public string DeliveryType { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置失败原因。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_delivery_reason\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_delivery_reason\")]\n                public string? FailReason { get; set; }\n\n                /// <summary>\n                /// 获取或设置文件类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"file_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"file_type\")]\n                public string? FileType { get; set; }\n\n                /// <summary>\n                /// 获取或设置文件 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"file_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"file_url\")]\n                public string? FileUrl { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"packages\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n        public IList<Types.Package> PackageList { get; set; } = new List<Types.Package>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentBatchUpdatePackagesDeliveryStatusResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/deliver 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentBatchUpdatePackagesDeliveryStatusResponse : TikTokShopResponse<FulfillmentBatchUpdatePackagesDeliveryStatusResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                                public string PackageId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentCreatePackageRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentCreatePackageRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PackageDimension : ProductCreateProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductCreateProductRequest.Types.PackageWeight\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输服务 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_service_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_service_id\")]\n        public string? ShippingServiceId { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"dimension\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentCreatePackageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentCreatePackageResponse : TikTokShopResponse<FulfillmentCreatePackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PackageDimension : FulfillmentGetPackageDetailResponse.Types.Data.Types.PackageDimension\n                    {\n                    }\n\n                    public class PackageWeight : FulfillmentGetPackageDetailResponse.Types.Data.Types.PackageWeight\n                    {\n                    }\n\n                    public class ShippingService\n                    {\n                        /// <summary>\n                        /// 获取或设置运输服务 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ShippingServiceId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置运输服务名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置价格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最小运输天数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"earliest_delivery_days\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"earliest_delivery_days\")]\n                        public int EarliestDeliveryDays { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最大运输天数。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"latest_delivery_days\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"latest_delivery_days\")]\n                        public int LatestDeliveryDays { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                        public string? ShippingProviderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                        public string? ShippingProviderName { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string PackageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单行 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n                public string[]? OrderLineItemIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置运输服务信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_service_info\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_service_info\")]\n                public Types.ShippingService? ShippingService { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                public Types.PackageWeight? PackageWeight { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id} 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentGetPackageDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PackageId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id} 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentGetPackageDetailResponse : TikTokShopResponse<FulfillmentGetPackageDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class PackageDimension : ProductGetProductDetailResponse.Types.Data.Types.PackageDimension\n                    {\n                    }\n\n                    public class PackageWeight : ProductGetProductDetailResponse.Types.Data.Types.PackageWeight\n                    {\n                    }\n\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"image_url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"image_url\")]\n                                public string ImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n                    }\n\n                    public class TimeSlot\n                    {\n                        /// <summary>\n                        /// 获取或设置开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public long StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long EndTimestamp { get; set; }\n                    }\n\n                    public class Address\n                    {\n                        /// <summary>\n                        /// 获取或设置完整地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"full_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"full_address\")]\n                        public string FullAddress { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                        public string RegionCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电话号码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                        public string PhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置联系人姓名。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string ContactName { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置邮编。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                        public string PostalCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_detail\")]\n                        public string AddressDetail { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地址行 1。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_line1\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_line1\")]\n                        public string? AddressLine1 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址行 2。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_line2\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_line2\")]\n                        public string? AddressLine2 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址行 3。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_line3\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_line3\")]\n                        public string? AddressLine3 { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址行 4。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address_line4\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address_line4\")]\n                        public string? AddressLine4 { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string PackageId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string OrderId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单行 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n                public string[]? OrderLineItemIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[]? OrderList { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置分合单标记。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"split_and_combine_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"split_and_combine_tag\")]\n                public string SplitAndCombineTag { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置备注标记。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"note_tag\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"note_tag\")]\n                public string NoteTag { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置是否包含多个 SKU。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"has_multi_skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"has_multi_skus\")]\n                public bool HasMultipleSKU { get; set; } \n\n                /// <summary>\n                /// 获取或设置运输类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_type\")]\n                public string ShippingType { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置运输服务商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                public string? ShippingProviderId { get; set; }\n\n                /// <summary>\n                /// 获取或设置运输服务商名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                public string? ShippingProviderName { get; set; }\n\n                /// <summary>\n                /// 获取或设置配送方式 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_option_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_id\")]\n                public string? DeliveryOptionId { get; set; }\n\n                /// <summary>\n                /// 获取或设置配送方式名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_option_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_name\")]\n                public string? DeliveryOptionName { get; set; }\n\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                public string? TrackingNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置交接方式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n                public string? HandoverNethod { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置包裹重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                public Types.PackageWeight? PackageWeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置取件时间段信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pickup_slot\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pickup_slot\")]\n                public Types.TimeSlot? PickupTimeSlot { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄件人地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sender_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sender_address\")]\n                public Types.Address? SenderAddress { get; set; }\n\n                /// <summary>\n                /// 获取或设置收件人地址信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"recipient_address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"recipient_address\")]\n                public Types.Address? RecipientAddress { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageHandoverTimeSlotsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id}/handover_time_slots 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentGetPackageHandoverTimeSlotsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PackageId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageHandoverTimeSlotsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id}/handover_time_slots 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentGetPackageHandoverTimeSlotsResponse : TikTokShopResponse<FulfillmentGetPackageHandoverTimeSlotsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class TimeSlot\n                    {\n                        /// <summary>\n                        /// 获取或设置开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                        public long StartTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long EndTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否可用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"avaliable\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"avaliable\")]\n                        public bool IsAvaliable { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置是否可上门取件。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_pickup\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_pickup\")]\n                public bool CanPickup { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否可门店寄送。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_drop_off\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_drop_off\")]\n                public bool CanDropOff { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否可货车取件。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"can_van_collection\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"can_van_collection\")]\n                public bool CanVanCollection { get; set; }\n\n                /// <summary>\n                /// 获取或设置寄送门店定位 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"drop_off_point_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"drop_off_point_url\")]\n                public string? DropOffPointUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置时间段列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pickup_slots\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pickup_slots\")]\n                public Types.TimeSlot[] TimeSlotList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageShippingDocumentsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id}/shipping_documents 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentGetPackageShippingDocumentsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PackageId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentGetPackageShippingDocumentsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /fulfillment/{version}/packages/{package_id}/shipping_documents 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentGetPackageShippingDocumentsResponse : TikTokShopResponse<FulfillmentGetPackageShippingDocumentsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"doc_url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"doc_url\")]\n                public string DocumentUrl { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentSearchPackagesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/search 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentSearchPackagesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_lt\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_lt\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置包裹状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_status\")]\n        public string? PackageStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentSearchPackagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/search 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentSearchPackagesResponse : TikTokShopResponse<FulfillmentSearchPackagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Package\n                    {\n                        public static class Types\n                        {\n                            public class Order : FulfillmentGetPackageDetailResponse.Types.Data.Types.Order\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置包裹 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string PackageId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单行 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n                        public string[]? OrderLineItemIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"orders\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                        public Types.Order[]? OrderList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置包裹状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                        public string? TrackingNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                        public string? ShippingProviderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                        public string? ShippingProviderName { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n                public Types.Package[] PackageList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentShipPackageRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/{package_id}/ship 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentShipPackageRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class TimeSlot\n            {\n                /// <summary>\n                /// 获取或设置开始时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                public long? StartTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置结束时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                public long? EndTimestamp { get; set; }\n            }\n\n            public class Shipment\n            {\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                public string TrackingNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置运输服务商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                public string ShippingProviderId { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PackageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置交接方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n        public string? HandoverMethod { get; set; }\n\n        /// <summary>\n        /// 获取或设置取件时间段信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"pickup_slot\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"pickup_slot\")]\n        public Types.TimeSlot? PickupTimeSlot { get; set; }\n\n        /// <summary>\n        /// 获取或设置自行运输信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"self_shipment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"self_shipment\")]\n        public Types.Shipment? Shipment { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentShipPackageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/{package_id}/ship 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentShipPackageResponse : TikTokShopResponse<FulfillmentShipPackageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentUpdatePackageShippingInfoRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/{package_id}/shipping_info/update 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUpdatePackageShippingInfoRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置包裹 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string PackageId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置物流单号。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n        public string TrackingNumber { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输服务商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n        public string ShippingProviderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Packages/FulfillmentUpdatePackageShippingInfoResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/packages/{package_id}/shipping_info/update 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUpdatePackageShippingInfoResponse : TikTokShopResponse<FulfillmentUpdatePackageShippingInfoResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Upload/FulfillmentUploadFileRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/files/upload 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUploadFileRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] FileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? FileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? FileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Upload/FulfillmentUploadFileResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/files/upload 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUploadFileResponse : TikTokShopResponse<FulfillmentUploadFileResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Upload/FulfillmentUploadImageRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/images/upload 接口的请求。</para>\n    /// </summary>\n    public class FulfillmentUploadImageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置使用场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? UseCase { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Fulfillment/Upload/FulfillmentUploadImageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /fulfillment/{version}/images/upload 接口的响应。</para>\n    /// </summary>\n    public class FulfillmentUploadImageResponse : TikTokShopResponse<FulfillmentUploadImageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int Height { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetDeliveryOptionShippingProvidersRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/delivery_options/{delivery_option_id}/shipping_providers 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetDeliveryOptionShippingProvidersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置配送方式 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string DeliveryOptionId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetDeliveryOptionShippingProvidersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/delivery_options/{delivery_option_id}/shipping_providers 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetDeliveryOptionShippingProvidersResponse : TikTokShopResponse<LogisticsGetDeliveryOptionShippingProvidersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ShippingProvider\n                    {\n                        /// <summary>\n                        /// 获取或设置运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ShippingProviderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置运输服务商列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_providers\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_providers\")]\n                public Types.ShippingProvider[] ShippingProviderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetGlobalWarehousesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/global_warehouses 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetGlobalWarehousesRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetGlobalWarehousesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/global_warehouses 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetGlobalWarehousesResponse : TikTokShopResponse<LogisticsGetGlobalWarehousesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warehouse\n                    {\n                        /// <summary>\n                        /// 获取或设置仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string WarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置所有权类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"ownership\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"ownership\")]\n                        public string Ownership { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置仓库列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_warehouses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_warehouses\")]\n                public Types.Warehouse[] WarehouseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetWarehouseDeliveryOptionsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/warehouses/{warehouse_id}/delivery_options 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetWarehouseDeliveryOptionsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置仓库 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string WarehouseId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetWarehouseDeliveryOptionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/warehouses/{warehouse_id}/delivery_options 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetWarehouseDeliveryOptionsResponse : TikTokShopResponse<LogisticsGetWarehouseDeliveryOptionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class DeliveryOption\n                    {\n                        public static class Types\n                        {\n                            public class DimensionLimit\n                            {\n                                /// <summary>\n                                /// 获取或设置最大长度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"max_length\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"max_length\")]\n                                public int MaxLength { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最大宽度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"max_width\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"max_width\")]\n                                public int MaxWidth { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最大高度。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"max_height\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"max_height\")]\n                                public int MaxHeight { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置尺寸单位。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                public string Unit { get; set; } = default!;\n                            }\n\n                            public class WeightLimit\n                            {\n                                /// <summary>\n                                /// 获取或设置最小重量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"min_weight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"min_weight\")]\n                                public int MinWeight { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最大重量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"max_weight\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"max_weight\")]\n                                public int MaxWeight { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置重量单位。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                                public string Unit { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置配送方式 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string DeliveryOptionId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置配送方式名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置尺寸限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"dimension_limit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"dimension_limit\")]\n                        public Types.DimensionLimit DimensionLimit { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置重量限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"weight_limit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"weight_limit\")]\n                        public Types.WeightLimit WeightLimit { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置平台列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                        public string[]? PlatformList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置配送方式列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_options\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_options\")]\n                public Types.DeliveryOption[] DeliveryOptionList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetWarehousesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/warehouses 接口的请求。</para>\n    /// </summary>\n    public class LogisticsGetWarehousesRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Logistics/LogisticsGetWarehousesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /logistics/{version}/warehouses 接口的响应。</para>\n    /// </summary>\n    public class LogisticsGetWarehousesResponse : TikTokShopResponse<LogisticsGetWarehousesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Warehouse\n                    {\n                        public static class Types\n                        {\n                            public class Address\n                            {\n                                public static class Types\n                                {\n                                    public class GeoLocation\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置经度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"longitude\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"longitude\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal Longitude { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置纬度。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"latitude\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"latitude\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal Latitude { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置完整地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"full_address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"full_address\")]\n                                public string FullAddress { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地区编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                                public string RegionCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地区。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                                public string Region { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置州/省。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"state\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"state\")]\n                                public string State { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置市。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public string City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置县。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"distict\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"distict\")]\n                                public string District { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置镇。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"town\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"town\")]\n                                public string Town { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置电话号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                                public string PhoneNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置联系人姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"contact_person\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"contact_person\")]\n                                public string ContactName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置邮编。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                                public string PostalCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地理位置信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"geolocation\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"geolocation\")]\n                                public Types.GeoLocation? GeoLocation { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string WarehouseId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仓库子类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sub_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sub_type\")]\n                        public string SubType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置有效状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"effect_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"effect_status\")]\n                        public string EffectStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否默认。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_default\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_default\")]\n                        public bool IsDefault { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public Types.Address Address { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置仓库列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warehouses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warehouses\")]\n                public Types.Warehouse[] WarehouseList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderCreateExternalOrderRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/external_orders 接口的请求。</para>\n    /// </summary>\n    public class OrderCreateExternalOrderRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Order\n            {\n                public static class Types\n                {\n                    public class ExternalOrder\n                    {\n                        public static class Types\n                        {\n                            public class LineItem\n                            {\n                                /// <summary>\n                                /// 获取或设置订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n                                public string LineItemId { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置外部订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string ExternalLineItemId { get; set; } = string.Empty;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置外部订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string ExternalOrderId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置来源平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                        public string Platform { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置订单行列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"line_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"line_items\")]\n                        public IList<Types.LineItem> LineItemList { get; set; } = new List<Types.LineItem>();\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string OrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置外部订单信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"external_order\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"external_order\")]\n                public Types.ExternalOrder ExternalOrder { get; set; } = new Types.ExternalOrder();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202406</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202406;\n\n        /// <summary>\n        /// 获取或设置订单列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"orders\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n        public IList<Types.Order> OrderList { get; set; } = new List<Types.Order>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderCreateExternalOrderResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/external_orders 接口的响应。</para>\n    /// </summary>\n    public class OrderCreateExternalOrderResponse : TikTokShopResponse<OrderCreateExternalOrderResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                public static class Types\n                                {\n                                    public class ExternalOrder\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置外部订单 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public string ExternalOrderId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置来源平台。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"platform\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                                        public string Platform { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置订单 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                                public string OrderId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置外部订单信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"external_order\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"external_order\")]\n                                public Types.ExternalOrder ExternalOrder { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderGetExternalOrdersRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders/{order_id}/external_orders 接口的请求。</para>\n    /// </summary>\n    public class OrderGetExternalOrdersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202406</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202406;\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置来源平台。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Platform { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderGetExternalOrdersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders/{order_id}/external_orders 接口的响应。</para>\n    /// </summary>\n    public class OrderGetExternalOrdersResponse : TikTokShopResponse<OrderGetExternalOrdersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ExternalOrder\n                    {\n                        public static class Types\n                        {\n                            public class LineItem\n                            {\n                                /// <summary>\n                                /// 获取或设置订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"origin_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"origin_id\")]\n                                public string LineItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置外部订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string ExternalLineItemId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置外部订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string ExternalOrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置来源平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                        public string Platform { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单行列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"line_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"line_items\")]\n                        public Types.LineItem[] LineItemList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置外部订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"external_orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"external_orders\")]\n                public Types.ExternalOrder[] ExternalOrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderSearchExternalOrdersRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/external_order_search 接口的请求。</para>\n    /// </summary>\n    public class OrderSearchExternalOrdersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202406</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202406;\n\n        /// <summary>\n        /// 获取或设置外部订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ExternalOrderId { get; set; }\n\n        /// <summary>\n        /// 获取或设置来源平台。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Platform { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/ExternalOrder/OrderSearchExternalOrdersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/external_order_search 接口的响应。</para>\n    /// </summary>\n    public class OrderSearchExternalOrdersResponse : TikTokShopResponse<OrderSearchExternalOrdersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class ExternalOrder : OrderGetExternalOrdersResponse.Types.Data.Types.ExternalOrder\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置外部订单信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_order\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_order\")]\n                        public Types.ExternalOrder ExternalOrder { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderBatchGetOrderDetailRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders 接口的请求。</para>\n    /// </summary>\n    public class OrderBatchGetOrderDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> OrderIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderBatchGetOrderDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders 接口的响应。</para>\n    /// </summary>\n    public class OrderBatchGetOrderDetailResponse : TikTokShopResponse<OrderBatchGetOrderDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order : OrderSearchOrdersResponse.Types.Data.Types.Order\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderGetOrderPriceDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders/{order_id}/price_detail 接口的请求。</para>\n    /// </summary>\n    public class OrderGetOrderPriceDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderGetOrderPriceDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /order/{version}/orders/{order_id}/price_detail 接口的响应。</para>\n    /// </summary>\n    public class OrderGetOrderPriceDetailResponse : TikTokShopResponse<OrderGetOrderPriceDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class LineItem\n                    {\n                        /// <summary>\n                        /// 获取或设置订单行 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string LineItemId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置总金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"total\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal TotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal PaymentAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 原价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_list_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_list_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SKUListPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 现价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_sale_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_sale_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SKUSalePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 总金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtotal\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtotal\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SubtotalAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 卖家折扣金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtotal_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SubtotalAmountSellerDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 平台折扣金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtotal_deduction_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_deduction_platform\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SubtotalAmountPlatformDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 税费。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"subtotal_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_tax_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SubtotalTaxAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家促销金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"voucher_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"voucher_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal VoucherAmountSellerDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台促销类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"voucher_deduction_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"voucher_deduction_platform\")]\n                        public string? VoucherPlatformDeductionType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费原价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_list_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_list_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingListPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费现价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_sale_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_sale_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingSalePrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置商家运费折扣金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_seller\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeeSellerDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台运费折扣金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_platform\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeePlatformDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置平台促销运费折扣金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_platform_voucher\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_platform_voucher\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal ShippingFeePlatformVoucherDeduction { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置税率。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_rate\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_rate\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal TaxRate { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置税费。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tax_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal TaxAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不含税金额。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"net_price_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"net_price_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal NetPriceAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置货到付款费用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cod_fee\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cod_fee\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? CashOnDeliveryFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置不含税货到付款费用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cod_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cod_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal? NetCashOnDeliveryFee { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置赠品原价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_gift_original_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_gift_original_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SKUGiftOriginalPrice { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置赠品不含税价格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_gift_net_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_gift_net_price\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                        public decimal SKUGiftNetPrice { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置币种。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                public string Currency { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal TotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置支付金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"payment\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"payment\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal PaymentAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 原价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_list_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_list_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SKUListPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 现价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_sale_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_sale_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SKUSalePrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 总金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subtotal\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subtotal\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SubtotalAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 卖家折扣金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subtotal_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SubtotalAmountSellerDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 平台折扣金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subtotal_deduction_platform\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_deduction_platform\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SubtotalAmountPlatformDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 税费。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"subtotal_tax_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"subtotal_tax_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SubtotalTaxAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家促销金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"voucher_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"voucher_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal VoucherAmountSellerDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台促销类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"voucher_deduction_platform\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"voucher_deduction_platform\")]\n                public string? VoucherPlatformDeductionType { get; set; }\n\n                /// <summary>\n                /// 获取或设置运费原价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_list_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_list_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingListPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置运费现价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_sale_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_sale_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingSalePrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置商家运费折扣金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_seller\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingFeeSellerDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台运费折扣金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_platform\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_platform\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingFeePlatformDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置平台促销运费折扣金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_fee_deduction_platform_voucher\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_deduction_platform_voucher\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal ShippingFeePlatformVoucherDeduction { get; set; }\n\n                /// <summary>\n                /// 获取或设置税率。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tax_rate\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tax_rate\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal TaxRate { get; set; }\n\n                /// <summary>\n                /// 获取或设置税费。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tax_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tax_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal TaxAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置不含税金额。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"net_price_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"net_price_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal NetPriceAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置货到付款费用。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cod_fee\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cod_fee\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal? CashOnDeliveryFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置不含税货到付款费用。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cod_fee_net_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cod_fee_net_amount\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal? NetCashOnDeliveryFee { get; set; }\n\n                /// <summary>\n                /// 获取或设置赠品原价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_gift_original_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_gift_original_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SKUGiftOriginalPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置赠品不含税价格。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_gift_net_price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_gift_net_price\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                public decimal SKUGiftNetPrice { get; set; }\n\n                /// <summary>\n                /// 获取或设置订单行列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"line_items\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"line_items\")]\n                public Types.LineItem[] LineItemList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderSearchOrdersRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/search 接口的请求。</para>\n    /// </summary>\n    public class OrderSearchOrdersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_lt\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_lt\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置订单状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_status\")]\n        public string? OrderStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_type\")]\n        public string? ShippingType { get; set; }\n\n        /// <summary>\n        /// 获取或设置买家用户 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_user_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_user_id\")]\n        public string? BuyerUserId { get; set; }\n\n        /// <summary>\n        /// 获取或设置买家是否请求取消订单。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_buyer_request_cancel\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_buyer_request_cancel\")]\n        public bool? IsBuyerRequestCancel { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序字段。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortField { get; set; }\n\n        /// <summary>\n        /// 获取或设置排序方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? SortOrder { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Order/OrderSearchOrdersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /order/{version}/orders/search 接口的响应。</para>\n    /// </summary>\n    public class OrderSearchOrdersResponse : TikTokShopResponse<OrderSearchOrdersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Order\n                    {\n                        public static class Types\n                        {\n                            public class Package\n                            {\n                                /// <summary>\n                                /// 获取或设置包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string PackageId { get; set; } = default!;\n                            }\n\n                            public class Payment\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置总金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal TotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU 总金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sub_total\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sub_total\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SubtotalAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费税。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_tax\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_tax\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeeTax { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SellerDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品原价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_total_product_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_total_product_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal OriginalTotalProductPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费原价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal OriginalShippingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeeSellerDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运费平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeePlatformDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置税费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tax\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tax\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal Tax { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置小额订单费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"small_order_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"small_order_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SmallOrderFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品税。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_tax\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_tax\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ProductTax { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家服务费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal BuyerServiceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置额外处理费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"handling_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"handling_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? HandlingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输保险费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_insurance_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? ShippingInsuranceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置货物保险费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_insurance_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_insurance_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? ItemInsuranceFee { get; set; }\n                            }\n\n                            public class RecipientAddress\n                            {\n                                public static class Types\n                                {\n                                    public class DistrictInfo\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置行政区划级别。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"address_level\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"address_level\")]\n                                        public string AddressLevel { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置行政区划级别名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"address_level_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"address_level_name\")]\n                                        public string AddressLevelName { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置行政区划名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"address_name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"address_name\")]\n                                        public string AddressName { get; set; } = default!;\n                                    }\n\n                                    public class DeliveryPreferences\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置归还地点。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"drop_off_location\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"drop_off_location\")]\n                                        public string DropOffLocation { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置完整地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"full_address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"full_address\")]\n                                public string FullAddress { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地区编码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"region_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"region_code\")]\n                                public string RegionCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置电话号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                                public string PhoneNumber { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置联系人姓名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string ContactName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置联系人名。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"first_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"first_name\")]\n                                public string? ContactFirstName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置联系人姓。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"last_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"last_name\")]\n                                public string? ContactLastName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置邮编。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                                public string PostalCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置详细地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_detail\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_detail\")]\n                                public string AddressDetail { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地址行 1。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line1\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line1\")]\n                                public string? AddressLine1 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 2。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line2\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line2\")]\n                                public string? AddressLine2 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 3。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line3\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line3\")]\n                                public string? AddressLine3 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 4。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line4\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line4\")]\n                                public string? AddressLine4 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置行政区划信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district_info\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district_info\")]\n                                public Types.DistrictInfo[]? DistrictInfoList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置配送首选项。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"delivery_preferences\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_preferences\")]\n                                public Types.DeliveryPreferences? DeliveryPreferences { get; set; }\n                            }\n\n                            public class LineItem\n                            {\n                                public static class Types\n                                {\n                                    public class ItemTax\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置税费类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tax_type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_type\")]\n                                        public string TaxType { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置税率。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tax_rate\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_rate\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal TaxRate { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置税费。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tax_amount\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_amount\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal TaxAmount { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string LineItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_type\")]\n                                public string SKUType { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_image\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_image\")]\n                                public string SKUImageUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置原价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"original_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"original_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal OriginalPrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置售价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sale_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sale_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SalePrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SellerDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置小额订单费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"small_order_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"small_order_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SmallOrderFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家服务费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal BuyerServiceFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置显示状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"display_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"display_status\")]\n                                public string DisplayStatus { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置取消发起人。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cancel_user\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_user\")]\n                                public string? CancelRole { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置取消原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n                                public string? CancelReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家处理周期天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"handling_duration_days\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"handling_duration_days\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public int? HandlingDurationDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置准备发货时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rts_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rts_time\")]\n                                public long? ReadyToShipTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输服务商 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                                public string? ShippingProviderId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输服务商名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                                public string? ShippingProviderName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置物流单号。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                                public string? TrackingNumber { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? PackageId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置包裹状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_status\")]\n                                public string? PackageStatus { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置是否是礼品。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"is_gift\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"is_gift\")]\n                                public bool IsGift { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品税费列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"item_tax\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"item_tax\")]\n                                public Types.ItemTax[]? ItemTaxList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置组合 SKU 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"combined_listing_skus\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"combined_listing_skus\")]\n                                public CombinedListingSKU[]? CombinedListingSKUList { get; set; }\n                            }\n\n                            public class CombinedListingSKU : LineItem\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU 数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_count\")]\n                                public int SKUCount { get; set; }\n                            }\n\n                            public class HandlingDuration\n                            {\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"days\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"days\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public int? Days { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电商平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"commerce_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"commerce_platform\")]\n                        public string? CommercePlatform { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_type\")]\n                        public string OrderType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付方式名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment_method_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment_method_name\")]\n                        public string? PaymentMethodName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置支付信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"payment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"payment\")]\n                        public Types.Payment Payment { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置买家用户 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"user_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"user_id\")]\n                        public string? BuyerUserId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家匿名邮箱。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_email\")]\n                        public string? BuyerEmail { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家留言。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_message\")]\n                        public string? BuyerMessage { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_note\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_note\")]\n                        public string? SellerNotes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置订单行列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"line_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"line_items\")]\n                        public Types.LineItem[]? LineItemList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                        public string? ShippingProviderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_provider\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider\")]\n                        public string? ShippingProviderName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置收货地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recipient_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recipient_address\")]\n                        public Types.RecipientAddress RecipientAddress { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否已更改收货地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"has_updated_recipient_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"has_updated_recipient_address\")]\n                        public bool HasUpdatedRecipientAddress { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置履约类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fulfillment_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_type\")]\n                        public string? FulfillmentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_type\")]\n                        public string? DeliveryType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送方式 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_option_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_id\")]\n                        public string? DeliveryOptionId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送方式名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_option_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_name\")]\n                        public string? DeliveryOptionName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送截止日期时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_due_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_due_time\")]\n                        public long? DeliveryDueTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送方式所需时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_option_required_delivery_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_required_delivery_time\")]\n                        public long? DeliveryOptionRequiredDeliveryTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置配送时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_time\")]\n                        public long? DeliveryTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_type\")]\n                        public string? ShippingType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货截止日期时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_due_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_due_time\")]\n                        public long? ShippingDueTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置揽货截止日期时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"collection_due_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"collection_due_time\")]\n                        public long? CollectionDueTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置揽货时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"collection_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"collection_time\")]\n                        public long? CollectionTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置揽货截止时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pick_up_cut_off_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pick_up_cut_off_time\")]\n                        public long? PickupCutOffTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置最晚揽货 SLA 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fast_dispatch_sla_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fast_dispatch_sla_time\")]\n                        public long? FastDispatchSLATimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家处理周期信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"handling_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"handling_duration\")]\n                        public Types.HandlingDuration? HandlingDuration { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家处理开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"release_date\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"release_date\")]\n                        public long? ReleaseDataTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                        public string? TrackingNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合单或拆单标记。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"split_or_combine_tag\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"split_or_combine_tag\")]\n                        public string? SplitOrCombineTag { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                        public string? WarehouseId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置包裹列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"packages\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n                        public Types.Package[]? PackageList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置付款时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"paid_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"paid_time\")]\n                        public long? PaidTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 RTS 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rts_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rts_time\")]\n                        public long? ReadyToShipTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 RTS SLA 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"rts_sla_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"rts_sla_time\")]\n                        public long? ReadyToShipSLATimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 TTS SLA 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"tts_sla_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"tts_sla_time\")]\n                        public long? TikTokShopSLATimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置发货 SLA 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"delivery_sla_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_sla_time\")]\n                        public long? DeliverySLATimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否货到付款。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_cod\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_cod\")]\n                        public bool IsCashOnDelivery { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消发起人。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancellation_initiator\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancellation_initiator\")]\n                        public string? CancelRole { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消订单原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n                        public string? CancelReason { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消订单 SLA 时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_order_sla_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_order_sla_time\")]\n                        public long? CancelOrderSLATimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消订单时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_time\")]\n                        public long? CancelTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置请求取消订单时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"request_cancel_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"request_cancel_time\")]\n                        public long? RequestCancelTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家是否请求取消订单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_buyer_request_cancel\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_buyer_request_cancel\")]\n                        public bool? IsBuyerRequestCancel { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置个人税务登记号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cpf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cpf\")]\n                        public string? CPFNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置需要上传发票状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"need_upload_invoice\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"need_upload_invoice\")]\n                        public string? NeedUploadInvoiceStatus { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是示例订单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_sample_order\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_sample_order\")]\n                        public bool? IsSampleOrder { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是延期订单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_on_hold_order\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_on_hold_order\")]\n                        public bool? IsOnHoldOrder { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是替代订单。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_replacement_order\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_replacement_order\")]\n                        public bool? IsReplacementOrder { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置替代订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"replaced_order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"replaced_order_id\")]\n                        public string? ReplacedOrderId { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置订单列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"orders\")]\n                public Types.Order[] OrderList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Brand/ProductCreateBrandRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/brands 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateBrandRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置品牌名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Brand/ProductCreateBrandResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/brands 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateBrandResponse : TikTokShopResponse<ProductCreateBrandResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置品牌 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string BrandId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Brand/ProductGetBrandsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/brands 接口的请求。</para>\n    /// </summary>\n    public class ProductGetBrandsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryId { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否仅返回已授权品牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsAuthorized { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? BrandName { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Brand/ProductGetBrandsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/brands 接口的响应。</para>\n    /// </summary>\n    public class ProductGetBrandsResponse : TikTokShopResponse<ProductGetBrandsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Brand\n                    {\n                        /// <summary>\n                        /// 获取或设置品牌 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string BrandId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置授权状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"authorized_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"authorized_status\")]\n                        public string AuthorizedStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"brand_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"brand_status\")]\n                        public string BrandStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是 T1 品牌。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_t1_brand\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_t1_brand\")]\n                        public bool IsT1Brand { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置品牌列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brands\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brands\")]\n                public Types.Brand[] BrandList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoriesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories 接口的请求。</para>\n    /// </summary>\n    public class ProductGetCategoriesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置本地化语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories 接口的响应。</para>\n    /// </summary>\n    public class ProductGetCategoriesResponse : TikTokShopResponse<ProductGetCategoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上级分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ParentCategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"local_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"local_name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是子分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                        public bool IsLeaf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置权限状态列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"permission_statuses\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"permission_statuses\")]\n                        public string[] PermissionStatusList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categories\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoryAttributesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/attributes 接口的请求。</para>\n    /// </summary>\n    public class ProductGetCategoryAttributesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置本地化语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoryAttributesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/attributes 接口的响应。</para>\n    /// </summary>\n    public class ProductGetCategoryAttributesResponse : TikTokShopResponse<ProductGetCategoryAttributesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Attribute\n                    {\n                        public static class Types\n                        {\n                            public class AttributeValue\n                            {\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ValueId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n\n                            public class RequirementCondition\n                            {\n                                /// <summary>\n                                /// 获取或设置条件类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"condition_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"condition_type\")]\n                                public string ConditionType { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attribute_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attribute_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string AttributeId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attribute_value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attribute_value_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string AttributeValueId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string AttributeId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否必须。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否允许多选。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_multiple_selection\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_multiple_selection\")]\n                        public bool IsMultipleSelection { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否允许自定义。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_customizable\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_customizable\")]\n                        public bool IsCustomizable { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值数据格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_data_format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_data_format\")]\n                        public string? ValueDataFormat { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"values\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"values\")]\n                        public Types.AttributeValue[] ValueList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置必需条件列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"requirement_conditions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"requirement_conditions\")]\n                        public Types.RequirementCondition[]? RequirementConditionList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attributes\")]\n                public Types.Attribute[] AttributeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoryRulesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/rules 接口的请求。</para>\n    /// </summary>\n    public class ProductGetCategoryRulesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryVersion { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductGetCategoryRulesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/rules 接口的响应。</para>\n    /// </summary>\n    public class ProductGetCategoryRulesResponse : TikTokShopResponse<ProductGetCategoryRulesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Certification\n                    {\n                        public static class Types\n                        {\n                            public class RequirementCondition\n                            {\n                                /// <summary>\n                                /// 获取或设置条件类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"condition_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"condition_type\")]\n                                public string ConditionType { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attribute_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attribute_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string AttributeId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"attribute_value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"attribute_value_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string AttributeValueId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品认证 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CertificationId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品认证名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置示例图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sample_image_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sample_image_url\")]\n                        public string? SampleImageUrl { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否必须。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置必需条件列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"requirement_conditions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"requirement_conditions\")]\n                        public Types.RequirementCondition[]? RequirementConditionList { get; set; }\n                    }\n\n                    public class SizeChart\n                    {\n                        /// <summary>\n                        /// 获取或设置是否支持。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_supported\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_supported\")]\n                        public bool IsSupported { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否必须。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n                    }\n\n                    public class CashOnDelivery\n                    {\n                        /// <summary>\n                        /// 获取或设置是否支持。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_supported\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_supported\")]\n                        public bool IsSupported { get; set; }\n                    }\n\n                    public class PackageDimension\n                    {\n                        /// <summary>\n                        /// 获取或设置是否必须。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n                    }\n\n                    public class ExtendedProducerResponsibility\n                    {\n                        /// <summary>\n                        /// 获取或设置是否必须。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_required\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_required\")]\n                        public bool IsRequired { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品认证列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_certifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_certifications\")]\n                public Types.Certification[] CertificationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置尺码表信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n                public Types.SizeChart? SizeChart { get; set; }\n\n                /// <summary>\n                /// 获取或设置货到付款信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cod\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cod\")]\n                public Types.CashOnDelivery? CashOnDelivery { get; set; }\n\n                /// <summary>\n                /// 获取或设置包装尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_dimension\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_dimension\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置 EPR 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"epr\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"epr\")]\n                public Types.ExtendedProducerResponsibility? ExtendedProducerResponsibility { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductRecommendCategoriesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/categories/recommend 接口的请求。</para>\n    /// </summary>\n    public class ProductRecommendCategoriesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                public string Uri { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_version\")]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_title\")]\n        public string ProductTitle { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image>? ImageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Category/ProductRecommendCategoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/categories/recommend 接口的响应。</para>\n    /// </summary>\n    public class ProductRecommendCategoriesResponse : TikTokShopResponse<ProductRecommendCategoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分类名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置分类层级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"level\")]\n                        public int Level { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否是子分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                        public bool IsLeaf { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置权限状态列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"permission_statuses\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"permission_statuses\")]\n                        public string[] PermissionStatusList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置推荐分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categories\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置推荐子分类 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"leaf_category_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"leaf_category_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string LeafCategoryId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductCreateComplianceManufacturerRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateComplianceManufacturerRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PhoneNumber\n            {\n                /// <summary>\n                /// 获取或设置国家地区号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                public string CountryCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置本地号码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"local_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"local_number\")]\n                public string LocalNumber { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置制造商名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置制造商注册商业名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_trade_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_trade_name\")]\n        public string? RegisteredTradeName { get; set; }\n\n        /// <summary>\n        /// 获取或设置邮件地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string Email { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置电话号码信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public Types.PhoneNumber PhoneNumber { get; set; } = new Types.PhoneNumber();\n\n        /// <summary>\n        /// 获取或设置地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public string Address { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductCreateComplianceManufacturerResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateComplianceManufacturerResponse : TikTokShopResponse<ProductCreateComplianceManufacturerResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置制造商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manufacturer_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ManufacturerId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductCreateComplianceResponsiblePersonRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateComplianceResponsiblePersonRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PhoneNumber : ProductCreateComplianceManufacturerRequest.Types.PhoneNumber\n            {\n            }\n\n            public class Address\n            {\n                /// <summary>\n                /// 获取或设置邮编。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                public string PostalCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置国家。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"country\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"country\")]\n                public string Country { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置省。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"province\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                public string Province { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                public string City { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置区。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"district\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                public string? District { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道地址行 1。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_address_line1\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_address_line1\")]\n                public string? StreetAddressLine1 { get; set; }\n\n                /// <summary>\n                /// 获取或设置街道地址行 2。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"street_address_line2\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"street_address_line2\")]\n                public string? StreetAddressLine2 { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置责任人名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string Name { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置邮件地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string Email { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置电话号码信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public Types.PhoneNumber PhoneNumber { get; set; } = new Types.PhoneNumber();\n\n        /// <summary>\n        /// 获取或设置地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public Types.Address Address { get; set; } = new Types.Address();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductCreateComplianceResponsiblePersonResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateComplianceResponsiblePersonResponse : TikTokShopResponse<ProductCreateComplianceResponsiblePersonResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置责任人 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"responsible_person_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ResponsiblePersonId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductSearchComplianceManufacturersRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers/search 接口的请求。</para>\n    /// </summary>\n    public class ProductSearchComplianceManufacturersRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n        public IList<string>? ManufacturerIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductSearchComplianceManufacturersResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers/search 接口的响应。</para>\n    /// </summary>\n    public class ProductSearchComplianceManufacturersResponse : TikTokShopResponse<ProductSearchComplianceManufacturersResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Manufacturer\n                    {\n                        public static class Types\n                        {\n                            public class PhoneNumber\n                            {\n                                /// <summary>\n                                /// 获取或设置国家地区号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"country_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"country_code\")]\n                                public string CountryCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置本地号码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"local_number\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"local_number\")]\n                                public string LocalNumber { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置制造商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ManufacturerId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置制造商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置制造商注册商业名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"registered_trade_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"registered_trade_name\")]\n                        public string? RegisteredTradeName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置邮件地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                        public string Email { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电话号码信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                        public Types.PhoneNumber PhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string Address { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置制造商列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manufacturers\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manufacturers\")]\n                public Types.Manufacturer[] ManufacturerList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductSearchComplianceResponsiblePersonsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons/search 接口的请求。</para>\n    /// </summary>\n    public class ProductSearchComplianceResponsiblePersonsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置责任人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n        public IList<string>? ResponsiblePersonIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductSearchComplianceResponsiblePersonsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons/search 接口的响应。</para>\n    /// </summary>\n    public class ProductSearchComplianceResponsiblePersonsResponse : TikTokShopResponse<ProductSearchComplianceResponsiblePersonsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ResponsiblePerson\n                    {\n                        public static class Types\n                        {\n                            public class PhoneNumber : ProductSearchComplianceManufacturersResponse.Types.Data.Types.Manufacturer.Types.PhoneNumber\n                            {\n                            }\n\n                            public class Address\n                            {\n                                /// <summary>\n                                /// 获取或设置邮编。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"postal_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"postal_code\")]\n                                public string PostalCode { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置国家。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"country\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"country\")]\n                                public string Country { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置省。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"province\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"province\")]\n                                public string Province { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置市。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"city\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"city\")]\n                                public string City { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置区。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"district\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"district\")]\n                                public string? District { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置街道地址行 1。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street_address_line1\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street_address_line1\")]\n                                public string? StreetAddressLine1 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置街道地址行 2。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"street_address_line2\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"street_address_line2\")]\n                                public string? StreetAddressLine2 { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置责任人 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ResponsiblePersonId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置责任人名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置邮件地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                        public string Email { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置电话号码信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                        public Types.PhoneNumber PhoneNumber { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public Types.Address Address { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置责任人列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"responsible_persons\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"responsible_persons\")]\n                public Types.ResponsiblePerson[] ResponsiblePersonList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductUpdateComplianceManufacturerPartiallyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers/{manufacturer_id}/partial_edit 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateComplianceManufacturerPartiallyRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PhoneNumber : ProductCreateComplianceManufacturerRequest.Types.PhoneNumber\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置制造商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ManufacturerId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置制造商名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? Name { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商注册商业名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"registered_trade_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"registered_trade_name\")]\n        public string? RegisteredTradeName { get; set; }\n\n        /// <summary>\n        /// 获取或设置邮件地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string? Email { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置电话号码信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public Types.PhoneNumber? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public string? Address { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductUpdateComplianceManufacturerPartiallyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/manufacturers/{manufacturer_id}/partial_edit 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateComplianceManufacturerPartiallyResponse : TikTokShopResponse<ProductUpdateComplianceManufacturerPartiallyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductUpdateComplianceResponsiblePersonPartiallyRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons/{responsible_person_id}/partial_edit 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateComplianceResponsiblePersonPartiallyRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PhoneNumber : ProductCreateComplianceResponsiblePersonRequest.Types.PhoneNumber\n            {\n            }\n\n            public class Address : ProductCreateComplianceResponsiblePersonRequest.Types.Address\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202409</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202409;\n\n        /// <summary>\n        /// 获取或设置责任人 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ResponsiblePersonId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置责任人名称。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n        public string? Name { get; set; }\n\n        /// <summary>\n        /// 获取或设置邮件地址。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"email\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n        public string? Email { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置电话号码信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n        public Types.PhoneNumber? PhoneNumber { get; set; }\n\n        /// <summary>\n        /// 获取或设置地址信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"address\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n        public Types.Address? Address { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Compliance/ProductUpdateComplianceResponsiblePersonPartiallyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/compliance/responsible_persons/{responsible_person_id}/partial_edit 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateComplianceResponsiblePersonPartiallyResponse : TikTokShopResponse<ProductUpdateComplianceResponsiblePersonPartiallyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoriesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/global_categories 接口的请求。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoriesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置本地化语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/global_categories 接口的响应。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoriesResponse : TikTokShopResponse<ProductGetGlobalCategoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category : ProductGetCategoriesResponse.Types.Data.Types.Category\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categories\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoryAttributesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/global_attributes 接口的请求。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoryAttributesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置本地化语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoryAttributesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/global_attributes 接口的响应。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoryAttributesResponse : TikTokShopResponse<ProductGetGlobalCategoryAttributesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Attribute : ProductGetCategoryAttributesResponse.Types.Data.Types.Attribute\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"attributes\")]\n                public Types.Attribute[] AttributeList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoryRulesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/global_rules 接口的请求。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoryRulesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CategoryId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductGetGlobalCategoryRulesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/categories/{category_id}/global_rules 接口的响应。</para>\n    /// </summary>\n    public class ProductGetGlobalCategoryRulesResponse : TikTokShopResponse<ProductGetGlobalCategoryRulesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductCertification : ProductGetCategoryRulesResponse.Types.Data.Types.Certification\n                    {\n                        /// <summary>\n                        /// 获取或设置必填的地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"required_regions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"required_regions\")]\n                        public string[] RequiredRegionCodeList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置选填的地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"optional_regions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"optional_regions\")]\n                        public string[] OptionalRegionCodeList { get; set; } = default!;\n                    }\n\n                    public class SizeChart : ProductGetCategoryRulesResponse.Types.Data.Types.SizeChart\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品认证列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_certifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_certifications\")]\n                public Types.ProductCertification[] ProductCertificationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置尺码表信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n                public Types.SizeChart? SizeChart { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductRecommendGlobalCategoriesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_categories/recommend 接口的请求。</para>\n    /// </summary>\n    public class ProductRecommendGlobalCategoriesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                public string Uri { get; set; } = string.Empty;\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_title\")]\n        public string ProductTitle { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image>? ImageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/Category/ProductRecommendGlobalCategoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_categories/recommend 接口的响应。</para>\n    /// </summary>\n    public class ProductRecommendGlobalCategoriesResponse : TikTokShopResponse<ProductRecommendGlobalCategoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Category : ProductRecommendCategoriesResponse.Types.Data.Types.Category\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置推荐分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"categories\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"categories\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置推荐子分类 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"leaf_category_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"leaf_category_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string LeafCategoryId { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductCreateGlobalProductRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateGlobalProductRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ProductCreateProductRequest.Types.Image\n            {\n            }\n\n            public class Video : ProductCreateProductRequest.Types.Video\n            {\n            }\n\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class SalesAttribute : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute\n                    {\n                        public static new class Types\n                        {\n                            public class Image : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute.Types.Image\n                            {\n                            }\n                        }\n                    }\n\n                    public class Price : ProductCreateProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n\n                    public class Inventory\n                    {\n                        /// <summary>\n                        /// 获取或设置全球仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"global_warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"global_warehouse_id\")]\n                        public string WarehouseId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n                    }\n\n                    public class IdentifierCode : ProductCreateProductRequest.Types.SKU.Types.IdentifierCode\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置销售属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                public IList<Types.SalesAttribute>? SalesAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public IList<Types.Inventory>? InventoryList { get; set; }\n\n                /// <summary>\n                /// 获取或设置价格信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public Types.Price Price { get; set; } = new Types.Price();\n\n                /// <summary>\n                /// 获取或设置卖家 SKU 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                public string? SellerSKU { get; set; }\n\n                /// <summary>\n                /// 获取或设置产品标识码信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identifier_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identifier_code\")]\n                public Types.IdentifierCode? IdentifierCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置全球数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_quantity\")]\n                public int? GlobalQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 单位数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_unit_count\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_unit_count\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal? UnitCount { get; set; }\n            }\n\n            public class PackageDimension : ProductCreateProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductCreateProductRequest.Types.PackageWeight\n            {\n            }\n\n            public class Certification : ProductCreateProductRequest.Types.Certification\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.Certification.Types.Image\n                    {\n                    }\n\n                    public class File : ProductCreateProductRequest.Types.Certification.Types.File\n                    {\n                    }\n                }\n            }\n\n            public class ProductAttribute : ProductCreateProductRequest.Types.ProductAttribute\n            {\n                public static new class Types\n                {\n                    public class ProductAttributeValue : ProductCreateProductRequest.Types.ProductAttribute.Types.ProductAttributeValue\n                    {\n                    }\n                }\n            }\n\n            public class SizeChart : ProductCreateProductRequest.Types.SizeChart\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.SizeChart.Types.Image\n                    {\n                    }\n\n                    public class Template : ProductCreateProductRequest.Types.SizeChart.Types.Template\n                    {\n                    }\n                }\n            }\n\n            public class Manufacturer : ProductCreateProductRequest.Types.Manufacturer\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductCreateGlobalProductResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateGlobalProductResponse : TikTokShopResponse<ProductCreateGlobalProductResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU\n                    {\n                        public static class Types\n                        {\n                            public class SalesAttribute : ProductCreateProductResponse.Types.Data.Types.SKU.Types.SalesAttribute\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                        public string? SellerSKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置销售属性列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                        public Types.SalesAttribute[] SalesAttributeList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductDeleteGlobalProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /product/{version}/global_products 接口的请求。</para>\n    /// </summary>\n    public class ProductDeleteGlobalProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"global_product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"global_product_ids\")]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductDeleteGlobalProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /product/{version}/global_products 接口的响应。</para>\n    /// </summary>\n    public class ProductDeleteGlobalProductsResponse : TikTokShopResponse<ProductDeleteGlobalProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"global_product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"global_product_id\")]\n                                public string ProductId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductGetGlobalProductDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/global_products/{global_product_id} 接口的请求。</para>\n    /// </summary>\n    public class ProductGetGlobalProductDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductGetGlobalProductDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/global_products/{global_product_id} 接口的响应。</para>\n    /// </summary>\n    public class ProductGetGlobalProductDetailResponse : TikTokShopResponse<ProductGetGlobalProductDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Image : ProductGetProductDetailResponse.Types.Data.Types.Image\n                    {\n                    }\n\n                    public class Video : ProductGetProductDetailResponse.Types.Data.Types.Video\n                    {\n                    }\n\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n                    }\n\n                    public class Brand\n                    {\n                        /// <summary>\n                        /// 获取或设置品牌 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string BrandId { get; set; } = default!;\n                    }\n\n                    public class Product\n                    {\n                        /// <summary>\n                        /// 获取或设置地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string RegionCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置产品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n                    }\n\n                    public class SKU\n                    {\n                        public static class Types\n                        {\n                            public class SalesAttribute : ProductGetProductDetailResponse.Types.Data.Types.SKU.Types.SalesAttribute\n                            {\n                            }\n\n                            public class Price\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置价格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal Amount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存单价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unit_price\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unit_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal UnitPrice { get; set; }\n                            }\n\n                            public class Inventory\n                            {\n                                /// <summary>\n                                /// 获取或设置仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"global_warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"global_warehouse_id\")]\n                                public string WarehouseId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n                            }\n\n                            public class IdentifierCode : ProductGetProductDetailResponse.Types.Data.Types.SKU.Types.IdentifierCode\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置销售属性列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                        public Types.SalesAttribute[]? SalesAttributeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                        public Types.Inventory[]? InventoryList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public Types.Price Price { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                        public string? SellerSKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置产品标识码信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"identifier_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"identifier_code\")]\n                        public Types.IdentifierCode? IdentifierCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置全球数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"global_quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"global_quantity\")]\n                        public int? GlobalQuantity { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 单位数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_unit_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_unit_count\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal? UnitCount { get; set; }\n                    }\n\n                    public class PackageDimension : ProductGetProductDetailResponse.Types.Data.Types.PackageDimension\n                    {\n                    }\n\n                    public class PackageWeight : ProductGetProductDetailResponse.Types.Data.Types.PackageWeight\n                    {\n                    }\n\n                    public class Certification : ProductGetProductDetailResponse.Types.Data.Types.Certification\n                    {\n                    }\n\n                    public class ProductAttribute : ProductGetProductDetailResponse.Types.Data.Types.ProductAttribute\n                    {\n                    }\n\n                    public class SizeChart : ProductGetProductDetailResponse.Types.Data.Types.SizeChart\n                    {\n                    }\n\n                    public class Manufacturer : ProductGetProductDetailResponse.Types.Data.Types.Manufacturer\n                    {\n                        /// <summary>\n                        /// 获取或设置制造商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置制造商地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                        public string? PhoneNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系邮箱。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                        public string? Email { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置分类信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category\")]\n                public Types.Category Category { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置品牌信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand\")]\n                public Types.Brand? Brand { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"main_images\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n                public Types.Image[]? MainImageList { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.Video? Video { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置包装尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置包装重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n                public Types.PackageWeight? PackageWeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置尺码表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n                public Types.SizeChart? SizeChart { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品认证列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n                public Types.Certification[]? CertificationList { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n                public Types.ProductAttribute[]? ProductAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置制造商信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n                public Types.Manufacturer? Manufacturer { get; set; }\n\n                /// <summary>\n                /// 获取或设置全球卖家 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_seller_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_seller_id\")]\n                public string? GlobalSellerId { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductPublishGlobalProductRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/{global_product_id}/publish 接口的请求。</para>\n    /// </summary>\n    public class ProductPublishGlobalProductRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class PublishTarget\n            {\n                public static class Types\n                {\n                    public class SKU\n                    {\n                        public static class Types\n                        {\n                            public class Price\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置价格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                                public decimal Amount { get; set; }\n                            }\n\n                            public class Inventory\n                            {\n                                /// <summary>\n                                /// 获取或设置仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                public string WarehouseId { get; set; } = string.Empty;\n\n                                /// <summary>\n                                /// 获取或设置库存数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置关联的 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"related_global_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"related_global_sku_id\")]\n                        public string RelatedSKUId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置价格信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public Types.Price? Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                        public Types.Inventory? Inventory { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置地区编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"region\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                public string RegionCode { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public IList<Types.SKU>? SKUList { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置发布目标列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"publish_target\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"publish_target\")]\n        public IList<Types.PublishTarget>? PublishTargetList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductPublishGlobalProductResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/{global_product_id}/publish 接口的响应。</para>\n    /// </summary>\n    public class ProductPublishGlobalProductResponse : TikTokShopResponse<ProductPublishGlobalProductResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class SalesAttribute : ProductCreateGlobalProductResponse.Types.Data.Types.SKU.Types.SalesAttribute\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置关联的 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"related_global_sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"related_global_sku_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string RelatedSKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置销售属性列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                                public Types.SalesAttribute[] SalesAttributeList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string RegionCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                        public string ShopId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n                    }\n\n                    public class PublishResult\n                    {\n                        public static class Types\n                        {\n                            public class FailReason\n                            {\n                                /// <summary>\n                                /// 获取或设置错误信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"message\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                                public string Message { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置地区编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string RegionCode { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置发布结果。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置失败原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reasons\")]\n                        public Types.FailReason[]? FailReasonList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置产品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置发布结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_result\")]\n                public Types.PublishResult[] PublishResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductSearchGlobalProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/search 接口的请求。</para>\n    /// </summary>\n    public class ProductSearchGlobalProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202312</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202312;\n\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_le\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_le\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_le\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_le\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string? ProductStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置卖家 SKU 信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"seller_skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"seller_skus\")]\n        public IList<string>? SellerSKUList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductSearchGlobalProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/search 接口的响应。</para>\n    /// </summary>\n    public class ProductSearchGlobalProductsResponse : TikTokShopResponse<ProductSearchGlobalProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductUpdateGlobalProductInventoryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/{global_product_id}/inventory/update 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateGlobalProductInventoryRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class Inventory : ProductCreateGlobalProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string SKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public IList<Types.Inventory> InventoryList { get; set; } = new List<Types.Inventory>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"global_skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"global_skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductUpdateGlobalProductInventoryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/global_products/{global_product_id}/inventory/update 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateGlobalProductInventoryResponse : TikTokShopResponse<ProductUpdateGlobalProductInventoryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductUpdateGlobalProductRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /product/{version}/global_products/{global_product_id} 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateGlobalProductRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ProductCreateGlobalProductRequest.Types.Image\n            {\n            }\n\n            public class Video : ProductCreateGlobalProductRequest.Types.Video\n            {\n            }\n\n            public class SKU : ProductCreateGlobalProductRequest.Types.SKU\n            {\n                public static new class Types\n                {\n                    public class SalesAttribute : ProductCreateGlobalProductRequest.Types.SKU.Types.SalesAttribute\n                    {\n                        public static new class Types\n                        {\n                            public class Image : ProductCreateGlobalProductRequest.Types.SKU.Types.SalesAttribute.Types.Image\n                            {\n                            }\n                        }\n                    }\n\n                    public class Price : ProductCreateGlobalProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n\n                    public class Inventory : ProductCreateGlobalProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n\n                    public class IdentifierCode : ProductCreateGlobalProductRequest.Types.SKU.Types.IdentifierCode\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string? SKUId { get; set; }\n            }\n\n            public class PackageDimension : ProductCreateGlobalProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductCreateGlobalProductRequest.Types.PackageWeight\n            {\n            }\n\n            public class Certification : ProductCreateGlobalProductRequest.Types.Certification\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateGlobalProductRequest.Types.Certification.Types.Image\n                    {\n                    }\n\n                    public class File : ProductCreateGlobalProductRequest.Types.Certification.Types.File\n                    {\n                    }\n                }\n            }\n\n            public class ProductAttribute : ProductCreateGlobalProductRequest.Types.ProductAttribute\n            {\n                public static new class Types\n                {\n                    public class ProductAttributeValue : ProductCreateGlobalProductRequest.Types.ProductAttribute.Types.ProductAttributeValue\n                    {\n                    }\n                }\n            }\n\n            public class SizeChart : ProductCreateGlobalProductRequest.Types.SizeChart\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateGlobalProductRequest.Types.SizeChart.Types.Image\n                    {\n                    }\n\n                    public class Template : ProductCreateGlobalProductRequest.Types.SizeChart.Types.Template\n                    {\n                    }\n                }\n            }\n\n            public class Manufacturer : ProductCreateGlobalProductRequest.Types.Manufacturer\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Global/ProductUpdateGlobalProductResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /product/{version}/global_products/{global_product_id} 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateGlobalProductResponse : TikTokShopResponse<ProductUpdateGlobalProductResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU : ProductPublishGlobalProductResponse.Types.Data.Types.Product.Types.SKU\n                    {\n                    }\n\n                    public class PublishResult : ProductPublishGlobalProductResponse.Types.Data.Types.PublishResult\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"global_skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"global_skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置发布结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"publish_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"publish_results\")]\n                public Types.PublishResult[] PublishResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductActivateProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/activate 接口的请求。</para>\n    /// </summary>\n    public class ProductActivateProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductActivateProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/activate 接口的响应。</para>\n    /// </summary>\n    public class ProductActivateProductsResponse : TikTokShopResponse<ProductActivateProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                public static class Types\n                                {\n                                    public class ExtraError\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置错误码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                        public int Code { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置错误信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                                        public string Message { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置错误列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"extra_errors\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"extra_errors\")]\n                                public Types.ExtraError[] ExtraErrorList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductCategoryUpgradeTaskRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/category_upgrade_task 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateProductCategoryUpgradeTaskRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductCategoryUpgradeTaskResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/category_upgrade_task 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateProductCategoryUpgradeTaskResponse : TikTokShopResponse<ProductCreateProductCategoryUpgradeTaskResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductListingCheckRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/listing_check 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateProductListingCheckRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ProductCreateProductRequest.Types.Image\n            {\n            }\n\n            public class Video : ProductCreateProductRequest.Types.Video\n            {\n            }\n\n            public class SKU : ProductCreateProductRequest.Types.SKU\n            {\n                public static new class Types\n                {\n                    public class SalesAttribute : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute\n                    {\n                        public static new class Types\n                        {\n                            public class Image : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute.Types.Image\n                            {\n                            }\n                        }\n                    }\n\n                    public class Price : ProductCreateProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n\n                    public class Inventory : ProductCreateProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n\n                    public class IdentifierCode : ProductCreateProductRequest.Types.SKU.Types.IdentifierCode\n                    {\n                    }\n\n                    public class CombinedSKU : ProductCreateProductRequest.Types.SKU.Types.CombinedSKU\n                    {\n                    }\n\n                    public class PreSale : ProductCreateProductRequest.Types.SKU.Types.PreSale\n                    {\n                    }\n                }\n            }\n\n            public class PackageDimension : ProductCreateProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductCreateProductRequest.Types.PackageWeight\n            {\n            }\n\n            public class Certification : ProductCreateProductRequest.Types.Certification\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.Certification.Types.Image\n                    {\n                    }\n\n                    public class File : ProductCreateProductRequest.Types.Certification.Types.File\n                    {\n                    }\n                }\n            }\n\n            public class ProductAttribute : ProductCreateProductRequest.Types.ProductAttribute\n            {\n                public static new class Types\n                {\n                    public class ProductAttributeValue : ProductCreateProductRequest.Types.ProductAttribute.Types.ProductAttributeValue\n                    {\n                    }\n                }\n            }\n\n            public class SizeChart : ProductCreateProductRequest.Types.SizeChart\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.SizeChart.Types.Image\n                    {\n                    }\n\n                    public class Template : ProductCreateProductRequest.Types.SizeChart.Types.Template\n                    {\n                    }\n                }\n            }\n\n            [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n            public class Manufacturer : ProductCreateProductRequest.Types.Manufacturer\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置是否返回优化诊断结果。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsDiagnosisRequired { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_product_id\")]\n        public string? ExternalProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置组合商品主商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"primary_combined_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"primary_combined_product_id\")]\n        public string? PrimaryCombinedProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许货到付款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_cod_allowed\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_cod_allowed\")]\n        public bool IsCashOnDeliveryAllowed { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送方式 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_option_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_ids\")]\n        public IList<string>? DeliveryOptionIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n        public IList<string>? ManufacturerIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置责任人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n        public IList<string>? ResponsiblePersonIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输保险需求类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_insurance_requirement\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_requirement\")]\n        public string? ShippingInsuranceRequirementType { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为二手。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_pre_owned\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_pre_owned\")]\n        public bool? IsPreOwned { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低订购数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_order_quantity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_order_quantity\")]\n        public int? MinimumOrderQuantity { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductListingCheckResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/listing_check 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateProductListingCheckResponse : TikTokShopResponse<ProductCreateProductListingCheckResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class FailReason\n                    {\n                        /// <summary>\n                        /// 获取或设置失败原因编码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置失败原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n                    }\n\n                    public class Warning : ProductCreateProductResponse.Types.Data.Types.Warning\n                    {\n                    }\n\n                    public class Diagnosis\n                    {\n                        public static class Types\n                        {\n                            public class DiagnosisResult : ProductGetProductDiagnosesResponse.Types.Data.Types.Product.Types.Diagnosis.Types.DiagnosisResult\n                            {\n                            }\n\n                            public class Suggestion : ProductGetProductDiagnosesResponse.Types.Data.Types.Product.Types.Diagnosis.Types.Suggestion\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置字段。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"field\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"field\")]\n                        public string Field { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置诊断结果列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"diagnosis_results\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"diagnosis_results\")]\n                        public Types.DiagnosisResult[] DiagnosisResultList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置修改建议。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"suggestions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"suggestions\")]\n                        public Types.Suggestion? Suggestion { get; set; }\n                    }\n\n                    public class ListingQuality : ProductGetProductDiagnosesResponse.Types.Data.Types.Product.Types.ListingQuality\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置检查结果。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"check_result\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"check_result\")]\n                public string CheckResult { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置失败原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"fail_reasons\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"fail_reasons\")]\n                public Types.FailReason[]? FailReasonList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置警告信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warnings\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warnings\")]\n                public Types.Warning? Warning { get; set; }\n\n                /// <summary>\n                /// 获取或设置诊断列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"diagnoses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"diagnoses\")]\n                public Types.Diagnosis[]? DiagnosisList { get; set; }\n\n                /// <summary>\n                /// 获取或设置上架质量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"listing_quality\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"listing_quality\")]\n                public Types.ListingQuality? ListingQuality { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products 接口的请求。</para>\n    /// </summary>\n    public class ProductCreateProductRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                public string Uri { get; set; } = string.Empty;\n            }\n\n            public class Video\n            {\n                /// <summary>\n                /// 获取或设置文件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string FileId { get; set; } = string.Empty;\n            }\n\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class SalesAttribute\n                    {\n                        public static class Types\n                        {\n                            public class Image : ProductCreateProductRequest.Types.Image\n                            {\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string AttributeId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                        public string? ValueId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value_name\")]\n                        public string? ValueName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_img\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_img\")]\n                        public Types.Image? Image { get; set; }\n                    }\n\n                    public class Price\n                    {\n                        /// <summary>\n                        /// 获取或设置币种。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                        public string Currency { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置价格。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public decimal Amount { get; set; }\n                    }\n\n                    public class Inventory\n                    {\n                        /// <summary>\n                        /// 获取或设置仓库 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                        public string WarehouseId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置库存数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n                    }\n\n                    public class IdentifierCode\n                    {\n                        /// <summary>\n                        /// 获取或设置标识码类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置标识码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public string Code { get; set; } = string.Empty;\n                    }\n\n                    public class CombinedSKU\n                    {\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        public string ProductId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_count\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_count\")]\n                        public int SKUCount { get; set; }\n                    }\n\n                    public class PreSale\n                    {\n                        public static class Types\n                        {\n                            public class Fulfillment\n                            {\n                                /// <summary>\n                                /// 获取或设置卖家处理周期天数。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"handling_duration_days\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"handling_duration_days\")]\n                                public int? HandlingDurationDays { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家处理开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"release_date\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"release_date\")]\n                                public long? ReleaseDataTimestamp { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置预售类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                        public string Type { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置配送信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fulfillment_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_type\")]\n                        public Types.Fulfillment? Fulfillment { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置外部 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"external_sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"external_sku_id\")]\n                public string? ExternalSKUId { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部 URL 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"external_urls\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"external_urls\")]\n                public IList<string>? ExternalUrl { get; set; }\n\n                /// <summary>\n                /// 获取或设置外部编码列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"extra_identifier_codes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"extra_identifier_codes\")]\n                public IList<string>? ExternalIdentifierCodeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置销售属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                public IList<Types.SalesAttribute>? SalesAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public IList<Types.Inventory>? InventoryList { get; set; }\n\n                /// <summary>\n                /// 获取或设置价格信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public Types.Price Price { get; set; } = new Types.Price();\n\n                /// <summary>\n                /// 获取或设置卖家 SKU 信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                public string? SellerSKU { get; set; }\n\n                /// <summary>\n                /// 获取或设置产品标识码信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"identifier_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"identifier_code\")]\n                public Types.IdentifierCode? IdentifierCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置组合 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"combined_skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"combined_skus\")]\n                public IList<Types.CombinedSKU>? CombinedSKUList { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 单位数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_unit_count\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_unit_count\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal? UnitCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置预售信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"pre_sale\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"pre_sale\")]\n                public Types.PreSale? PreSale { get; set; }\n            }\n\n            public class PackageDimension\n            {\n                /// <summary>\n                /// 获取或设置长度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"length\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal Length { get; set; }\n\n                /// <summary>\n                /// 获取或设置宽度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置高度。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置尺寸单位。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                public string Unit { get; set; } = string.Empty;\n            }\n\n            public class PackageWeight\n            {\n                /// <summary>\n                /// 获取或设置重量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"value\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal Value { get; set; }\n\n                /// <summary>\n                /// 获取或设置重量单位。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"unit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                public string Unit { get; set; } = string.Empty;\n            }\n\n            public class Certification\n            {\n                public static class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.Image\n                    {\n                    }\n\n                    public class File\n                    {\n                        /// <summary>\n                        /// 获取或设置文件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string FileId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置文件名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string? Format { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品认证 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string CertificationId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"images\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                public IList<Types.Image>? ImageList { get; set; }\n\n                /// <summary>\n                /// 获取或设置文件列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"files\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"files\")]\n                public IList<Types.File>? FileList { get; set; }\n            }\n\n            public class ProductAttribute\n            {\n                public static class Types\n                {\n                    public class ProductAttributeValue\n                    {\n                        /// <summary>\n                        /// 获取或设置属性值 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string? ValueId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置属性值名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置属性 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string AttributeId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置属性值列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"values\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"values\")]\n                public IList<Types.ProductAttributeValue> ValueList { get; set; } = new List<Types.ProductAttributeValue>();\n            }\n\n            public class SizeChart\n            {\n                public static class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.Image\n                    {\n                    }\n\n                    public class Template\n                    {\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string TemplateId { get; set; } = string.Empty;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                public Types.Image? Image { get; set; }\n\n                /// <summary>\n                /// 获取或设置模板信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"template\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"template\")]\n                public Types.Template? Template { get; set; }\n            }\n\n            [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n            public class Manufacturer\n            {\n                /// <summary>\n                /// 获取或设置制造商名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string? Name { get; set; }\n\n                /// <summary>\n                /// 获取或设置制造商地址。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"address\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                public string? Address { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系电话。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                public string? PhoneNumber { get; set; }\n\n                /// <summary>\n                /// 获取或设置联系邮箱。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"email\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                public string? Email { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置保存模式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"save_mode\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"save_mode\")]\n        public string? SaveMode { get; set; }\n\n        /// <summary>\n        /// 获取或设置外部商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_product_id\")]\n        public string? ExternalProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_version\")]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置组合商品主商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"primary_combined_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"primary_combined_product_id\")]\n        public string? PrimaryCombinedProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许货到付款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_cod_allowed\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_cod_allowed\")]\n        public bool IsCashOnDeliveryAllowed { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送方式 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_option_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_ids\")]\n        public IList<string>? DeliveryOptionIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n        public IList<string>? ManufacturerIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置责任人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n        public IList<string>? ResponsiblePersonIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为二手。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_pre_owned\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_pre_owned\")]\n        public bool? IsPreOwned { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为非卖品。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_not_for_sale\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_not_for_sale\")]\n        public bool? IsNotForSale { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输保险需求类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_insurance_requirement\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_requirement\")]\n        public string? ShippingInsuranceRequirementType { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低订购数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_order_quantity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_order_quantity\")]\n        public int? MinimumOrderQuantity { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductCreateProductResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products 接口的响应。</para>\n    /// </summary>\n    public class ProductCreateProductResponse : TikTokShopResponse<ProductCreateProductResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU\n                    {\n                        public static class Types\n                        {\n                            public class SalesAttribute\n                            {\n                                /// <summary>\n                                /// 获取或设置属性 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string AttributeId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ValueId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置外部 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_sku_id\")]\n                        public string? ExternalSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                        public string? SellerSKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置销售属性列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                        public Types.SalesAttribute[] SalesAttributeList { get; set; } = default!;\n                    }\n\n                    public class Warning\n                    {\n                        /// <summary>\n                        /// 获取或设置警告信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置警告列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warnings\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warnings\")]\n                public Types.Warning[]? WarningList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductDeactivateProductsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/deactivate 接口的请求。</para>\n    /// </summary>\n    public class ProductDeactivateProductsRequest : ProductActivateProductsRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductDeactivateProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/deactivate 接口的响应。</para>\n    /// </summary>\n    public class ProductDeactivateProductsResponse : TikTokShopResponse<ProductActivateProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ProductActivateProductsResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductDeleteProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /product/{version}/products 接口的请求。</para>\n    /// </summary>\n    public class ProductDeleteProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductDeleteProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /product/{version}/products 接口的响应。</para>\n    /// </summary>\n    public class ProductDeleteProductsResponse : TikTokShopResponse<ProductDeleteProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetInventoriesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/inventory/search 接口的请求。</para>\n    /// </summary>\n    public class ProductGetInventoriesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<string>? ProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n        public IList<string>? SKUIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetInventoriesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/inventory/search 接口的响应。</para>\n    /// </summary>\n    public class ProductGetInventoriesResponse : TikTokShopResponse<ProductGetInventoriesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ProductInventory\n                    {\n                        public static class Types\n                        {\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Inventory\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置仓库 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                        public string WarehouseId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置可用库存。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"available_quantity\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"available_quantity\")]\n                                        public int AvailableQuantity { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置已提交库存。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"committed_quantity\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"committed_quantity\")]\n                                        public int CommittedQuantity { get; set; }\n                                    }\n\n                                    public class InventoryDistribution\n                                    {\n                                        public static class Types\n                                        {\n                                            public class InShopInventory\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置库存数量。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                                public int Quantity { get; set; }\n                                            }\n\n                                            public class CampaignInventory : InShopInventory\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置活动名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"campaign_name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"campaign_name\")]\n                                                public string CampaignName { get; set; } = default!;\n                                            }\n\n                                            public class CreatorInventory : InShopInventory\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置创建者名称。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"creator_name\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"creator_name\")]\n                                                public string CreatorName { get; set; } = default!;\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置活动库存列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"campaign_inventory\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"campaign_inventory\")]\n                                        public Types.CampaignInventory[]? CampaignInventoryList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置创建者库存列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"creator_inventory\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"creator_inventory\")]\n                                        public Types.CreatorInventory[]? CreatorInventoryList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置在店库存列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"in_shop_inventory\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"in_shop_inventory\")]\n                                        public Types.InShopInventory? InShopInventory { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"warehouse_inventory\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_inventory\")]\n                                public Types.Inventory[] InventoryList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置总可用库存。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_available_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_available_quantity\")]\n                                public int TotalAvailableQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置总已提交库存。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_committed_quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_committed_quantity\")]\n                                public int TotalCommittedQuantity { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置总可用库存分布信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_available_inventory_distribution\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_available_inventory_distribution\")]\n                                public Types.InventoryDistribution? TotalAvailableInventoryDistribution { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public Types.ProductInventory[] ProductInventoryList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetListingSchemasRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/listing_schemas 接口的请求。</para>\n    /// </summary>\n    public class ProductGetListingSchemasRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n\n        /// <summary>\n        /// 获取或设置分类 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> CategoryIdList { get; set; } = new List<string>();\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置本地化语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? Locale { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetListingSchemasResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/listing_schemas 接口的响应。</para>\n    /// </summary>\n    public class ProductGetListingSchemasResponse : TikTokShopResponse<ProductGetListingSchemasResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class ListingSchema\n                    {\n                        public static class Types\n                        {\n                            public class Field\n                            {\n                                public static class Types\n                                {\n                                    public class Rule\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置规则类型。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"type\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                        public string Type { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置规则值。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                                        public string Value { get; set; } = default!;\n                                    }\n\n                                    public class Option\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置选项 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                        public string OptionId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置选项名称。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                        public string Name { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置字段 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string FieldId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置字段名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置规则列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"rules\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"rules\")]\n                                public Types.Rule[]? RuleList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置选项列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"options\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"options\")]\n                                public Types.Option[]? OptionList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置子字段列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"complex_values\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"complex_values\")]\n                                public Field[]? SubFieldList { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置字段列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fields\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fields\")]\n                        public Types.Field[] FieldList { get; set; } = default!;\n                    }\n\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置分类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string CategoryId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置上架模式列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"listing_schemas\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"listing_schemas\")]\n                public Types.ListingSchema[] ListingSchemaList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetPrerequisitesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/prerequisites 接口的请求。</para>\n    /// </summary>\n    public class ProductGetPrerequisitesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202312</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202312;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetPrerequisitesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/prerequisites 接口的响应。</para>\n    /// </summary>\n    public class ProductGetPrerequisitesResponse : TikTokShopResponse<ProductGetPrerequisitesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class CheckResult\n                    {\n                        /// <summary>\n                        /// 获取或设置检查项。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"check_item\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"check_item\")]\n                        public string CheckItem { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否失败。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_failed\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_failed\")]\n                        public bool IsFailed { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置失败原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"fail_reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"fail_reasons\")]\n                        public string[]? ReasonList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置检查结果列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"check_results\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"check_results\")]\n                public Types.CheckResult[] CheckResultList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/{product_id} 接口的请求。</para>\n    /// </summary>\n    public class ProductGetProductDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置是否返回正在审核中的版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public bool? IsReturnUnderReviewVersion { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductDetailResponse.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/{product_id} 接口的响应。</para>\n    /// </summary>\n    public class ProductGetProductDetailResponse : TikTokShopResponse<ProductGetProductDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片 URI。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                        public string Uri { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"urls\")]\n                        public string[] UrlList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置缩略图 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"thumb_urls\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"thumb_urls\")]\n                        public string[] ThumbUrlList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n                    }\n\n                    public class Video\n                    {\n                        /// <summary>\n                        /// 获取或设置文件 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string FileId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件格式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"format\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                        public string Format { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置文件 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                        public string Url { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置封面图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cover_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cover_url\")]\n                        public string CoverUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置视频宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件大小（单位：字节）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"size\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"size\")]\n                        public int Size { get; set; }\n                    }\n\n                    public class Category\n                    {\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上级分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"parent_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ParentCategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"local_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"local_name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否是子分类。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_leaf\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_leaf\")]\n                        public bool IsLeaf { get; set; }\n                    }\n\n                    public class RecommendedCategory\n                    {\n                        /// <summary>\n                        /// 获取或设置分类 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CategoryId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"local_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"local_name\")]\n                        public string Name { get; set; } = default!;\n                    }\n\n                    public class Brand\n                    {\n                        /// <summary>\n                        /// 获取或设置品牌 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string BrandId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置品牌名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n                    }\n\n                    public class SKU\n                    {\n                        public static class Types\n                        {\n                            public class SalesAttribute\n                            {\n                                public static class Types\n                                {\n                                    public class Image : ProductGetProductDetailResponse.Types.Data.Types.Image\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置属性 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string AttributeId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string? Name { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_id\")]\n                                public string? ValueId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置属性值名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"value_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"value_name\")]\n                                public string? ValueName { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置图片信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_img\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_img\")]\n                                public Types.Image? Image { get; set; }\n                            }\n\n                            public class Price\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置售价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sale_price\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sale_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SalePrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置不含税价格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"tax_exclusive_price\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"tax_exclusive_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal TaxExclusivePrice { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存单价。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"unit_price\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"unit_price\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal UnitPrice { get; set; }\n                            }\n\n                            public class Inventory\n                            {\n                                /// <summary>\n                                /// 获取或设置仓库 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                public string WarehouseId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                public int Quantity { get; set; }\n                            }\n\n                            public class IdentifierCode\n                            {\n                                /// <summary>\n                                /// 获取或设置标识码类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置标识码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                public string Code { get; set; } = default!;\n                            }\n\n                            public class CombinedSKU\n                            {\n                                /// <summary>\n                                /// 获取或设置商品 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                public string ProductId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_count\")]\n                                public int SKUCount { get; set; }\n                            }\n\n                            public class PreSale\n                            {\n                                public static class Types\n                                {\n                                    public class Fulfillment\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置卖家处理周期天数。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"handling_duration_days\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"handling_duration_days\")]\n                                        public int? HandlingDurationDays { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置卖家处理开始时间戳。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"release_date\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"release_date\")]\n                                        public long? ReleaseDataTimestamp { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置预售类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置配送信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"fulfillment_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"fulfillment_type\")]\n                                public Types.Fulfillment? Fulfillment { get; set; }\n                            }\n\n                            public class GlobalListingPolicy\n                            {\n                                public static class Types\n                                {\n                                    public class ReplicateSource\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置店铺 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n                                        public string ShopId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置商品 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                                        public string ProductId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置 SKU ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                        public string SKUId { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置是否价格同步。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price_sync\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price_sync\")]\n                                public bool IsPriceSync { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置库存类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"inventory_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"inventory_type\")]\n                                public string InventoryType { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置副本源信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"replicate_source\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"replicate_source\")]\n                                public Types.ReplicateSource? ReplicateSource { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置外部 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_sku_id\")]\n                        public string? ExternalSKUId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部 URL 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"external_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"external_url\")]\n                        public string[]? ExternalUrlList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置外部编码列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"extra_identifier_codes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"extra_identifier_codes\")]\n                        public string[]? ExternalIdentifierCodeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置销售属性列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_attributes\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_attributes\")]\n                        public Types.SalesAttribute[]? SalesAttributeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置库存列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                        public Types.Inventory[]? InventoryList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置价格信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                        public Types.Price Price { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家 SKU 信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                        public string? SellerSKU { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置产品标识码信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"identifier_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"identifier_code\")]\n                        public Types.IdentifierCode? IdentifierCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置组合 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"combined_skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"combined_skus\")]\n                        public Types.CombinedSKU[]? CombinedSKUList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 单位数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_unit_count\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_unit_count\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal? UnitCount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置预售信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_sale\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_sale\")]\n                        public Types.PreSale? PreSale { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置全球商品上架策略信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"global_listing_policy\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"global_listing_policy\")]\n                        public Types.GlobalListingPolicy? GlobalListingPolicy { get; set; }\n                    }\n\n                    public class PackageDimension\n                    {\n                        /// <summary>\n                        /// 获取或设置长度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"length\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Length { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置宽度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置尺寸单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string Unit { get; set; } = default!;\n                    }\n\n                    public class PackageWeight\n                    {\n                        /// <summary>\n                        /// 获取或设置重量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public decimal Value { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置重量单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string Unit { get; set; } = default!;\n                    }\n\n                    public class Certification\n                    {\n                        public static class Types\n                        {\n                            public class Image : ProductGetProductDetailResponse.Types.Data.Types.Image\n                            {\n                            }\n\n                            public class File\n                            {\n                                /// <summary>\n                                /// 获取或设置文件 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string FileId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置文件名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置文件格式。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"format\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                                public string Format { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置文件 URL 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"urls\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"urls\")]\n                                public string[] UrlList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品认证 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string CertificationId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品认证名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                        public Types.Image[]? ImageList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置文件列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"files\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"files\")]\n                        public Types.File[]? FileList { get; set; }\n                    }\n\n                    public class ProductAttribute\n                    {\n                        public static class Types\n                        {\n                            public class ProductAttributeValue\n                            {\n                                /// <summary>\n                                /// 获取或设置属性值 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string ValueId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置属性值名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                                public string Name { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置属性 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string AttributeId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置属性值列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"values\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"values\")]\n                        public Types.ProductAttributeValue[] ValueList { get; set; } = default!;\n                    }\n\n                    public class SizeChart\n                    {\n                        public static class Types\n                        {\n                            public class Image : ProductGetProductDetailResponse.Types.Data.Types.Image\n                            {\n                            }\n\n                            public class Template\n                            {\n                                /// <summary>\n                                /// 获取或设置模板 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string TemplateId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置图片信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"image\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"image\")]\n                        public Types.Image? Image { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置模板信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template\")]\n                        public Types.Template? Template { get; set; }\n                    }\n\n                    public class DeliveryOption\n                    {\n                        /// <summary>\n                        /// 获取或设置配送方式 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string DeliveryOptionId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置配送方式名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否可用。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_available\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_available\")]\n                        public bool IsAvailable { get; set; }\n                    }\n\n                    public class Manufacturer\n                    {\n                        /// <summary>\n                        /// 获取或设置制造商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string? Name { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置制造商地址。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"address\")]\n                        public string? Address { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系电话。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"phone_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"phone_number\")]\n                        public string? PhoneNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置联系邮箱。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"email\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"email\")]\n                        public string? Email { get; set; }\n                    }\n\n                    public class IntegratedPlatform : ProductSearchProductsResponse.Types.Data.Types.Product.Types.IntegratedPlatform\n                    {\n                    }\n\n                    public class AuditFailedReason\n                    {\n                        /// <summary>\n                        /// 获取或设置上架平台。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"listing_platform\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platform\")]\n                        public string? ListingPlatform { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置位置。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"position\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"position\")]\n                        public string Position { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置拒绝原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reasons\")]\n                        public string[] ReasonList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置修改建议列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"suggestions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"suggestions\")]\n                        public string[] SuggestionList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置外部商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"external_product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"external_product_id\")]\n                public string? ExternalProductId { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品类型列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_types\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_types\")]\n                public string? ProductTypeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品描述。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"description\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                public string Description { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"category_chains\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"category_chains\")]\n                public Types.Category[] CategoryList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置推荐分类列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"recommended_categories\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"recommended_categories\")]\n                public Types.RecommendedCategory[]? RecommendedCategoryList { get; set; }\n\n                /// <summary>\n                /// 获取或设置品牌信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"brand\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"brand\")]\n                public Types.Brand? Brand { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"main_images\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n                public Types.Image[]? MainImageList { get; set; }\n\n                /// <summary>\n                /// 获取或设置视频信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"video\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n                public Types.Video? Video { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置包装尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n                public Types.PackageDimension? PackageDimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置包装重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n                public Types.PackageWeight? PackageWeight { get; set; }\n\n                /// <summary>\n                /// 获取或设置尺码表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n                public Types.SizeChart? SizeChart { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品认证列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"certifications\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n                public Types.Certification[]? CertificationList { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品属性列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n                public Types.ProductAttribute[]? ProductAttributeList { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否允许货到付款。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_cod_allowed\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_cod_allowed\")]\n                public bool IsCashOnDeliveryAllowed { get; set; }\n\n                /// <summary>\n                /// 获取或设置配送方式列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"delivery_options\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"delivery_options\")]\n                public Types.DeliveryOption[]? DeliveryOptionIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置制造商信息。\n                /// </summary>\n                [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n                [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n                public Types.Manufacturer? Manufacturer { get; set; }\n\n                /// <summary>\n                /// 获取或设置制造商 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n                public string[]? ManufacturerIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置责任人 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n                public string[]? ResponsiblePersonIdList { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否为非卖品。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_not_for_sale\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_not_for_sale\")]\n                public bool IsNotForSale { get; set; }\n\n                /// <summary>\n                /// 获取或设置是否为二手。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"is_pre_owned\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"is_pre_owned\")]\n                public bool? IsPreOwned { get; set; }\n\n                /// <summary>\n                /// 获取或设置运输保险需求类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_insurance_requirement\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_requirement\")]\n                public string? ShippingInsuranceRequirementType { get; set; }\n\n                /// <summary>\n                /// 获取或设置最低订购数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"minimum_order_quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"minimum_order_quantity\")]\n                public int? MinimumOrderQuantity { get; set; }\n\n                /// <summary>\n                /// 获取或设置上架平台列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n                public string[]? ListingPlatformList { get; set; }\n\n                /// <summary>\n                /// 获取或设置上架平台列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"integrated_platform_statuses\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"integrated_platform_statuses\")]\n                public Types.IntegratedPlatform[]? IntegratedPlatformList { get; set; }\n\n                /// <summary>\n                /// 获取或设置上架质量等级。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"listing_quality_tier\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"listing_quality_tier\")]\n                public string? ListingQualityTier { get; set; }\n\n                /// <summary>\n                /// 获取或设置审核失败原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"audit_failed_reasons\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"audit_failed_reasons\")]\n                public Types.AuditFailedReason[]? AuditFailedReasonList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductDiagnosesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/diagnoses 接口的请求。</para>\n    /// </summary>\n    public class ProductGetProductDiagnosesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202405</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202405;\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductDiagnosesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/diagnoses 接口的响应。</para>\n    /// </summary>\n    public class ProductGetProductDiagnosesResponse : TikTokShopResponse<ProductGetProductDiagnosesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class Diagnosis\n                            {\n                                public static class Types\n                                {\n                                    public class DiagnosisResult\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置问题代码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                        public string Code { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置如何解决。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"how_to_solve\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"how_to_solve\")]\n                                        public string HowToSolve { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置质量等级。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"quality_tier\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"quality_tier\")]\n                                        public string? QualityTier { get; set; }\n                                    }\n\n                                    public class Suggestion\n                                    {\n                                        public static class Types\n                                        {\n                                            public class SEOWord\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置关键词。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                                public string Text { get; set; } = default!;\n                                            }\n\n                                            public class SmartText\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置智能文本。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                                public string Text { get; set; } = default!;\n                                            }\n\n                                            public class Image\n                                            {\n                                                /// <summary>\n                                                /// 获取或设置图片宽度（单位：像素）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"width\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                                                public int Width { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置图片高度（单位：像素）。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"height\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                                                public int Height { get; set; }\n\n                                                /// <summary>\n                                                /// 获取或设置原始图片 URI。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                                                public string OriginalUri { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置原始图片 URL。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                                public string OriginalUrl { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置优化后图片 URI。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"optimized_uri\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"optimized_uri\")]\n                                                public string OptimizedUri { get; set; } = default!;\n\n                                                /// <summary>\n                                                /// 获取或设置优化后图片 URL。\n                                                /// </summary>\n                                                [Newtonsoft.Json.JsonProperty(\"optimized_url\")]\n                                                [System.Text.Json.Serialization.JsonPropertyName(\"optimized_url\")]\n                                                public string OptimizedUrl { get; set; } = default!;\n                                            }\n                                        }\n\n                                        /// <summary>\n                                        /// 获取或设置 SEO 关键词列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"seo_words\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"seo_words\")]\n                                        public Types.SEOWord[]? SEOWordList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置智能文本列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"smart_texts\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"smart_texts\")]\n                                        public Types.SmartText[]? SmartTextList { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置图片列表。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                                        public Types.Image[]? ImageList { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置字段。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"field\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"field\")]\n                                public string Field { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置诊断结果列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"diagnosis_results\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"diagnosis_results\")]\n                                public Types.DiagnosisResult[] DiagnosisResultList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置修改建议。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"suggestion\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"suggestion\")]\n                                public Types.Suggestion? Suggestion { get; set; }\n                            }\n\n                            public class ListingQuality\n                            {\n                                /// <summary>\n                                /// 获取或设置当前等级。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"current_tier\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"current_tier\")]\n                                public string CurrentTier { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置剩余建议数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"remaining_recommendations\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"remaining_recommendations\")]\n                                public int RemainingRecommendationCount { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置诊断列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"diagnoses\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"diagnoses\")]\n                        public Types.Diagnosis[] DiagnosisList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置上架质量信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"listing_quality\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"listing_quality\")]\n                        public Types.ListingQuality? ListingQuality { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductSEOWordsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/seo_words 接口的请求。</para>\n    /// </summary>\n    public class ProductGetProductSEOWordsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202405</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202405;\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductSEOWordsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/seo_words 接口的响应。</para>\n    /// </summary>\n    public class ProductGetProductSEOWordsResponse : TikTokShopResponse<ProductGetProductSEOWordsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class SEOWord\n                            {\n                                /// <summary>\n                                /// 获取或设置关键词。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"text\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                public string Text { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置 SEO 关键词列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seo_words\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seo_words\")]\n                        public Types.SEOWord[] SEOWordList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductSuggestionsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/suggestions 接口的请求。</para>\n    /// </summary>\n    public class ProductGetProductSuggestionsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202405</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202405;\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string> ProductIdList { get; set; } = new List<string>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductGetProductSuggestionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /product/{version}/products/suggestions 接口的响应。</para>\n    /// </summary>\n    public class ProductGetProductSuggestionsResponse : TikTokShopResponse<ProductGetProductSuggestionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class Suggestion\n                            {\n                                public static class Types\n                                {\n                                    public class Item\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置文本。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                                        public string Text { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置字段。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"field\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"field\")]\n                                public string Field { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置建议项。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"items\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"items\")]\n                                public Types.Item[] Items { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置修改建议列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"suggestions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"suggestions\")]\n                        public Types.Suggestion[] SuggestionList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductRecoverProductsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/recover 接口的请求。</para>\n    /// </summary>\n    public class ProductRecoverProductsRequest : ProductDeleteProductsRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductRecoverProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/recover 接口的响应。</para>\n    /// </summary>\n    public class ProductRecoverProductsResponse : TikTokShopResponse<ProductRecoverProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : ProductDeleteProductsResponse.Types.Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductSearchProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/search 接口的请求。</para>\n    /// </summary>\n    public class ProductSearchProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202312</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202312;\n\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_le\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_le\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_le\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_le\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_version\")]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string? ProductStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置卖家 SKU 信息列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"seller_skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"seller_skus\")]\n        public IList<string>? SellerSKUList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架质量等级。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_quality_tier\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_quality_tier\")]\n        public string? ListingQualityTier { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductSearchProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/search 接口的响应。</para>\n    /// </summary>\n    public class ProductSearchProductsResponse : TikTokShopResponse<ProductSearchProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class RecommendedCategory\n                            {\n                                /// <summary>\n                                /// 获取或设置分类 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string CategoryId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"local_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"local_name\")]\n                                public string Name { get; set; } = default!;\n                            }\n\n                            public class SKU\n                            {\n                                public static class Types\n                                {\n                                    public class Price\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置币种。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                        public string Currency { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置售价。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"sale_price\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"sale_price\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal SalePrice { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置不含税价格。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"tax_exclusive_price\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"tax_exclusive_price\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal TaxExclusivePrice { get; set; }\n                                    }\n\n                                    public class Inventory\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置仓库 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                        public string WarehouseId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置库存数量。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                                        public int Quantity { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置库存列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                                public Types.Inventory[]? InventoryList { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置价格信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                                public Types.Price Price { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n                            }\n\n                            public class IntegratedPlatform\n                            {\n                                /// <summary>\n                                /// 获取或设置平台。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform\")]\n                                public string Platform { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置状态。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"status\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                                public string Status { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置推荐分类列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"recommended_categories\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"recommended_categories\")]\n                        public Types.RecommendedCategory[]? RecommendedCategoryList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置是否为非卖品。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_not_for_sale\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_not_for_sale\")]\n                        public bool IsNotForSale { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置销售地区编码列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sales_regions\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sales_regions\")]\n                        public string[]? SalesRegionCodeList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上架平台列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"integrated_platform_statuses\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"integrated_platform_statuses\")]\n                        public Types.IntegratedPlatform[]? IntegratedPlatformList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置上架质量等级。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"listing_quality_tier\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"listing_quality_tier\")]\n                        public string? ListingQualityTier { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置同步失败原因列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_sync_fail_reasons\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_sync_fail_reasons\")]\n                        public string[]? SyncFailReasonList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductInventoryRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/inventory/update 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateProductInventoryRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class Inventory : ProductCreateProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string SKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置库存列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"inventory\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"inventory\")]\n                public IList<Types.Inventory> InventoryList { get; set; } = new List<Types.Inventory>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductInventoryResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/inventory/update 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateProductInventoryResponse : TikTokShopResponse<ProductUpdateProductInventoryResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                public static class Types\n                                {\n                                    public class ExtraError\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置仓库 ID。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"warehouse_id\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_id\")]\n                                        public string WarehouseId { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置错误码。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                                        public int Code { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置错误信息。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                                        public string Message { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置错误列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"extra_errors\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"extra_errors\")]\n                                public Types.ExtraError[] ExtraErrorList { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductPartiallyRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/partial_edit 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateProductPartiallyRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ProductUpdateProductRequest.Types.Image\n            {\n            }\n\n            public class Video : ProductUpdateProductRequest.Types.Video\n            {\n            }\n\n            public class SKU : ProductUpdateProductRequest.Types.SKU\n            {\n                public static new class Types\n                {\n                    public class SalesAttribute : ProductUpdateProductRequest.Types.SKU.Types.SalesAttribute\n                    {\n                        public static new class Types\n                        {\n                            public class Image : ProductUpdateProductRequest.Types.SKU.Types.SalesAttribute.Types.Image\n                            {\n                            }\n                        }\n                    }\n\n                    public class Price : ProductUpdateProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n\n                    public class Inventory : ProductUpdateProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n\n                    public class IdentifierCode : ProductUpdateProductRequest.Types.SKU.Types.IdentifierCode\n                    {\n                    }\n\n                    public class CombinedSKU : ProductUpdateProductRequest.Types.SKU.Types.CombinedSKU\n                    {\n                    }\n                }\n            }\n\n            public class PackageDimension : ProductUpdateProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductUpdateProductRequest.Types.PackageWeight\n            {\n            }\n\n            public class Certification : ProductUpdateProductRequest.Types.Certification\n            {\n                public static new class Types\n                {\n                    public class Image : ProductUpdateProductRequest.Types.Certification.Types.Image\n                    {\n                    }\n\n                    public class File : ProductUpdateProductRequest.Types.Certification.Types.File\n                    {\n                    }\n                }\n            }\n\n            public class ProductAttribute : ProductUpdateProductRequest.Types.ProductAttribute\n            {\n                public static new class Types\n                {\n                    public class ProductAttributeValue : ProductUpdateProductRequest.Types.ProductAttribute.Types.ProductAttributeValue\n                    {\n                    }\n                }\n            }\n\n            public class SizeChart : ProductUpdateProductRequest.Types.SizeChart\n            {\n                public static new class Types\n                {\n                    public class Image : ProductUpdateProductRequest.Types.SizeChart.Types.Image\n                    {\n                    }\n\n                    public class Template : ProductUpdateProductRequest.Types.SizeChart.Types.Template\n                    {\n                    }\n                }\n            }\n\n            [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n            public class Manufacturer : ProductUpdateProductRequest.Types.Manufacturer\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置外部商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_product_id\")]\n        public string? ExternalProductId { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string? Title { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许货到付款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_cod_allowed\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_cod_allowed\")]\n        public bool IsCashOnDeliveryAllowed { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送方式 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_option_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_ids\")]\n        public IList<string>? DeliveryOptionIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n        public IList<string>? ManufacturerIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置责任人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n        public IList<string>? ResponsiblePersonIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductPartiallyResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/partial_edit 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateProductPartiallyResponse : TikTokShopResponse<ProductUpdateProductPartiallyResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU : ProductUpdateProductResponse.Types.Data.Types.SKU\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductPriceRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/prices/update 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateProductPriceRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                public static class Types\n                {\n                    public class Price : ProductCreateProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string SKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置价格信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"price\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"price\")]\n                public Types.Price Price { get; set; } = new Types.Price();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductPriceResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/products/{product_id}/prices/update 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateProductPriceResponse : TikTokShopResponse<ProductUpdateProductPriceResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /product/{version}/products/{product_id} 接口的请求。</para>\n    /// </summary>\n    public class ProductUpdateProductRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ProductCreateProductRequest.Types.Image\n            {\n            }\n\n            public class Video : ProductCreateProductRequest.Types.Video\n            {\n            }\n\n            public class SKU : ProductCreateProductRequest.Types.SKU\n            {\n                public static new class Types\n                {\n                    public class SalesAttribute : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute\n                    {\n                        public static new class Types\n                        {\n                            public class Image : ProductCreateProductRequest.Types.SKU.Types.SalesAttribute.Types.Image\n                            {\n                            }\n                        }\n                    }\n\n                    public class Price : ProductCreateProductRequest.Types.SKU.Types.Price\n                    {\n                    }\n\n                    public class Inventory : ProductCreateProductRequest.Types.SKU.Types.Inventory\n                    {\n                    }\n\n                    public class IdentifierCode : ProductCreateProductRequest.Types.SKU.Types.IdentifierCode\n                    {\n                    }\n\n                    public class CombinedSKU : ProductCreateProductRequest.Types.SKU.Types.CombinedSKU\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string? SKUId { get; set; }\n            }\n\n            public class PackageDimension : ProductCreateProductRequest.Types.PackageDimension\n            {\n            }\n\n            public class PackageWeight : ProductCreateProductRequest.Types.PackageWeight\n            {\n            }\n\n            public class Certification : ProductCreateProductRequest.Types.Certification\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.Certification.Types.Image\n                    {\n                    }\n\n                    public class File : ProductCreateProductRequest.Types.Certification.Types.File\n                    {\n                    }\n                }\n            }\n\n            public class ProductAttribute : ProductCreateProductRequest.Types.ProductAttribute\n            {\n                public static new class Types\n                {\n                    public class ProductAttributeValue : ProductCreateProductRequest.Types.ProductAttribute.Types.ProductAttributeValue\n                    {\n                    }\n                }\n            }\n\n            public class SizeChart : ProductCreateProductRequest.Types.SizeChart\n            {\n                public static new class Types\n                {\n                    public class Image : ProductCreateProductRequest.Types.SizeChart.Types.Image\n                    {\n                    }\n\n                    public class Template : ProductCreateProductRequest.Types.SizeChart.Types.Template\n                    {\n                    }\n                }\n            }\n\n            [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n            public class Manufacturer : ProductCreateProductRequest.Types.Manufacturer\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置外部商品 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"external_product_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"external_product_id\")]\n        public string? ExternalProductId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品描述。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"description\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n        public string? Description { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类版本。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_version\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_version\")]\n        public string? CategoryVersion { get; set; }\n\n        /// <summary>\n        /// 获取或设置分类 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"category_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"category_id\")]\n        public string CategoryId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置品牌 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"brand_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"brand_id\")]\n        public string? BrandId { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"main_images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"main_images\")]\n        public IList<Types.Image>? MainImageList { get; set; }\n\n        /// <summary>\n        /// 获取或设置视频信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"video\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"video\")]\n        public Types.Video? Video { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n        /// <summary>\n        /// 获取或设置包装尺寸信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_dimensions\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_dimensions\")]\n        public Types.PackageDimension? PackageDimension { get; set; }\n\n        /// <summary>\n        /// 获取或设置包装重量信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"package_weight\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"package_weight\")]\n        public Types.PackageWeight? PackageWeight { get; set; }\n\n        /// <summary>\n        /// 获取或设置尺码表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n        public Types.SizeChart? SizeChart { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品认证列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"certifications\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"certifications\")]\n        public IList<Types.Certification>? CertificationList { get; set; }\n\n        /// <summary>\n        /// 获取或设置商品属性列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_attributes\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_attributes\")]\n        public IList<Types.ProductAttribute>? ProductAttributeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否允许货到付款。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_cod_allowed\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_cod_allowed\")]\n        public bool IsCashOnDeliveryAllowed { get; set; }\n\n        /// <summary>\n        /// 获取或设置配送方式 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"delivery_option_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"delivery_option_ids\")]\n        public IList<string>? DeliveryOptionIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商信息。\n        /// </summary>\n        [Obsolete(\"相关接口或字段于 2024-09-26 下线。\")]\n        [Newtonsoft.Json.JsonProperty(\"manufacturer\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer\")]\n        public Types.Manufacturer? Manufacturer { get; set; }\n\n        /// <summary>\n        /// 获取或设置制造商 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"manufacturer_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"manufacturer_ids\")]\n        public IList<string>? ManufacturerIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置责任人 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"responsible_person_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"responsible_person_ids\")]\n        public IList<string>? ResponsiblePersonIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置是否为二手。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"is_pre_owned\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"is_pre_owned\")]\n        public bool? IsPreOwned { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输保险需求类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipping_insurance_requirement\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_insurance_requirement\")]\n        public string? ShippingInsuranceRequirementType { get; set; }\n\n        /// <summary>\n        /// 获取或设置最低订购数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"minimum_order_quantity\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"minimum_order_quantity\")]\n        public int? MinimumOrderQuantity { get; set; }\n\n        /// <summary>\n        /// 获取或设置上架平台列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"listing_platforms\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"listing_platforms\")]\n        public IList<string>? ListingPlatformList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/ProductUpdateProductResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /product/{version}/products/{product_id} 接口的响应。</para>\n    /// </summary>\n    public class ProductUpdateProductResponse : TikTokShopResponse<ProductUpdateProductResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKU : ProductCreateProductResponse.Types.Data.Types.SKU\n                    {\n                    }\n\n                    public class Warning : ProductCreateProductResponse.Types.Data.Types.Warning\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"product_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"product_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ProductId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public Types.SKU[] SKUList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置警告列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"warnings\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"warnings\")]\n                public Types.Warning[]? WarningList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/SizeChart/ProductSearchSizeChartsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/sizecharts/search 接口的请求。</para>\n    /// </summary>\n    public class ProductSearchSizeChartsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202407</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202407;\n\n        /// <summary>\n        /// 获取或设置尺码表模板 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"ids\")]\n        public IList<string>? SizeChartTemplateIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"keyword\")]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置本地化语种列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public IList<string>? Locales { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/SizeChart/ProductSearchSizeChartsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/sizecharts/search 接口的响应。</para>\n    /// </summary>\n    public class ProductSearchSizeChartsResponse : TikTokShopResponse<ProductSearchSizeChartsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SizeChart\n                    {\n                        public static class Types\n                        {\n                            public class Image\n                            {\n                                /// <summary>\n                                /// 获取或设置本地化语种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"locale\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"locale\")]\n                                public string Locale { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置图片 URI。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                                public string Uri { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置模板 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string TemplateId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置模板名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"template_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"template_name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                        public Types.Image[] ImageList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置尺码表模板列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"size_chart\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"size_chart\")]\n                public Types.SizeChart[] SizeChartList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductOptimizeImagesRequest.cs",
    "content": "using System;\nusing System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/images/optimize 接口的请求。</para>\n    /// </summary>\n    public class ProductOptimizeImagesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                public string Uri { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置优化模式列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"optimization_mode\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"optimization_mode\")]\n                public IList<string> OptimizationModeList { get; set; } = new List<string>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202404</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202404;\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image> ImageList { get; set; } = new List<Types.Image>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductOptimizeImagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/images/optimize 接口的响应。</para>\n    /// </summary>\n    public class ProductOptimizeImagesResponse : TikTokShopResponse<ProductOptimizeImagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n\n                    public class Image\n                    {\n                        /// <summary>\n                        /// 获取或设置图片宽度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片高度（单位：像素）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置原始图片 URI。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"original_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"original_uri\")]\n                        public string OriginalUri { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置原始图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"original_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"original_url\")]\n                        public string OriginalUrl { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优化状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"optimize_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"optimize_status\")]\n                        public string OptimizeStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优化后图片 URI。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"optimized_uri\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"optimized_uri\")]\n                        public string? OptimizedUri { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优化后图片 URL。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"optimized_url\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"optimized_url\")]\n                        public string? OptimizedUrl { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置图片列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"images\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                public Types.Image[] ImageList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductUploadFileRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/files/upload 接口的请求。</para>\n    /// </summary>\n    public class ProductUploadFileRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] FileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? FileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? FileContentType { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductUploadFileResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/files/upload 接口的响应。</para>\n    /// </summary>\n    public class ProductUploadFileResponse : TikTokShopResponse<ProductUploadFileResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置文件 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string FileId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                public string Name { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件格式。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"format\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"format\")]\n                public string Format { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置文件 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductUploadImageRequest.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/images/upload 接口的请求。</para>\n    /// </summary>\n    public class ProductUploadImageRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置图片文件字节数组。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public byte[] ImageFileBytes { get; set; } = Array.Empty<byte>();\n\n        /// <summary>\n        /// 获取或设置图片文件名。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileName { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片文件 MIME 类型。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? ImageFileContentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置使用场景。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? UseCase { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Product/Upload/ProductUploadImageResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /product/{version}/images/upload 接口的响应。</para>\n    /// </summary>\n    public class ProductUploadImageResponse : TikTokShopResponse<ProductUploadImageResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"uri\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"uri\")]\n                public string Uri { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片 URL。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"url\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                public string Url { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int Height { get; set; }\n\n                /// <summary>\n                /// 获取或设置使用场景。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"use_case\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"use_case\")]\n                public string? UseCase { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionCreateActivityRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities 接口的请求。</para>\n    /// </summary>\n    public class PromotionCreateActivityRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_type\")]\n        public string ActivityType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_level\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_level\")]\n        public string ProductLevel { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"begin_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"begin_time\")]\n        public long BeginTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置活动结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionCreateActivityResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities 接口的响应。</para>\n    /// </summary>\n    public class PromotionCreateActivityResponse : TikTokShopResponse<PromotionCreateActivityResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置创建时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                public long CreateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionDeactivateActivityRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities/{activity_id}/deactivate 接口的请求。</para>\n    /// </summary>\n    public class PromotionDeactivateActivityRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionDeactivateActivityResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities/{activity_id}/deactivate 接口的响应。</para>\n    /// </summary>\n    public class PromotionDeactivateActivityResponse : TikTokShopResponse<PromotionDeactivateActivityResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionDeleteActivityProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /promotion/{version}/activities/{activity_id}/products 接口的请求。</para>\n    /// </summary>\n    public class PromotionDeleteActivityProductsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n        public IList<string>? ProductIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"sku_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"sku_ids\")]\n        public IList<string>? SKUIdList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionDeleteActivityProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [DELETE] /promotion/{version}/activities/{activity_id}/products 接口的响应。</para>\n    /// </summary>\n    public class PromotionDeleteActivityProductsResponse : TikTokShopResponse<PromotionDeleteActivityProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionGetActivityDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /promotion/{version}/activities/{activity_id} 接口的请求。</para>\n    /// </summary>\n    public class PromotionGetActivityDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ActivityId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionGetActivityDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /promotion/{version}/activities/{activity_id} 接口的响应。</para>\n    /// </summary>\n    public class PromotionGetActivityDetailResponse : TikTokShopResponse<PromotionGetActivityDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data : PromotionSearchActivitiesResponse.Types.Data.Types.Activity\n            {\n                public static class Types\n                {\n                    public class Product\n                    {\n                        public static class Types\n                        {\n                            public class Price\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置价格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                                public decimal Amount { get; set; }\n                            }\n\n                            public class SKU\n                            {\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置数量限制。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity_limit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity_limit\")]\n                                public int QuantityLimit { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置单个用户数量限制。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"quantity_per_user\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"quantity_per_user\")]\n                                public int QuantityPerUser { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置活动折扣（单位：百分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                                public int? Discount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置活动价信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"activity_price\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"activity_price\")]\n                                public Types.Price? Price { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置商品 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ProductId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置数量限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity_limit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity_limit\")]\n                        public int QuantityLimit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单个用户数量限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity_per_user\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity_per_user\")]\n                        public int QuantityPerUser { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动折扣（单位：百分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                        public int? Discount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动价信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_price\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_price\")]\n                        public Types.Price? Price { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置 SKU 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"skus\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                        public Types.SKU[] SKUList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public override string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置商品列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"products\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n                public Types.Product[] ProductList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionSearchActivitiesRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities/search 接口的请求。</para>\n    /// </summary>\n    public class PromotionSearchActivitiesRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_title\")]\n        public string? ActivityTitle { get; set; }\n\n        /// <summary>\n        /// 获取或设置活动状态。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public string? ActivityStatus { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_size\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_size\")]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"page_token\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"page_token\")]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionSearchActivitiesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/activities/search 接口的响应。</para>\n    /// </summary>\n    public class PromotionSearchActivitiesResponse : TikTokShopResponse<PromotionSearchActivitiesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Activity\n                    {\n                        /// <summary>\n                        /// 获取或设置活动 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public virtual string ActivityId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动标题。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_type\")]\n                        public string ActivityType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_level\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_level\")]\n                        public string ProductLevel { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置活动开始时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"begin_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"begin_time\")]\n                        public long BeginTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动结束时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                        public long EndTimestamp { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置活动列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activities\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activities\")]\n                public Types.Activity[] ActivityList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionUpdateActivityProductsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /promotion/{version}/activities/{activity_id}/products 接口的请求。</para>\n    /// </summary>\n    public class PromotionUpdateActivityProductsRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Product\n            {\n                public static class Types\n                {\n                    public class SKU\n                    {\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置数量限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity_limit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity_limit\")]\n                        public int QuantityLimit { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单个用户数量限制。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity_per_user\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity_per_user\")]\n                        public int QuantityPerUser { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动折扣（单位：百分数）。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                        public int? Discount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置活动价。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"activity_price_amount\")]\n                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"activity_price_amount\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                        public decimal? PriceAmount { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置商品 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string ProductId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置数量限制。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity_limit\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity_limit\")]\n                public int QuantityLimit { get; set; }\n\n                /// <summary>\n                /// 获取或设置单个用户数量限制。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity_per_user\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity_per_user\")]\n                public int QuantityPerUser { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动折扣（单位：百分数）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"discount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                public int? Discount { get; set; }\n\n                /// <summary>\n                /// 获取或设置活动价。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_price_amount\")]\n                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_price_amount\")]\n                [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n                public decimal? PriceAmount { get; set; }\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置商品列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"products\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"products\")]\n        public IList<Types.Product> ProductList { get; set; } = new List<Types.Product>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionUpdateActivityProductsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /promotion/{version}/activities/{activity_id}/products 接口的响应。</para>\n    /// </summary>\n    public class PromotionUpdateActivityProductsResponse : TikTokShopResponse<PromotionUpdateActivityProductsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                public string Status { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n\n                /// <summary>\n                /// 获取或设置商品数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int ProductCount { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionUpdateActivityRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /promotion/{version}/activities/{activity_id} 接口的请求。</para>\n    /// </summary>\n    public class PromotionUpdateActivityRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置活动 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ActivityId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动标题。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n        public string Title { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置活动开始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"begin_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"begin_time\")]\n        public long BeginTimestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置活动结束时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"end_time\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n        public long EndTimestamp { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Activity/PromotionUpdateActivityResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [PUT] /promotion/{version}/activities/{activity_id} 接口的响应。</para>\n    /// </summary>\n    public class PromotionUpdateActivityResponse : TikTokShopResponse<PromotionUpdateActivityResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置活动 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"activity_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ActivityId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置活动标题。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"title\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                public string Title { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置更新时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                public long UpdateTimestamp { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Coupon/PromotionGetCouponDetailRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /promotion/{version}/coupons/{coupon_id} 接口的请求。</para>\n    /// </summary>\n    public class PromotionGetCouponDetailRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202406</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202406;\n\n        /// <summary>\n        /// 获取或设置优惠券 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CouponId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Coupon/PromotionGetCouponDetailResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /promotion/{version}/coupons/{coupon_id} 接口的响应。</para>\n    /// </summary>\n    public class PromotionGetCouponDetailResponse : TikTokShopResponse<PromotionGetCouponDetailResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Coupon : PromotionSearchCouponsResponse.Types.Data.Types.Coupon\n                    {\n                        public static new class Types\n                        {\n                            public class UsageStatistics\n                            {\n                                /// <summary>\n                                /// 获取或设置已领取数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"claimed_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"claimed_count\")]\n                                public int ClaimedCount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置已使用数量。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"redeemed_count\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"redeemed_count\")]\n                                public int RedeemedCount { get; set; }\n                            }\n\n                            public class LiveTask\n                            {\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置最低观看时长（单位：秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"min_watch_time\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"min_watch_time\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public int? MinWatchTime { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置展示渠道列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"display_channels\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"display_channels\")]\n                        public string[] DisplayChannelList { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置使用统计信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"usage_stats\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"usage_stats\")]\n                        public Types.UsageStatistics UsageStatistics { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置适用商品 ID 列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_ids\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_ids\")]\n                        public string[]? ProductIdList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家自定义条款。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_tnc\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_tnc\")]\n                        public string? SellerTNC { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置直播任务列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"live_tasks\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"live_tasks\")]\n                        public Types.LiveTask[]? LiveTaskList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置优惠券信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupon\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupon\")]\n                public Types.Coupon Coupon { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Coupon/PromotionSearchCouponsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/coupons/search 接口的请求。</para>\n    /// </summary>\n    public class PromotionSearchCouponsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202406</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public override int ApiVersion { get; set; } = 202406;\n\n        /// <summary>\n        /// 获取或设置关键字。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"title_keyword\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"title_keyword\")]\n        public string? Keyword { get; set; }\n\n        /// <summary>\n        /// 获取或设置优惠券状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n        public IList<string>? CouponStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置展示方式列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"display_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"display_type\")]\n        public IList<string>? DisplayTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// <para>默认值：10</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int PageSize { get; set; } = 10;\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Promotion/Coupon/PromotionSearchCouponsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /promotion/{version}/coupons/search 接口的响应。</para>\n    /// </summary>\n    public class PromotionSearchCouponsResponse : TikTokShopResponse<PromotionSearchCouponsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Coupon\n                    {\n                        public static class Types\n                        {\n                            public class ClaimDuration\n                            {\n                                /// <summary>\n                                /// 获取或设置开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                                public long StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                                public long EndTimestamp { get; set; }\n                            }\n\n                            public class RedemptionDuration\n                            {\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置开始时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"start_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"start_time\")]\n                                public long? StartTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置结束时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"end_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"end_time\")]\n                                public long? EndTimestamp { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置相对时间（单位：天）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"relative_time\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"relative_time\")]\n                                public int? RelativeTimeDays { get; set; }\n                            }\n\n                            public class UsageLimitation\n                            {\n                                /// <summary>\n                                /// 获取或设置单个用户领取上限。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"single_buyer_claim_limit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"single_buyer_claim_limit\")]\n                                public int? SingleBuyerClaimLimit { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置领取上限。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"total_claim_limit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"total_claim_limit\")]\n                                public int? TotalClaimLimit { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置使用上限。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"redemption_limit\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"redemption_limit\")]\n                                public int? TotalRedemptionLimit { get; set; }\n                            }\n\n                            public class Discount\n                            {\n                                public static class Types\n                                {\n                                    public class ReductionAmount\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置金额。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal Amount { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置币种。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                        public string Currency { get; set; } = default!;\n                                    }\n\n                                    public class MaxDiscount\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置金额。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal Amount { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置币种。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                        public string Currency { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置减免金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"reduction_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"reduction_amount\")]\n                                public Types.ReductionAmount? ReductionAmount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置折扣比例（单位：百分数）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"percentage\")]\n                                [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"percentage\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal? Percentage { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置最高折扣信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"max_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"max_discount\")]\n                                public Types.MaxDiscount? MaxDiscount { get; set; }\n                            }\n\n                            public class Threshold\n                            {\n                                public static class Types\n                                {\n                                    public class MinSpend\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置金额。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberReadOnlyConverter))]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                        public decimal Amount { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置币种。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                        public string Currency { get; set; } = default!;\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n                                public string Type { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置最低消费信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"min_spend\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"min_spend\")]\n                                public Types.MinSpend? MinSpend { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置优惠券 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CouponId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优惠券名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"title\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"title\")]\n                        public string Title { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优惠券状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置展示方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"display_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"display_type\")]\n                        public string DisplayType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置领取期限信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"claim_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"claim_duration\")]\n                        public Types.ClaimDuration ClaimDuration { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置使用期限信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"redemption_duration\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"redemption_duration\")]\n                        public Types.RedemptionDuration RedemptionDuration { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置优惠码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"promo_code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"promo_code\")]\n                        public string? PromoCode { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置目标买家细分类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"target_buyer_segment\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"target_buyer_segment\")]\n                        public string? TargetBuyerSegment { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置使用限制信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"usage_limits\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"usage_limits\")]\n                        public Types.UsageLimitation? UsageLimitation { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount\")]\n                        public Types.Discount Discount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置门槛信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"threshold\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"threshold\")]\n                        public Types.Threshold Threshold { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置商品范围。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"product_scope\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"product_scope\")]\n                        public string? ProductScope { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建来源。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"creation_source\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"creation_source\")]\n                        public string? CreationSource { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置优惠券列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"coupons\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"coupons\")]\n                public Types.Coupon[] CouponList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundApproveCancellationRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/{cancel_id}/approve 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundApproveCancellationRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置取消 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CancelId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundApproveCancellationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/{cancel_id}/approve 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundApproveCancellationResponse : TikTokShopResponse<ReturnRefundApproveCancellationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundCreateCancellationRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundCreateCancellationRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU\n            {\n                /// <summary>\n                /// 获取或设置 SKU ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                public string SKUId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                public int Quantity { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU>? SKUList { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n        public string CancelReason { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundCreateCancellationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundCreateCancellationResponse : TikTokShopResponse<ReturnRefundCreateCancellationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置取消 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string CancelId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置取消状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancel_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_status\")]\n                public string CancelStatus { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundRejectCancellationRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/{cancel_id}/reject 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundRejectCancellationRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image\n            {\n                /// <summary>\n                /// 获取或设置图片 URI。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"image_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"image_id\")]\n                public string Uri { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置图片 MIME 类型。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"mime_type\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"mime_type\")]\n                public string? MimeType { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片宽度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"width\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                public int? Width { get; set; }\n\n                /// <summary>\n                /// 获取或设置图片高度（单位：像素）。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"height\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                public int? Height { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置取消 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string CancelId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拒绝原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n        public string RejectReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n        public string? Comment { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image>? ImageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundRejectCancellationResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/{cancel_id}/reject 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundRejectCancellationResponse : TikTokShopResponse<ReturnRefundRejectCancellationResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundSearchCancellationsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/search 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundSearchCancellationsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<string>? OrderIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置买家用户 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_user_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_user_ids\")]\n        public IList<string>? BuyerUserIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_ids\")]\n        public IList<string>? CancelIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_types\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_types\")]\n        public IList<string>? CancelTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置取消状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"cancel_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_status\")]\n        public IList<string>? CancelStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_lt\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_lt\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"locale\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"locale\")]\n        public string? Locale { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Cancellations/ReturnRefundSearchCancellationsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/cancellations/search 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundSearchCancellationsResponse : TikTokShopResponse<ReturnRefundSearchCancellationsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Cancellation\n                    {\n                        public static class Types\n                        {\n                            public class RefundAmount\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款总金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_total\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_total\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundTotal { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款小计金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_subtotal\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_subtotal\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundSubtotal { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundShippingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退税金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_tax\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_tax\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RefundTax { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置零售配送费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"retail_delivery_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal RetailDeliveryFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家服务费。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"buyer_service_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal BuyerServiceFee { get; set; }\n                            }\n\n                            public class SellerActionResponse\n                            {\n                                /// <summary>\n                                /// 获取或设置操作类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"action\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"action\")]\n                                public string Action { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置截止时间戳。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"deadline\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"deadline\")]\n                                public long DeadlineTimestamp { get; set; }\n                            }\n\n                            public class CancelLineItem\n                            {\n                                public static class Types\n                                {\n                                    public class Image\n                                    {\n                                        /// <summary>\n                                        /// 获取或设置图片 URL。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"url\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                        public string Url { get; set; } = default!;\n\n                                        /// <summary>\n                                        /// 获取或设置图片宽度（单位：像素）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                                        public int Width { get; set; }\n\n                                        /// <summary>\n                                        /// 获取或设置图片高度（单位：像素）。\n                                        /// </summary>\n                                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                                        public int Height { get; set; }\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置取消订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cancel_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cancel_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string CancelLineItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OrderlLineItemId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品图片信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_image\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_image\")]\n                                public Types.Image? ProductImage { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public RefundAmount RefundAmount { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置取消 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string CancelId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason\")]\n                        public string CancelReason { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消原因文本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_reason_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_reason_text\")]\n                        public string CancelReasonText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消发起人。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                        public string CancelRole { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                        public Types.RefundAmount RefundAmount { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置卖家后续操作列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_next_action_response\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_next_action_response\")]\n                        public Types.SellerActionResponse[]? SellerNextActionResponseList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置取消订单行列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"cancel_line_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"cancel_line_items\")]\n                        public Types.CancelLineItem[]? CancelLineItemList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置取消列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"cancellations\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"cancellations\")]\n                public Types.Cancellation[] CancellationList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Orders/ReturnRefundGetOrderAftersaleEligibilityRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/orders/{order_id}/aftersale_eligibility 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundGetOrderAftersaleEligibilityRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string OrderId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Orders/ReturnRefundGetOrderAftersaleEligibilityResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/orders/{order_id}/aftersale_eligibility 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundGetOrderAftersaleEligibilityResponse : TikTokShopResponse<ReturnRefundGetOrderAftersaleEligibilityResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class SKUEligibility\n                    {\n                        public static class Types\n                        {\n                            public class LineItemEligibility\n                            {\n                                /// <summary>\n                                /// 获取或设置订单行 ID 列表。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_line_items_ids\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_items_ids\")]\n                                public string[] OrderLineItemIdList { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置是否有资格。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"eligible\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"eligible\")]\n                                public bool IsEligible { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置无资格原因代码。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ineligible_code\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ineligible_code\")]\n                                public int? IneligibleCode { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置无资格原因。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"ineligible_reason\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"ineligible_reason\")]\n                                public string? IneligibleReason { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置申请类型。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"request_type\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"request_type\")]\n                                public string? RequestType { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                        public string SKUId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置资格列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"line_item_eligibility\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"line_item_eligibility\")]\n                        public Types.LineItemEligibility[] LineItemEligibilityList { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置资格列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"sku_eligibility\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"sku_eligibility\")]\n                public Types.SKUEligibility[] SKUEligibilityList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Refunds/ReturnRefundCalculateRefundRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/refunds/calculate 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundCalculateRefundRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU : ReturnRefundCreateReturnRequest.Types.SKU\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU>? SKUList { get; set; }\n\n        /// <summary>\n        /// 获取或设置申请原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reason_name\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reason_name\")]\n        public string RequestReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置申请类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_type\")]\n        public string RequestType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置运输类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipment_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipment_type\")]\n        public string? ShipmentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置交接方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n        public string? HandoverMethod { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Refunds/ReturnRefundCalculateRefundResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/refunds/calculate 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundCalculateRefundResponse : TikTokShopResponse<ReturnRefundCalculateRefundResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class RefundAmount : ReturnRefundSearchReturnsResponse.Types.Data.Types.Return.Types.RefundAmount\n                    {\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退款金额信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"order_refund_amount\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"order_refund_amount\")]\n                public Types.RefundAmount RefundAmount { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/ReturnRefundGetRejectReasonsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/reject_reasons 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundGetRejectReasonsRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/ReturnRefundGetRejectReasonsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/reject_reasons 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundGetRejectReasonsResponse : TikTokShopResponse<ReturnRefundGetRejectReasonsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Reason\n                    {\n                        /// <summary>\n                        /// 获取或设置取消原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"name\")]\n                        public string Name { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置取消原因文本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"text\")]\n                        public string Text { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置原因列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"reasons\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"reasons\")]\n                public Types.Reason[] ReasonList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundApproveReturnRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/{return_id}/approve 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundApproveReturnRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置退货 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ReturnId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置决定。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"decision\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n        public string Decision { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置买家是否保留货物。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_keep_item\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_keep_item\")]\n        public bool? IsBuyerKeepItem { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundApproveReturnResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/{return_id}/approve 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundApproveReturnResponse : TikTokShopResponse<ReturnRefundApproveReturnResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundCreateReturnRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundCreateReturnRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class SKU : ReturnRefundCreateCancellationRequest.Types.SKU\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置订单 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n        public string OrderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置订单行 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_line_item_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_ids\")]\n        public IList<string>? OrderLineItemIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置 SKU 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"skus\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n        public IList<Types.SKU>? SKUList { get; set; }\n\n        /// <summary>\n        /// 获取或设置退货原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_reason\")]\n        public string ReturnReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置退货类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_type\")]\n        public string ReturnType { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置币种。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"currency\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n        public string? Currency { get; set; }\n\n        /// <summary>\n        /// 获取或设置退款金额。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"refund_total\")]\n        [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.Common.TextualNumberConverter))]\n        [System.Text.Json.Serialization.JsonPropertyName(\"refund_total\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)]\n        public decimal? RefundTotal { get; set; }\n\n        /// <summary>\n        /// 获取或设置运输类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shipment_type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shipment_type\")]\n        public string? ShipmentType { get; set; }\n\n        /// <summary>\n        /// 获取或设置交接方式。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n        public string? HandoverMethod { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundCreateReturnResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundCreateReturnResponse : TikTokShopResponse<ReturnRefundCreateReturnResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置退货 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_id\")]\n                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                public string ReturnId { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置退货状态。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_status\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n                public string ReturnStatus { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundGetReturnRecordsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/returns/{return_id}/records 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundGetReturnRecordsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置退货 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ReturnId { get; set; } = string.Empty;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundGetReturnRecordsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /return_refund/{version}/returns/{return_id}/records 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundGetReturnRecordsResponse : TikTokShopResponse<ReturnRefundGetReturnRecordsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Record\n                    {\n                        public static class Types\n                        {\n                            public class Image : ReturnRefundSearchReturnsResponse.Types.Data.Types.Return.Types.ReturnLineItem.Types.Image\n                            {\n                            }\n\n                            public class Video\n                            {\n                                /// <summary>\n                                /// 获取或设置视频 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"url\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"url\")]\n                                public string Url { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置封面图片 URL。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"cover\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"cover\")]\n                                public string CoverUrl { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置视频宽度（单位：像素）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"width\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                                public int Width { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频高度（单位：像素）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"height\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                                public int Height { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置视频时长（单位：毫秒）。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"duration_millis\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"duration_millis\")]\n                                public int Duration { get; set; }\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置记录类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"event\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"event\")]\n                        public string Event { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置发起角色。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                        public string Role { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置描述。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"description\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"description\")]\n                        public string Description { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置原因文本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"reason_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"reason_text\")]\n                        public string ReasonText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置备注。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"note\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"note\")]\n                        public string? Notes { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置图片列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"images\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n                        public Types.Image[]? ImageList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置视频列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"videos\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"videos\")]\n                        public Types.Video[]? VideoList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置记录列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"records\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"records\")]\n                public Types.Record[] RecordList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundRejectReturnRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/{return_id}/reject 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundRejectReturnRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Image : ReturnRefundRejectCancellationRequest.Types.Image\n            {\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置退货 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string ReturnId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置决定。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"decision\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"decision\")]\n        public string Decision { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置拒绝原因。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"reject_reason\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"reject_reason\")]\n        public string RejectReason { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置评论内容。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"comment\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"comment\")]\n        public string? Comment { get; set; }\n\n        /// <summary>\n        /// 获取或设置图片列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"images\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"images\")]\n        public IList<Types.Image>? ImageList { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundRejectReturnResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/{return_id}/reject 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundRejectReturnResponse : TikTokShopResponse<ReturnRefundRejectReturnResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundSearchReturnsRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/search 接口的请求。</para>\n    /// </summary>\n    public class ReturnRefundSearchReturnsRequest : TikTokShopRequest\n    {\n        /// <summary>\n        /// 获取或设置订单 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"order_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"order_ids\")]\n        public IList<string>? OrderIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置买家用户 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"buyer_user_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_user_ids\")]\n        public IList<string>? BuyerUserIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置退货 ID 列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_ids\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_ids\")]\n        public IList<string>? ReturnIdList { get; set; }\n\n        /// <summary>\n        /// 获取或设置退货类型列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_types\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_types\")]\n        public IList<string>? ReturnTypeList { get; set; }\n\n        /// <summary>\n        /// 获取或设置退货状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"return_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n        public IList<string>? ReturnStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置仲裁状态列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"arbitration_status\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"arbitration_status\")]\n        public IList<string>? ArbitrationStatusList { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_ge\")]\n        public long? CreateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置创建时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"create_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"create_time_lt\")]\n        public long? CreateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围起始时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_ge\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_ge\")]\n        public long? UpdateTimestampGreaterThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置更新时间范围截止时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"update_time_lt\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"update_time_lt\")]\n        public long? UpdateTimestampLessThan { get; set; }\n\n        /// <summary>\n        /// 获取或设置语种。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"locale\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"locale\")]\n        public string? Locale { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页每页数量。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public int? PageSize { get; set; }\n\n        /// <summary>\n        /// 获取或设置分页令牌。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public string? PageToken { get; set; }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/ReturnRefund/Returns/ReturnRefundSearchReturnsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /return_refund/{version}/returns/search 接口的响应。</para>\n    /// </summary>\n    public class ReturnRefundSearchReturnsResponse : TikTokShopResponse<ReturnRefundSearchReturnsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Return\n                    {\n                        public static class Types\n                        {\n                            public class RefundAmount : ReturnRefundSearchCancellationsResponse.Types.Data.Types.Cancellation.Types.RefundAmount\n                            {\n                            }\n\n                            public class PartialRefundAmount\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置退款金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"amount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal Amount { get; set; }\n                            }\n\n                            public class DiscountAmount\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ProductPlatformDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ProductSellerDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输费用平台优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_platform_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeePlatformDiscount { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置运输费用卖家优惠金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"shipping_fee_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_seller_discount\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal ShippingFeeSellerDiscount { get; set; }\n                            }\n\n                            public class ShippingFeeAmount\n                            {\n                                /// <summary>\n                                /// 获取或设置币种。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"currency\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"currency\")]\n                                public string Currency { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置平台承担的退款运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"platform_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"platform_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal PlatformPaidReturnShippingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置卖家承担的退款运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal SellerPaidReturnShippingFee { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置买家承担的退款运费金额。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"buyer_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"buyer_paid_return_shipping_fee\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.TextualNumberReadOnlyConverter))]\n                                public decimal BuyerPaidReturnShippingFee { get; set; }\n                            }\n\n                            public class SellerActionResponse : ReturnRefundSearchCancellationsResponse.Types.Data.Types.Cancellation.Types.SellerActionResponse\n                            {\n                            }\n\n                            public class ReturnWarehouseAddress\n                            {\n                                /// <summary>\n                                /// 获取或设置完整地址。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"full_address\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"full_address\")]\n                                public string FullAddress { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置地址行 1。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line1\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line1\")]\n                                public string? AddressLine1 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 2。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line2\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line2\")]\n                                public string? AddressLine2 { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置地址行 3。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"address_line3\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"address_line3\")]\n                                public string? AddressLine3 { get; set; }\n                            }\n\n                            public class ReturnLineItem\n                            {\n                                public static class Types\n                                {\n                                    public class Image : ReturnRefundSearchCancellationsResponse.Types.Data.Types.Cancellation.Types.CancelLineItem.Types.Image\n                                    {\n                                    }\n                                }\n\n                                /// <summary>\n                                /// 获取或设置退货订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"return_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"return_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string ReturnLineItemId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置订单行 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"order_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"order_line_item_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string? OrderlLineItemId { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置商品名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_name\")]\n                                public string ProductName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置商品图片信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"product_image\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"product_image\")]\n                                public Types.Image? ProductImage { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置 SKU ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_id\")]\n                                public string SKUId { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置 SKU 名称。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"sku_name\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"sku_name\")]\n                                public string SKUName { get; set; } = default!;\n\n                                /// <summary>\n                                /// 获取或设置卖家 SKU 信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"seller_sku\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"seller_sku\")]\n                                public string? SellerSKU { get; set; }\n\n                                /// <summary>\n                                /// 获取或设置退款金额信息。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                                public RefundAmount RefundAmount { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置退货 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ReturnId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置订单 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"order_id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string OrderId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_type\")]\n                        public string Type { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_status\")]\n                        public string Status { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货原因。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_reason\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_reason\")]\n                        public string ReturnReason { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货原因文本。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_reason_text\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_reason_text\")]\n                        public string ReturnReasonText { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置仲裁状态。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"arbitration_status\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"arbitration_status\")]\n                        public string ArbitrationStatus { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货发起人。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"role\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"role\")]\n                        public string ReturnRole { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置创建时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"create_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"create_time\")]\n                        public long CreateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置更新时间戳。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"update_time\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"update_time\")]\n                        public long UpdateTimestamp { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退货方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_method\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_method\")]\n                        public string? ReturnMethod { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退货运输文件类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_shipping_document_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_shipping_document_type\")]\n                        public string? ReturnShippingDocumentType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运输类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipment_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipment_type\")]\n                        public string ShipmentType { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置交接方式。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"handover_method\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"handover_method\")]\n                        public string HandoverMethod { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置退货物流单号。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_tracking_number\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_tracking_number\")]\n                        public string? ReturnTrackingNumber { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退货运输服务商 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_provider_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_provider_id\")]\n                        public string? ReturnProviderId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退货运输服务商名称。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_provider_name\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_provider_name\")]\n                        public string? ReturnProviderName { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置前退货 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"pre_return_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"pre_return_id\")]\n                        public string? PreviousReturnId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置后退货 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"next_return_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"next_return_id\")]\n                        public string? NextReturnId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置是否合并退货。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"is_combined_return\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"is_combined_return\")]\n                        public bool? IsCombinedReturn { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置合并退货 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"combined_return_id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"combined_return_id\")]\n                        public string? CombinedReturnId { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家是否可保留货物。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"can_buyer_keep_item\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"can_buyer_keep_item\")]\n                        public bool CanBuyerKeepItem { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家建议退货类型。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_proposed_return_type\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_proposed_return_type\")]\n                        public string? SellerProposedReturnType { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置买家是否拒绝部分退款。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"buyer_rejected_partial_refund\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"buyer_rejected_partial_refund\")]\n                        public bool? IsBuyerRejectedPartialRefund { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退款金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"refund_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"refund_amount\")]\n                        public Types.RefundAmount? RefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置部分退款金额信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"partial_refund\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"partial_refund\")]\n                        public Types.PartialRefundAmount? PartialRefundAmount { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置优惠金额信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"discount_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"discount_amount\")]\n                        public Types.DiscountAmount[]? DiscountAmountList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置运费金额信息列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"shipping_fee_amount\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"shipping_fee_amount\")]\n                        public Types.ShippingFeeAmount[]? ShippingFeeAmountList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置卖家后续操作列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"seller_next_action_response\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"seller_next_action_response\")]\n                        public Types.SellerActionResponse[]? SellerNextActionResponseList { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置退货仓库地址信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_warehouse_address\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_warehouse_address\")]\n                        public Types.ReturnWarehouseAddress? ReturnWarehouseAddress { get; set; } \n\n                        /// <summary>\n                        /// 获取或设置退货订单行列表。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"return_line_items\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"return_line_items\")]\n                        public Types.ReturnLineItem[]? ReturnLineItemList { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置退货列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"return_orders\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"return_orders\")]\n                public Types.Return[] ReturnList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置总数量。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"total_count\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"total_count\")]\n                public int TotalCount { get; set; }\n\n                /// <summary>\n                /// 获取或设置下一页分页令牌。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"next_page_token\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"next_page_token\")]\n                public string? NextPageToken { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Seller/SellerGetPermissionsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /seller/{version}/permissions 接口的请求。</para>\n    /// </summary>\n    public class SellerGetPermissionsRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Seller/SellerGetPermissionsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /seller/{version}/permissions 接口的响应。</para>\n    /// </summary>\n    public class SellerGetPermissionsResponse : TikTokShopResponse<SellerGetPermissionsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                /// <summary>\n                /// 获取或设置权限列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"permissions\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"permissions\")]\n                public string[] PermissionList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Seller/SellerGetShopsRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /seller/{version}/shops 接口的请求。</para>\n    /// </summary>\n    public class SellerGetShopsRequest : TikTokShopRequest\n    {\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/Seller/SellerGetShopsResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [GET] /seller/{version}/shops 接口的响应。</para>\n    /// </summary>\n    public class SellerGetShopsResponse : TikTokShopResponse<SellerGetShopsResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Shop\n                    {\n                        /// <summary>\n                        /// 获取或设置店铺 ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                        public string ShopId { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置所在地。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"region\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"region\")]\n                        public string Region { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置店铺列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shops\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shops\")]\n                public Types.Shop[] ShopList { get; set; } = default!;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/SupplyChain/SupplyChainSyncPackagesRequest.cs",
    "content": "using System.Collections.Generic;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /supply_chain/{version}/packages/sync 接口的请求。</para>\n    /// </summary>\n    public class SupplyChainSyncPackagesRequest : TikTokShopRequest\n    {\n        public static class Types\n        {\n            public class Package\n            {\n                public static class Types\n                {\n                    public class Dimension\n                    {\n                        /// <summary>\n                        /// 获取或设置长度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"length\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"length\")]\n                        public int? Length { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置宽度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"width\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"width\")]\n                        public int? Width { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置高度。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"height\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"height\")]\n                        public int? Height { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string? Unit { get; set; }\n                    }\n\n                    public class Weight\n                    {\n                        /// <summary>\n                        /// 获取或设置重量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"value\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"value\")]\n                        public int? Value { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置单位。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"unit\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"unit\")]\n                        public string? Unit { get; set; }\n                    }\n\n                    public class SKU\n                    {\n                        /// <summary>\n                        /// 获取或设置 SKU ID。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"id\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                        public string SKUId { get; set; } = string.Empty;\n\n                        /// <summary>\n                        /// 获取或设置数量。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"quantity\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"quantity\")]\n                        public int Quantity { get; set; }\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置包裹 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"id\")]\n                public string PackageId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置 SKU 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"skus\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"skus\")]\n                public IList<Types.SKU> SKUList { get; set; } = new List<Types.SKU>();\n\n                /// <summary>\n                /// 获取或设置 WMS 订单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"wms_order_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"wms_order_id\")]\n                public string WMSOrderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置供应商仓库编码。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"provider_warehouse_code\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"provider_warehouse_code\")]\n                public string? ProviderWarehouseCode { get; set; }\n\n                /// <summary>\n                /// 获取或设置发货城市。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_origin_city\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_origin_city\")]\n                public string? ShippingOriginCity { get; set; }\n\n                /// <summary>\n                /// 获取或设置时区。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"time_zone\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"time_zone\")]\n                public string TimeZone { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置发货时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"ship_time_millis\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"ship_time_millis\")]\n                public long ShipTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置创建时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"create_time_millis\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"create_time_millis\")]\n                public long CreateTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置交接时间毫秒级时间戳。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"handover_time_millis\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"handover_time_millis\")]\n                public long HandoverTimeMilliseconds { get; set; }\n\n                /// <summary>\n                /// 获取或设置运输服务商 ID。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_provider_id\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_id\")]\n                public string ShippingProviderId { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置运输服务商名称。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"shipping_provider_name\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"shipping_provider_name\")]\n                public string ShippingProviderName { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置物流单号。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"tracking_number\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"tracking_number\")]\n                public string TrackingNumber { get; set; } = string.Empty;\n\n                /// <summary>\n                /// 获取或设置尺寸信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"dimension\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"dimension\")]\n                public Types.Dimension? Dimension { get; set; }\n\n                /// <summary>\n                /// 获取或设置重量信息。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"weight\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"weight\")]\n                public Types.Weight? Weight { get; set; }\n            }\n        }\n\n        /// <summary>\n        /// 获取或设置仓库供应商 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"warehouse_provider_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"warehouse_provider_id\")]\n        public string WarehouseProviderId { get; set; } = string.Empty;\n\n        /// <summary>\n        /// 获取或设置包裹列表。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"packages\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"packages\")]\n        public IList<Types.Package> PackageList { get; set; } = new List<Types.Package>();\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Models/SupplyChain/SupplyChainSyncPackagesResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\n{\n    /// <summary>\n    /// <para>表示 [POST] /supply_chain/{version}/packages/sync 接口的响应。</para>\n    /// </summary>\n    public class SupplyChainSyncPackagesResponse : TikTokShopResponse<SupplyChainSyncPackagesResponse.Types.Data>\n    {\n        public static class Types\n        {\n            public class Data\n            {\n                public static class Types\n                {\n                    public class Error\n                    {\n                        public static class Types\n                        {\n                            public class Detail\n                            {\n                                /// <summary>\n                                /// 获取或设置包裹 ID。\n                                /// </summary>\n                                [Newtonsoft.Json.JsonProperty(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonPropertyName(\"package_id\")]\n                                [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n                                public string PackageId { get; set; } = default!;\n                            }\n                        }\n\n                        /// <summary>\n                        /// 获取或设置错误码。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"code\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n                        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n                        public int Code { get; set; }\n\n                        /// <summary>\n                        /// 获取或设置错误信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"message\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n                        public string Message { get; set; } = default!;\n\n                        /// <summary>\n                        /// 获取或设置详细信息。\n                        /// </summary>\n                        [Newtonsoft.Json.JsonProperty(\"detail\")]\n                        [System.Text.Json.Serialization.JsonPropertyName(\"detail\")]\n                        public Types.Detail Detail { get; set; } = default!;\n                    }\n                }\n\n                /// <summary>\n                /// 获取或设置导入成功的包裹 ID 列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"success_packages\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"success_packages\")]\n                public string[] SucceededPackageIdList { get; set; } = default!;\n\n                /// <summary>\n                /// 获取或设置错误列表。\n                /// </summary>\n                [Newtonsoft.Json.JsonProperty(\"errors\")]\n                [System.Text.Json.Serialization.JsonPropertyName(\"errors\")]\n                public Types.Error[]? ErrorList { get; set; }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/README.md",
    "content": "## SKIT.FlurlHttpClient.ByteDance.TikTokShop\n\n[![GitHub Stars](https://img.shields.io/github/stars/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Stars)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![GitHub Forks](https://img.shields.io/github/forks/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?logo=github&label=Forks)](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance) [![NuGet Download](https://img.shields.io/nuget/dt/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.svg?sanitize=true&label=Downloads)](https://www.nuget.org/packages/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop) [![License](https://img.shields.io/github/license/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance?label=License)](https://mit-license.org/)\n\n---\n\n## 简体中文 / Simplified Chinese\n\n基于 `Flurl.Http` 的 TikTok Shop Open Platform HTTP API SDK。\n\n### 【功能特性】\n\n-   基于 TikTok Shop Open Platform API v202309 封装。\n-   请求时自动生成签名，无需开发者手动干预。\n-   提供了 HMAC-SHA-256 等算法工具类。\n\n### 【开发文档】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance)。\n\n### 【更新日志】\n\n[点此查看](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md)。\n\n---\n\n## 英文 / English\n\nThe TikTok Shop SDK for .NET. (Offical Website: https://partner.tiktokshop.com/)\n\n### Documentation\n\n[Click here for details](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance).\n\n### Changelog\n\n[Click here for details](https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance/blob/main/CHANGELOG.md).\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n        <TargetFrameworks>net462; netstandard2.0; net6.0</TargetFrameworks>\n        <LangVersion>10.0</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n    </PropertyGroup>\n\n    <PropertyGroup>\n        <PackageId>SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop</PackageId>\n        <PackageIcon>LOGO.png</PackageIcon>\n        <PackageReadmeFile>README.md</PackageReadmeFile>\n        <PackageLicenseExpression>MIT</PackageLicenseExpression>\n        <PackageProjectUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance</PackageProjectUrl>\n        <PackageTags>Flurl.Http ByteDance TikTok TikTokShop TikTokShopPartner TikTokShopOpenPlatform TikTokShopOpenAPI TTS TTSPartner TTSOpenPlatform TTSOpenAPI 字节 字节跳动 抖音国际版 抖音国际版电商 抖音跨境电商 抖音跨境电商开放平台</PackageTags>\n        <Version>3.5.0</Version>\n        <Description>\n            基于 Flurl.Http 的 TikTok Shop Open Platform API 客户端。\n            The TikTok Shop Open Platform API SDK for .NET. (Offical Website: https://partner.tiktokshop.com/)\n        </Description>\n        <Authors>Fu Diwei</Authors>\n        <RepositoryType>git</RepositoryType>\n        <RepositoryUrl>https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.ByteDance.git</RepositoryUrl>\n    </PropertyGroup>\n\n    <PropertyGroup Condition=\"'$(Configuration)' == 'Release'\">\n        <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>\n        <Deterministic>true</Deterministic>\n        <EmbedUntrackedSources>true</EmbedUntrackedSources>\n        <GenerateDocumentationFile>true</GenerateDocumentationFile>\n        <IncludeSymbols>true</IncludeSymbols>\n        <SymbolPackageFormat>snupkg</SymbolPackageFormat>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <None Include=\"../../LOGO.png\" Pack=\"true\" PackagePath=\"/\" />\n        <None Include=\"README.md\" Pack=\"true\" PackagePath=\"/\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Common\" Version=\"3.1.1\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Settings/Credentials.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Settings\n{\n    public class Credentials\n    {\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"TikTokShopClientOptions.AppKey\"/> 的副本。\n        /// </summary>\n        public string AppKey { get; }\n\n        /// <summary>\n        /// 初始化客户端时 <see cref=\"TikTokShopClientOptions.AppSecret\"/> 的副本。\n        /// </summary>\n        public string AppSecret { get; }\n\n        internal Credentials(TikTokShopClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            AppKey = options.AppKey;\n            AppSecret = options.AppSecret;\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopClient.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// 一个 TikTok Shop API HTTP 客户端。\n    /// </summary>\n    public class TikTokShopClient : CommonClientBase, ICommonClient\n    {\n        public readonly string _BASEURL_AUTHAPI;\n\n        /// <summary>\n        /// 获取当前客户端使用的 TikTok Shop API 凭证。\n        /// </summary>\n        public Settings.Credentials Credentials { get; }\n\n        /// <summary>\n        /// 用指定的配置项初始化 <see cref=\"TikTokShopClient\"/> 类的新实例。\n        /// </summary>\n        /// <param name=\"options\">配置项。</param>\n        public TikTokShopClient(TikTokShopClientOptions options)\n            : this(options, null)\n        {\n        }\n\n        /// <summary>\n        /// \n        /// </summary>\n        /// <param name=\"options\"></param>\n        /// <param name=\"httpClient\"></param>\n        /// <param name=\"disposeClient\"></param>\n        internal protected TikTokShopClient(TikTokShopClientOptions options, HttpClient? httpClient, bool disposeClient = true)\n            : base(httpClient, disposeClient)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            Credentials = new Settings.Credentials(options);\n\n            FlurlClient.BaseUrl = options.Endpoint ?? TikTokShopEndpoints.DEFAULT;\n            FlurlClient.WithTimeout(options.Timeout <= 0 ? Timeout.InfiniteTimeSpan : TimeSpan.FromMilliseconds(options.Timeout));\n\n            Interceptors.Add(new Interceptors.TikTokShopRequestSigningInterceptor(baseUrl: FlurlClient.BaseUrl, appSecret: options.AppSecret));\n\n            _BASEURL_AUTHAPI = options.EndpointForAuthAPI ?? TikTokShopAuthApiEndpoints.DEFAULT;\n        }\n\n        /// <summary>\n        /// 使用当前客户端生成一个新的 <see cref=\"IFlurlRequest\"/> 对象。\n        /// </summary>\n        /// <param name=\"request\"></param>\n        /// <param name=\"httpMethod\"></param>\n        /// <param name=\"urlSegments\"></param>\n        /// <returns></returns>\n        public IFlurlRequest CreateFlurlRequest(TikTokShopRequest request, HttpMethod httpMethod, params object[] urlSegments)\n        {\n            IFlurlRequest flurlRequest = base.CreateFlurlRequest(request, httpMethod, urlSegments);\n\n            if (request.Timestamp is null)\n            {\n                request.Timestamp = DateTimeOffset.Now.ToLocalTime().ToUnixTimeSeconds();\n            }\n\n            return flurlRequest\n                .WithHeader(\"x-tts-access-token\", request.AccessToken)\n                .SetQueryParam(\"app_key\", Credentials.AppKey)\n                .SetQueryParam(\"shop_cipher\", request.ShopCipher)\n                .SetQueryParam(\"timestamp\", request.Timestamp);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"httpContent\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequestAsync<T>(IFlurlRequest flurlRequest, HttpContent? httpContent = null, CancellationToken cancellationToken = default)\n            where T : TikTokShopResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            using IFlurlResponse flurlResponse = await base.SendFlurlRequestAsync(flurlRequest, httpContent, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n\n        /// <summary>\n        /// 异步发起请求。\n        /// </summary>\n        /// <typeparam name=\"T\"></typeparam>\n        /// <param name=\"flurlRequest\"></param>\n        /// <param name=\"data\"></param>\n        /// <param name=\"cancellationToken\"></param>\n        /// <returns></returns>\n        public async Task<T> SendFlurlRequesAsJsontAsync<T>(IFlurlRequest flurlRequest, object? data = null, CancellationToken cancellationToken = default)\n            where T : TikTokShopResponse, new()\n        {\n            if (flurlRequest is null) throw new ArgumentNullException(nameof(flurlRequest));\n\n            flurlRequest.WithHeader(HttpHeaders.ContentType, MimeTypes.Json); // NOTICE: GET 请求也要设置 Content-Type 标头\n\n            bool isSimpleRequest = data is null ||\n                flurlRequest.Verb == HttpMethod.Get ||\n                flurlRequest.Verb == HttpMethod.Head ||\n                flurlRequest.Verb == HttpMethod.Options;\n            using IFlurlResponse flurlResponse = isSimpleRequest ?\n                await base.SendFlurlRequestAsync(flurlRequest, null, cancellationToken).ConfigureAwait(false) :\n                await base.SendFlurlRequestAsJsonAsync(flurlRequest, data, cancellationToken).ConfigureAwait(false);\n            return await WrapFlurlResponseAsJsonAsync<T>(flurlResponse, cancellationToken).ConfigureAwait(false);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopClientBuilder.cs",
    "content": "using System;\nusing System.Collections.Generic;\nusing System.Net.Http;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// 用于构造 <see cref=\"TikTokShopClient\"/> 实例的构造器。\n    /// </summary>\n    public partial class TikTokShopClientBuilder : ICommonClientBuilder<TikTokShopClient>\n    {\n        private readonly TikTokShopClientOptions _options;\n        private readonly IList<Action<CommonClientSettings>> _configures;\n        private readonly IList<HttpInterceptor> _interceptors;\n        private HttpClient? _httpClient;\n        private bool? _disposeClient;\n\n        private TikTokShopClientBuilder(TikTokShopClientOptions options)\n        {\n            _options = options;\n            _configures = new List<Action<CommonClientSettings>>();\n            _interceptors = new List<HttpInterceptor>();\n        }\n\n        ICommonClientBuilder<TikTokShopClient> ICommonClientBuilder<TikTokShopClient>.ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            return ConfigureSettings(configure);\n        }\n\n        ICommonClientBuilder<TikTokShopClient> ICommonClientBuilder<TikTokShopClient>.UseInterceptor(HttpInterceptor interceptor)\n        {\n            return UseInterceptor(interceptor);\n        }\n\n        ICommonClientBuilder<TikTokShopClient> ICommonClientBuilder<TikTokShopClient>.UseHttpClient(HttpClient httpClient, bool disposeClient)\n        {\n            return UseHttpClient(httpClient, disposeClient);\n        }\n\n        public TikTokShopClientBuilder ConfigureSettings(Action<CommonClientSettings> configure)\n        {\n            if (configure is null) throw new ArgumentNullException(nameof(configure));\n\n            _configures.Add(configure);\n            return this;\n        }\n\n        public TikTokShopClientBuilder UseInterceptor(HttpInterceptor interceptor)\n        {\n            if (interceptor is null) throw new ArgumentNullException(nameof(interceptor));\n\n            _interceptors.Add(interceptor);\n            return this;\n        }\n\n        public TikTokShopClientBuilder UseHttpClient(HttpClient httpClient, bool disposeClient = true)\n        {\n            if (httpClient is null) throw new ArgumentNullException(nameof(httpClient));\n\n            _httpClient = httpClient;\n            _disposeClient = disposeClient;\n            return this;\n        }\n\n        public TikTokShopClient Build()\n        {\n            TikTokShopClient client = _disposeClient.HasValue\n                ? new TikTokShopClient(_options, _httpClient, _disposeClient.Value)\n                : new TikTokShopClient(_options, _httpClient);\n\n            foreach (Action<CommonClientSettings> configure in _configures)\n            {\n                client.Configure(configure);\n            }\n\n            foreach (HttpInterceptor interceptor in _interceptors)\n            {\n                client.Interceptors.Add(interceptor);\n            }\n\n            return client;\n        }\n    }\n\n    partial class TikTokShopClientBuilder\n    {\n        public static TikTokShopClientBuilder Create(TikTokShopClientOptions options)\n        {\n            if (options is null) throw new ArgumentNullException(nameof(options));\n\n            return new TikTokShopClientBuilder(options);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopClientOptions.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// 一个用于构造 <see cref=\"TikTokShopClient\"/> 时使用的配置项。\n    /// </summary>\n    public class TikTokShopClientOptions\n    {\n        /// <summary>\n        /// 获取或设置请求超时时间（单位：毫秒）。\n        /// <para>默认值：30000</para>\n        /// </summary>\n        public int Timeout { get; set; } = 30 * 1000;\n\n        /// <summary>\n        /// 获取或设置 TikTok API 入口点。\n        /// <para>默认值：<see cref=\"TikTokShopEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string Endpoint { get; set; } = TikTokShopEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置 TikTok Auth API 入口点。\n        /// <para>默认值：<see cref=\"TikTokShopAuthApiEndpoints.DEFAULT\"/></para>\n        /// </summary>\n        public string EndpointForAuthAPI { get; set; } = TikTokShopAuthApiEndpoints.DEFAULT;\n\n        /// <summary>\n        /// 获取或设置 TikTok Shop AppKey。\n        /// </summary>\n        public string AppKey { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置 TikTok Shop AppSecret。\n        /// </summary>\n        public string AppSecret { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopEndpoints.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// TikTok Shop API 接口域名。\n    /// </summary>\n    public static class TikTokShopEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://open-api.tiktokglobalshop.com\";\n\n        /// <summary>\n        /// 沙箱域名。\n        /// </summary>\n        public const string SANDBOX = \"https://open-api-sandbox.tiktokglobalshop.com\";\n    }\n\n    /// <summary>\n    /// TikTok Shop Auth API 接口域名。\n    /// </summary>\n    public static class TikTokShopAuthApiEndpoints\n    {\n        /// <summary>\n        /// 主域名（默认）。\n        /// </summary>\n        public const string DEFAULT = \"https://auth.tiktok-shops.com/api/v2\";\n\n        /// <summary>\n        /// 沙箱域名。\n        /// </summary>\n        public const string SANDBOX = \"https://auth-sandbox.tiktok-shops.com/api/v2\";\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopEvent.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// 表示 TikTok Shop API Webhook 事件的基类。\n    /// </summary>\n    [Newtonsoft.Json.JsonObject]\n    public class TikTokShopEvent : ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置事件类型。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"type\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"type\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public virtual int Type { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"shop_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        public virtual string ShopId { get; set; } = default!;\n\n        /// <summary>\n        /// 获取或设置事件时间戳。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"timestamp\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"timestamp\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public virtual long Timestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置通知 ID。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"tts_notification_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"tts_notification_id\")]\n        [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.Common.NumericalStringReadOnlyConverter))]\n        public virtual string? NotificationId { get; set; }\n    }\n\n    /// <summary>\n    /// 表示 TikTok Shop API Webhook 事件的泛型基类。\n    /// </summary>\n    [Newtonsoft.Json.JsonObject]\n    public class TikTokShopEvent<TData> : TikTokShopEvent, ICommonWebhookEvent\n    {\n        /// <summary>\n        /// 获取或设置事件携带数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopException.cs",
    "content": "using System;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// 调用 TikTok Shop API 出错时引发的异常。\n    /// </summary>\n    public class TikTokShopException : CommonException\n    {\n        /// <inheritdoc/>\n        public TikTokShopException()\n        {\n        }\n\n        /// <inheritdoc/>\n        public TikTokShopException(string message)\n            : base(message)\n        {\n        }\n\n        /// <inheritdoc/>\n        public TikTokShopException(string message, Exception innerException)\n            : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopRequest.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// TikTok Shop API 请求的基类。\n    /// </summary>\n    public abstract class TikTokShopRequest : CommonRequestBase, ICommonRequest\n    {\n        /// <summary>\n        /// 获取或设置接口调用凭证。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? AccessToken { get; set; }\n\n        /// <summary>\n        /// 获取或设置店铺密码。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual string? ShopCipher { get; set; }\n\n        /// <summary>\n        /// 获取或设置系统时间戳。如果不指定将由系统自动生成。\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual long? Timestamp { get; set; }\n\n        /// <summary>\n        /// 获取或设置 API 版本号。\n        /// <para>默认值：202309</para>\n        /// </summary>\n        [Newtonsoft.Json.JsonIgnore]\n        [System.Text.Json.Serialization.JsonIgnore]\n        public virtual int ApiVersion { get; set; } = 202309;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/TikTokShopResponse.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\n{\n    /// <summary>\n    /// TikTok Shop API 响应的基类。\n    /// </summary>\n    public abstract class TikTokShopResponse : CommonResponseBase, ICommonResponse\n    {\n        /// <summary>\n        /// 获取 TikTok Shop API 返回的错误码。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"code\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"code\")]\n        [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]\n        public virtual int Code { get; set; }\n\n        /// <summary>\n        /// 获取 TikTok Shop API 返回的错误信息。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"message\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"message\")]\n        public virtual string? Message { get; set; }\n\n        /// <summary>\n        /// 获取 TikTok Shop API 返回的请求唯一标识。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"request_id\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"request_id\")]\n        public virtual string? RequestId { get; set; }\n\n        /// <summary>\n        /// 获取一个值，该值指示调用 TikTok API 是否成功。\n        /// <para>\n        /// （即 HTTP 状态码为 200，且 <see cref=\"Code\"/> 值为 0）\n        /// </para>\n        /// </summary>\n        /// <returns></returns>\n        public override bool IsSuccessful()\n        {\n            return GetRawStatus() == 200 && Code == 0;\n        }\n    }\n\n    /// <summary>\n    /// TikTok Shop API 响应的泛型基类。\n    /// </summary>\n    public abstract class TikTokShopResponse<TData> : TikTokShopResponse\n    {\n        /// <summary>\n        /// 获取或设置接口返回数据。\n        /// </summary>\n        [Newtonsoft.Json.JsonProperty(\"data\")]\n        [System.Text.Json.Serialization.JsonPropertyName(\"data\")]\n        public TData Data { get; set; } = default!;\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Utilities/HMACUtility.cs",
    "content": "using System;\nusing System.Security.Cryptography;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Utilities\n{\n    using SKIT.FlurlHttpClient.Primitives;\n\n    /// <summary>\n    /// HMAC 算法工具类。\n    /// </summary>\n    public static class HMACUtility\n    {\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"keyBytes\">密钥字节数组。</param>\n        /// <param name=\"messageBytes\">要计算哈希值的信息字节数组。</param>\n        /// <returns>哈希值字节数组。</returns>\n        public static byte[] HashWithSHA256(byte[] keyBytes, byte[] messageBytes)\n        {\n            if (keyBytes is null) throw new ArgumentNullException(nameof(keyBytes));\n            if (messageBytes is null) throw new ArgumentNullException(nameof(messageBytes));\n\n#if NET5_0_OR_GREATER\n            return HMACSHA256.HashData(keyBytes, messageBytes);\n#else\n            using HMAC hmac = new HMACSHA256(keyBytes);\n            return hmac.ComputeHash(messageBytes);\n#endif\n        }\n\n        /// <summary>\n        /// 计算 HMAC-SHA-256 哈希值。\n        /// </summary>\n        /// <param name=\"key\">密钥。</param>\n        /// <param name=\"messageData\">要计算哈希值的信息。</param>\n        /// <returns>经过十六进制编码的哈希值。</returns>\n        public static EncodedString HashWithSHA256(string key, string messageData)\n        {\n            if (key is null) throw new ArgumentNullException(nameof(key));\n            if (messageData is null) throw new ArgumentNullException(nameof(messageData));\n\n            byte[] keyBytes = EncodedString.FromLiteralString(key);\n            byte[] messageBytes = EncodedString.FromLiteralString(messageData);\n            byte[] hashBytes = HashWithSHA256(keyBytes, messageBytes);\n            return EncodedString.ToHexString(hashBytes);\n        }\n    }\n}\n"
  },
  {
    "path": "src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/Utilities/[Internal]/HttpContentBuilder.cs",
    "content": "using System;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Web;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Utilities\n{\n    internal static class HttpContentBuilder\n    {\n        public static MultipartFormDataContent BuildWithFile(string fileName, byte[] fileBytes, string? fileContentType, string formDataName, Action<HttpContent>? configureFileHttpContent = null)\n        {\n            if (fileName is null) throw new ArgumentNullException(nameof(fileName));\n            if (formDataName is null) throw new ArgumentNullException(nameof(formDataName));\n\n            fileName = fileName.Replace(\"\\\"\", \"\");\n            fileBytes = fileBytes ?? Array.Empty<byte>();\n            fileContentType = string.IsNullOrEmpty(fileContentType) ? MimeTypes.Binary : fileContentType;\n            formDataName = formDataName.Replace(\"\\\"\", \"\");\n\n            ByteArrayContent fileContent = new ByteArrayContent(fileBytes);\n            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse(fileContentType);\n            configureFileHttpContent?.Invoke(fileContent);\n\n            string boundary = \"--BOUNDARY--\" + DateTimeOffset.Now.Ticks.ToString(\"x\");\n            MultipartFormDataContent httpContent = new MultipartFormDataContent(boundary);\n            httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse($\"{MimeTypes.FormData}; boundary={boundary}\");\n            httpContent.Add(fileContent, $\"\\\"{formDataName}\\\"\", $\"\\\"{HttpUtility.UrlEncode(fileName)}\\\"\");\n            return httpContent;\n        }\n    }\n}\n"
  },
  {
    "path": "test/NuGet.config",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <add key=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" value=\"https://www.myget.org/F/skit/api/v3/index.json\" />\n  </packageSources>\n</configuration>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/GoodLife/LifeMemberJoinEvent.json",
    "content": "{\n    \"from_user_id\": \"xxxx\",\n    \"event\": \"life_member_join\",\n    \"client_key\": \"aaaaaaaa\",\n    \"content\": \"{\\\"account_id\\\":\\\"12134\\\",\\\"mobile\\\":\\\"18611159323\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/GoodLife/LifeMemberLeaveEvent.json",
    "content": "{\n    \"from_user_id\": \"xxxx\",\n    \"event\": \"life_member_leave\",\n    \"client_key\": \"aaaaaaaa\",\n    \"content\": \"{\\\"account_id\\\":\\\"12134\\\",\\\"mobile\\\":\\\"18611159323\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/GoodLife/LifeProductAuditEvent.json",
    "content": "{\n    \"event\": \"life_product_audit\",\n    \"client_key\": \"axxxxxxxxxxxxx\",\n    \"content\": \"{\\\"product_id\\\":\\\"6993730008241948703\\\",\\\"reason\\\":\\\"\\\",\\\"status\\\":\\\"PASS\\\"}\",\n    \"log_id\": \"202210101930530102281180650970B5AF\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/GoodLife/LifeTradeCertificateNotifyEvent.json",
    "content": "{\n    \"event\": \"life_trade_certificate_notify\",\n    \"client_key\": \"axxxxxxxxxxxxx\",\n    \"from_user_id\": \"f6e35c98-1e53-4943-ad6d-f476f869deab\",\n    \"content\": \"{\\\"action\\\": \\\"verify\\\",\\\"msg_time\\\": 1665991178,\\\"certificate\\\": {\\\"certificate_id\\\": \\\"456\\\",\\\"order_id\\\": \\\"123\\\",\\\"account_id\\\": \\\"1234\\\"}}\",\n    \"log_id\": \"202210101930530102281180650970B5AF\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/GoodLife/LifeTradeOrderNotifyEvent.json",
    "content": "{\n    \"event\": \"life_trade_order_notify\",\n    \"client_key\": \"axxxxxxxxxxxxx\",\n    \"from_user_id\": \"f6e35c98-1e53-4943-ad6d-f476f869deab\",\n    \"content\": \"{\\\"action\\\": \\\"pay_success\\\",\\\"msg_time\\\": 1665991178,\\\"order\\\": {\\\"order_id\\\": \\\"123\\\",\\\"pay_amount\\\": 1,  \\\"original_amount\\\": 1, \\\"account_id\\\": \\\"123\\\",\\\"create_time\\\": 1665991178,\\\"pay_time\\\": 1665991178}}\",\n    \"log_id\": \"202210101930530102281180650970B5AF\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/EnterGroupAuditChangeEvent.json",
    "content": "{\n    \"event\": \"enter_group_audit_change\",\n    \"client_key\": \"awipqx94gnfz3rtg\",\n    \"from_user_id\": \"6ff2569e-1a9d-4e94-92ee-8fb495515c9y\",\n    \"to_user_id\": \"6cb06b1b-1069-465b-8fba-e1c55f30ab4n\",\n    \"content\": \"{\\\"create_time\\\":1679638889110,\\\"user_avatar\\\":\\\"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/douyin-user-image-file_4a7daf3c888d80e7bd83636e5a3ae555.jpeg?from=3782654143\\\",\\\"user_nicker\\\":\\\"12342429747\\\",\\\"apply_status\\\":2,\\\"apply_id\\\":\\\"@9VwNxuKKBZ03MXG7M8ooWM7912TqNP2CO5FyqAqnJlYTZ/j660zdRmYqig357zEBoRXMRQ95AMRhcSWFJ+9AMw==\\\",\\\"group_id\\\":\\\"@9VwNxuKKBZ03MXG7M8ooWM7912TqNP2CO5FyqAqnJlYTZ/j660zdRmYqig357zEBoRXMRQ95AMRhcSWFJ+9AMw==\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/GroupFansEventEvent.json",
    "content": "{\n    \"event\": \"group_fans_event\",\n    \"client_key\": \"gjegd89bebgd9uehd\",\n    \"from_user_id\": \"500a9e2f-ca96-4225-865d-a341914502ae\",\n    \"to_user_id\": \"a70c3dde-d0f3-45b3-828e-0f1a81cd5245\",\n    \"content\": \"{\\\"open_id\\\":\\\"500a9e2f-ca96-4225-865d-a341914502ae\\\",\\\"im_group_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912frNf2APZB0rQqgKFMUafD160zdRmYqig357zEBN69eGVtkZMdXc4EKtu****==\\\",\\\"group_type\\\":1,\\\"create_time\\\":1681720393151,\\\"create_group_type\\\":\\\"5\\\"}\",\n    \"log_id\": \"02168172039281400000000000000000000ffff0ac64157ea0731\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/IMAuthorizeEvent.json",
    "content": "{\n    \"event\": \"im_authorize\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": \"{\\\"create_time\\\":1670229453,\\\"expire_time\\\":1672821453,\\\"update_time\\\":1670229453,\\\"operation_type\\\":1,\\\"auth_status\\\":1,\\\"source\\\":\\\"im.direct_message.bind\\\",\\\"extra\\\":\\\"\\\",\\\"data_im_extra\\\":\\\"micro app source\\\",\\\"query\\\":\\\"cptName=button\\\",\\\"path\\\":\\\"page/componentTpl/componentTpl\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/IMEnterDirectMessageEvent.json",
    "content": "{\n    \"event\": \"im_enter_direct_msg\",\n    \"client_key\": \"aaaoqobz68a71u1\",\n    \"from_user_id\": \"aaa-8a0b-4c0f-b04f-feba0e909113\",\n    \"to_user_id\": \"aaa-81ec-424c-b738-8693eeaf53ea\",\n    \"content\": \"{\\\"conversation_short_id\\\":\\\"@9Vxc1/yDU8sqaS+gN4koEc7912foPPyAOJNyrA+nLFAba/f760zdRmYqig357zEBFWIIcsZD6/UJHKbF2JNw4w==\\\",\\\"server_message_id\\\":\\\"@9Vxc1/yDU8sqaS+gN4koEc7912foPPyAPZd5qgKuL1UVbfj460zdRmYqig357zEBi2hwzcxjeRsR2HorFuOHvA==\\\",\\\"conversation_type\\\":1,\\\"create_time\\\":1681303286088,\\\"scene_type\\\":4,\\\"user_infos\\\":[{\\\"open_id\\\":\\\"xxxx8a0b-4c0f-b04f-feba0e909113\\\",\\\"nick_name\\\":\\\"Hs姝羽\\\",\\\"avatar\\\":\\\"https://p6.douyinpic.com/aweme/720x720/xxxx/tos-cn-i-0813_f2c60a21b05d43e68dd6daffd7d5d733.jpeg?from=3782654143\\\"},{\\\"open_id\\\":\\\"xxxx-81ec-424c-b738-8693eeaf53ea\\\",\\\"nick_name\\\":\\\"广汽传祺张掖华逸店\\\",\\\"avatar\\\":\\\"https://p6.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-i-0813_5d0c96b34bcc4068bb6f9f43b609448a.jpeg?from=3782654143\\\"}],\\\"data-im-extra\\\":\\\"123456789\\\",\\\"query\\\":\\\"cptName = button\\\",\\\"path\\\":\\\"page/componentTpl/componentTpl\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/IMGroupReceiveMessageEvent.json",
    "content": "{\n    \"event\": \"im_group_receive_msg\",\n    \"client_key\": \"asdfavetgbvasf\",\n    \"from_user_id\": \"eeb0ea9b-bed4-4b70-913d-c29bfc00000\",\n    \"to_user_id\": \"aaa-7ae0-4399-914a-5eb1df5861ba\",\n    \"content\": {\n        \"conversation_short_id\": \"@c29bfc000+MNggFhRkwGuX1ntucyQ/A1Wn+VfTX3Vk9xDdDQrU9MpJSYEVV6/2hK6gbUC8gjaV/y3CS18WtfMw==\",\n        \"server_message_id\": \"@c29bfc000+MNggFhRkwGuX1ntuc1RPw2VXmSfjn/VE9zCtHSrU9MpJSYEVV6/2hKk8cLQDaYzbQpImhvw1Y4FQ==\",\n        \"conversation_type\": 2,\n        \"create_time\": 1656671771668,\n        \"message_type\": \"emoji\",\n        \"resource_type\": \"gif\",\n        \"resource_width\": 450,\n        \"resource_height\": 450,\n        \"resource_url\": \"\",\n        \"item_id\": \"@72NwHyW53+MNggFhRkwGuX1ntuc2RfUyVnKfdTzwU0F0CtjUrU9MpJSYEVV6/2hKy3NMVbBhh6BW27IsDFieLg==\",\n        \"card_id\": \"@72MqAjfymKYS1xNrB0sG4X1iidgOeMsMbUSpQwLJb3kYzJh7eXsSr5+aH2GTsvEv\",\n        \"card_status\": 1,\n        \"card_data\": [\n            {\n                \"label\": \"姓名\",\n                \"value\": \"Tonality\"\n            },\n            {\n                \"label\": \"手机号\",\n                \"value\": \"12345678901\"\n            },\n            {\n                \"label\": \"城市\",\n                \"value\": \"北京市北京市海淀区\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/IM/IMReceiveMessageEvent.json",
    "content": "{\n    \"event\": \"im_receive_msg\",\n    \"client_key\": \"asdfavetgbvasf\",\n    \"from_user_id\": \"aaa-ae9b-4dbf-add1-bf67e4093fab\",\n    \"to_user_id\": \"aaa-7ae0-4399-914a-5eb1df5861ba\",\n    \"content\": {\n        \"conversation_short_id\": \"@9Vxc1/yDU8sqaS+gN4koEc7912foPPiLPZVyrQmgKVQabPH460zdRmYqig357zEBMaXjKvvhvwY02ISB7llsWQ==\",\n        \"server_message_id\": \"@9Vxc1/yDU8sqaS+gN4koEc7912foPPyAPpF2rgykLFgbafb560zdRmYqig357zEBmWXVPshhwyd/y/7BQpXy/w==\",\n        \"conversation_type\": 1,\n        \"create_time\": 1681303285997,\n        \"message_type\": \"text\",\n        \"source\": \"\",\n        \"scene_type\": 100,\n        \"text\": \"捷途70\",\n        \"user_infos\": [\n            {\n                \"open_id\": \"aaa-ae9b-4dbf-add1-bf67e4093fab\",\n                \"nick_name\": \"刘东\",\n                \"avatar\": \"https://p3.douyinpic.com/aweme/720x720/xxxxx-avatar/mosaic-legacy_3795_3047680722.jpeg?from=3782654143\"\n            },\n            {\n                \"open_id\": \"aaa-7ae0-4399-914a-5eb1df5861ba\",\n                \"nick_name\": \"毕节--捷途万丰店\",\n                \"avatar\": \"https://p3.douyinpic.com/aweme/720x720/xxxxxx-avatar/tos-cn-avt-0015_6c9ae9afb4e62e2263f98809e3dc5b6a.jpeg?from=3782654143\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Interaction/NewFollowActionEvent.json",
    "content": "{\n    \"event\": \"new_follow_action\",\n    \"client_key\": \"awr8bfr64vxgk036\",\n    \"from_user_id\": \"5bfa0218-477c-4d51-865c-64f0588794a6\",\n    \"to_user_id\": \"e3af6e1d-d83a-4116-8f9f-5cb8ac2413c7\",\n    \"content\": \"{\\\"action_type\\\":1,\\\"action_time\\\":1686811643}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Interaction/NewVideoDiggEvent.json",
    "content": "{\n    \"event\": \"new_video_digg\",\n    \"client_key\": \"awr8bfr64vxgk036\",\n    \"from_user_id\": \"5adb9d61-b91a-4382-8252-b0cea8793e35\",\n    \"to_user_id\": \"e3af6e1d-d83a-4116-8f9f-5cb8ac2413c7\",\n    \"content\": \"{\\\"action_type\\\":1,\\\"action_time\\\":1686817996,\\\"item_id\\\":\\\"@9VwWjvGUTp9kKW+ma4huFs791WPtO/mAPpx3rg6nL1kRbfn/60zdRmYqig357zEBDoyWkKJYf4Ae9sL0fd9gYw==\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/UnionAuth/UnionAuthInfoForBEvent.json",
    "content": "{\n    \"event\": \"union_auth_info_for_c\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": \"{\\\"c_client_key\\\":\\\"xxxxxx\\\",\\\"c_open_id\\\":\\\"xxxxxxx\\\",\\\"b_client_key\\\":\\\"xxxxxxxx\\\",\\\"b_open_id\\\":\\\"xxxxx\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/UnionAuth/UnionAuthInfoForCEvent.json",
    "content": "{\n    \"event\": \"union_auth_info_for_b\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": \"{\\\"c_client_key\\\":\\\"xxxxxx\\\",\\\"c_open_id\\\":\\\"xxxxxxx\\\",\\\"b_client_key\\\":\\\"xxxxxxxx\\\",\\\"b_open_id\\\":\\\"xxxxx\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/AuthorizeEvent.json",
    "content": "﻿{\n    \"event\": \"authorize\",\n    \"from_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"scopes\": []\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/CreateVideoEvent.json",
    "content": "﻿{\n    \"event\": \"create_video\",\n    \"from_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"item_id\": \"\",\n        \"share_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/DialogPhoneEvent.json",
    "content": "﻿{\n    \"event\": \"dial_phone\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/ItemCommentReplyEvent.json",
    "content": "{\n    \"event\": \"item_comment_reply\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"comment_id\": \"\",\n        \"comment_user_id\": \"\",\n        \"content\": \"\",\n        \"create_time\": 123123,\n        \"digg_count\": 0,\n        \"reply_comment_total\": 1,\n        \"reply_to_comment_id\": \"\",\n        \"reply_to_item_id\": \"@9VxT0uuFWsE7M3Koc4olFM791WbsNPGKOp1wrgiiJ1ERbfD060zdRmYqig357zEB1tSgbExoci7R0e1yFxAIMw==\",\n        \"at_user_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/PersonalTabContactEvent.json",
    "content": "﻿{\n    \"event\": \"personal_tab_contact\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/ReceiveMessageEvent.json",
    "content": "﻿{\n    \"event\": \"receive_msg\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"message_type\": \"typr\",\n        \"text\": \"string\",\n        \"resource_type\": \"gif\",\n        \"resource_height\": 123,\n        \"resource_width\": 123,\n        \"resource_url\": \"http(s)://sssssss\",\n        \"title\": \"xxx\",\n        \"icon_url\": \"http(s)://ssss\",\n        \"description\": \"xxxxx\",\n        \"link_url\": \"http(s)://sssssss\",\n        \"actions\": {\n            \"xxx\": {\n                \"name\": \"text name\",\n                \"value\": \"link\",\n                \"action_type\": \"send_message/redirect/dial_phone\"\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/UnauthorizeEvent.json",
    "content": "﻿{\n    \"event\": \"unauthorize\",\n    \"from_user_id\": \"\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"scopes\": []\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/VerifyWebhookEvent.json",
    "content": "﻿{\n    \"event\": \"verify_webhook\",\n    \"client_key\": \"\",\n    \"content\": {\n        \"challenge\": 12345\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/EventSamples/Webhook/WebsiteContactEvent.json",
    "content": "﻿{\n    \"event\": \"website_contact\",\n    \"from_user_id\": \"\",\n    \"to_user_id\": \"\",\n    \"client_key\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/IMPORTANT_CodeAnalyzeTests.cs",
    "content": "using System;\nusing System.IO;\nusing System.Reflection;\nusing SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests\n{\n    public class CodeAnalyzeTests\n    {\n        // NOTICE:\n        //   如果 Visual Studio 遇到 “缺少 SKIT.FlurlHttpClient.Tools.CodeAnalyzer 包” 的错误，\n        //   请参考此 Issue：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/issues/8\n\n        [Fact(DisplayName = \"测试用例：代码质量分析\")]\n        public void TestCodeAnalyzer()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinOpenClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true,\n                    ThrowOnNotFoundWebhookEventTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinOpenClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Models\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.DouyinOpen.Events\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.DouyinOpen/\"),\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/\"),\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundWebhookEventClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundWebhookEventSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsAuth/AppsAuthGetOpenIdByCV1Request.json",
    "content": "{\n    \"b_client_key\": \"XXXXXX\",\n    \"c_client_key\": \"XXXXXX\",\n    \"open_id\": \"XXXXXXX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsAuth/AppsAuthGetOpenIdByCV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"open_id\": \"xxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookCreateBookV2Request.json",
    "content": "{\n    \"order_id\": \"ot7117199930837961004\",\n    \"out_book_no\": \"zxsw4443rette54ert53\",\n    \"open_id\": \"194437895436262\",\n    \"item_book_info_list\": [\n        {\n            \"book_end_time\": 1657110479000,\n            \"book_start_time\": 1657110478000,\n            \"ext_shop_id\": \"2341\",\n            \"goods_id\": \"7116799885390841900\",\n            \"poi_id\": \"4355\",\n            \"shop_name\": \"345245\",\n            \"user_info_list\": [\n                {\n                    \"id_card_no\": \"123456789012345678\",\n                    \"name\": \"zxs\",\n                    \"phone\": \"12321234322\"\n                }\n            ]\n        },\n        {\n            \"book_end_time\": 1657110479000,\n            \"book_start_time\": 1657110478000,\n            \"ext_shop_id\": \"2341\",\n            \"goods_id\": \"7116799885390841900\",\n            \"poi_id\": \"4355\",\n            \"shop_name\": \"345245\",\n            \"user_info_list\": [\n                {\n                    \"id_card_no\": \"123456789012345678\",\n                    \"name\": \"zxs\",\n                    \"phone\": \"12321234322\"\n                }\n            ]\n        }\n    ],\n    \"markup_info\": {\n        \"total_amount\": 5,\n        \"out_markup_no\": \"zxsw123512dadqweqe\",\n        \"order_entry_schema\": {\n            \"path\": \"page/order\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookCreateBookV2Response.json",
    "content": "{\n    \"data\": {\n        \"book_id\": \"ot707233865982238\",\n        \"markup_order_info\": {\n            \"markup_order_id\": \"ot717123543556796\",\n            \"pay_order_id\": \"712312312313131238\",\n            \"pay_order_token\": \"xxxxxxxxxxx\"\n        }\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookMerchantCancelBookV2Request.json",
    "content": "{\n    \"book_id\": \"mock_book_id\",\n    \"cancel_reason\": \"xxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookQueryBookV2Request.json",
    "content": "{\n    \"book_id\": \"mock_book_id\",\n    \"order_id\": \"xxxxxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookQueryBookV2Response.json",
    "content": "{\n    \"data\": {\n        \"book_info_list\": [\n            {\n                \"book_id\": \"ot7117205804150901036\",\n                \"order_id\": \"ot7117226212715923756\",\n                \"out_book_no\": \"zxsw4443rette54ert53\",\n                \"status\": \"BOOKING\",\n                \"book_child_info_list\": [\n                    {\n                        \"book_end_time\": 1657111979000,\n                        \"book_start_time\": 1657111978000,\n                        \"goods_id\": \"711679988841900\",\n                        \"item_order_id\": \"ot7117226212715989292\",\n                        \"poi_id\": 4355,\n                        \"user_info_list\": [\n                            {\n                                \"id_card_no\": \"123456789012345678\",\n                                \"name\": \"zxs\",\n                                \"phone\": \"12321234322\"\n                            }\n                        ]\n                    },\n                    {\n                        \"book_end_time\": 1657111979000,\n                        \"book_start_time\": 1657111978000,\n                        \"goods_id\": \"711679988841900\",\n                        \"item_order_id\": \"ot71172262127667772\",\n                        \"poi_id\": 4355,\n                        \"user_info_list\": [\n                            {\n                                \"id_card_no\": \"123456789012345678\",\n                                \"name\": \"zxs\",\n                                \"phone\": \"12321234322\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookResultCallbackV2Request.json",
    "content": "{\n    \"book_id\": \"mock_book_id\",\n    \"result\": 1,\n    \"msg\": \"xxxxxx\",\n    \"accept_type\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeBookUserCancelBookV2Request.json",
    "content": "{\n    \"book_id\": \"mock_book_id\",\n    \"open_id\": \"xxxxxxxxxx\",\n    \"cancel_reason\": [\n        \"xxxxxx\",\n        \"xxxxxx\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentDeliveryPrepareV2Request.json",
    "content": "{\n    \"encrypted_data\": \"17104CFF079C9FDA51D14DD48E12876C\",\n    \"code\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentDeliveryPrepareV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"verify_token\": \"xxx\",\n        \"out_order_no\": \"out123456\",\n        \"order_id\": \"ot123456\",\n        \"certificates\": [\n            {\n                \"encrypted_code\": \"xxx\",\n                \"certificate_id\": \"123456\",\n                \"item_order_id\": \"ot123\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentDeliveryVerifyV2Request.json",
    "content": "{\n    \"verify_token\": \"xxx\",\n    \"order_id\": \"ot123456\",\n    \"certificates\": [\n        {\n            \"encrypted_code\": \"xxx\",\n            \"certificate_id\": \"123456\"\n        }\n    ],\n    \"poi_info\": \"{\\\"shop_name\\\":\\\"xx门店\\\",\\\"ext_valid_shop_id\\\":\\\"x0001\\\",\\\"valid_poi_id_str\\\":\\\"6601136930455291912\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentDeliveryVerifyV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"verify_results\": [\n            {\n                \"item_order_id\": \"ot123\",\n                \"certificate_code\": \"888888888888\",\n                \"result_code\": 0,\n                \"result_msg\": \"验券成功\",\n                \"verify_time\": 1658300479000,\n                \"verify_id\": \"83717297362537\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentOrderCanUseV2Request.json",
    "content": "{\n    \"order_id\": \"8000088\",\n    \"poi_id\": \"123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentOrderCanUseV2Response.json",
    "content": "{\n    \"data\": {\n        \"order_id\": \"80000088\",\n        \"can_use\": true,\n        \"certificates\": [\n            {\n                \"certificate_id\": \"71817\",\n                \"expire_time\": 1703260799,\n                \"sku_info\": {\n                    \"account_id\": \"12345\",\n                    \"sku_id\": \"123\",\n                    \"title\": \"测试商品\",\n                    \"groupon_type\": 1,\n                    \"market_price\": 20,\n                    \"sold_start_time\": 1672123976,\n                    \"third_sku_id\": \"\"\n                },\n                \"amount\": {\n                    \"original_amount\": 20,\n                    \"pay_amount\": 20,\n                    \"merchant_ticket_amount\": 0,\n                    \"payment_discount_amount\": 0,\n                    \"coupon_pay_amount\": 20\n                },\n                \"start_time\": 1672138509\n            }\n        ]\n    },\n    \"extra\": {\n        \"now\": 1663745962686,\n        \"logid\": \"2022092115392201020812109511046\",\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentPushDeliveryV2Request.json",
    "content": "{\n    \"out_order_no\": \"out123456\",\n    \"item_order_list\": [\n        {\n            \"item_order_id\": \"ot123\"\n        },\n        {\n            \"item_order_id\": \"ot456\"\n        }\n    ],\n    \"use_all\": false,\n    \"poi_info\": \"{\\\"shop_name\\\":\\\"xx门店\\\",\\\"ext_valid_shop_id\\\":\\\"x0001\\\",\\\"valid_poi_id_str\\\":\\\"6601136930455291912\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentPushDeliveryV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"verify_results\": [\n            {\n                \"certificate_id\": \"7225579753535704\",\n                \"item_order_id\": \"80000000613679534\",\n                \"verify_id\": \"72255394060460\",\n                \"verify_time\": 1682341467000\n            },\n            {\n                \"certificate_id\": \"722557935766572\",\n                \"item_order_id\": \"80000000026899213749534\",\n                \"verify_id\": \"72255390118243228\",\n                \"verify_time\": 1682341467000\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentQueryUserCertificatesV2Request.json",
    "content": "{\n    \"open_id\": \"ba253642-0590-40bc-xxx\",\n    \"account_id\": \"12345\",\n    \"poi_id\": \"123\",\n    \"page\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentQueryUserCertificatesV2Response.json",
    "content": "{\n    \"data\": {\n        \"orders\": [\n            {\n                \"can_use\": true,\n                \"certificates\": [\n                    {\n                        \"amount\": {\n                            \"original_amount\": 20,\n                            \"pay_amount\": 20,\n                            \"merchant_ticket_amount\": 0,\n                            \"payment_discount_amount\": 0,\n                            \"coupon_pay_amount\": 20\n                        },\n                        \"certificate_id\": \"71817\",\n                        \"expire_time\": 1703260799,\n                        \"sku_info\": {\n                            \"account_id\": \"12345\",\n                            \"groupon_type\": 1,\n                            \"market_price\": 20,\n                            \"sku_id\": \"123\",\n                            \"sold_start_time\": 1672123976,\n                            \"third_sku_id\": \"\",\n                            \"title\": \"测试商品\"\n                        },\n                        \"start_time\": 1672138509\n                    }\n                ],\n                \"order_id\": \"80000088\"\n            }\n        ],\n        \"total\": 1,\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"logid\": \"20221228144816E59CDC04081F5001B2CE\",\n        \"now\": 1672210096,\n        \"sub_description\": \"success\",\n        \"sub_error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeFulfillmentVerifyCancelV2Request.json",
    "content": "{\n    \"verify_id\": \"12345\",\n    \"certificate_id\": \"123\",\n    \"order_id\": \"8000088\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderCloseOrderV2Request.json",
    "content": "{\n    \"order_id\": \"ots1230123132123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderCreateOrderV2Request.json",
    "content": "{\n    \"goods_list\": [\n        {\n            \"quantity\": 1,\n            \"price\": 100,\n            \"goods_title\": \"火锅团购\",\n            \"goods_image\": \"https://xxx\",\n            \"labels\": \"随时退|免预约\",\n            \"goods_id\": \"goods_1\",\n            \"goods_id_type\": 2,\n            \"discount_amount\": 0,\n            \"date_rule\": \"周一至周日可用\",\n            \"goods_page\": {\n                \"path\": \"goods/infoxxxx\",\n                \"params\": \"{\\\"id\\\":\\\"xxxxxx\\\"}\"\n            },\n            \"order_valid_time\": {\n                \"valid_duration\": 100000\n            },\n            \"goods_book_info\": {\n                \"book_type\": 2,\n                \"cancel_policy\": 1\n            }\n        }\n    ],\n    \"total_amount\": 100,\n    \"discount_amount\": 20,\n    \"phone_num\": \"19273654356\",\n    \"contact_name\": \"张三\",\n    \"extra\": \"xxx\",\n    \"open_id\": \"xxx\",\n    \"out_order_no\": \"132324\",\n    \"pay_notify_url\": \"https://xxxx\",\n    \"pay_expire_seconds\": 500,\n    \"order_entry_schema\": {\n        \"path\": \"pages/xxxindexxxx\",\n        \"params\": \"{\\\"id\\\":\\\"xxxxxx\\\"}\"\n    },\n    \"cp_extra\": \"xxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderCreateOrderV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"order_id\": \"ot7072366682238\",\n        \"out_order_no\": \"121321432\",\n        \"pay_order_id\": \"12423414234\",\n        \"pay_order_token\": \"544352343\",\n        \"item_order_info_list\": [\n            {\n                \"item_order_id_list\": [ \"ot70939408076069\" ],\n                \"goods_id\": \"700843652\",\n                \"item_order_detail\": [\n                    {\n                        \"item_order_id\": \"ot70939408076069\",\n                        \"price\": 80\n                    }\n                ]\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryCPSV2Request.json",
    "content": "{\n    \"order_id\": \"mock_order_id\",\n    \"out_order_no\": \"mock_out_order_no\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryCPSV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"order_id\": \"ot7073664578173012264\",\n        \"out_order_no\": \"ext_ot7073664578173012264\",\n        \"payment_info\": {\n            \"pay_time\": \"2022-03-11 16:28:06\",\n            \"total_fee\": 20,\n            \"order_status\": \"SUCCESS\",\n            \"pay_channel\": 1,\n            \"channel_pay_id\": \"4313601110202203112588448957\",\n            \"seller_uid\": \"68882720803499563550\",\n            \"cp_extra\": \"\",\n            \"message\": \"CPS-团购测试商品\"\n        },\n        \"cps_info\": {\n            \"total_commission_amount\": 4,\n            \"cps_item_list\": [\n                {\n                    \"commission_amount\": 2,\n                    \"source_type\": 1,\n                    \"item_id\": 7049587675082263815,\n                    \"sell_amount\": 10,\n                    \"status\": 3,\n                    \"item_order_id\": \"ot7073664578173045032\",\n                    \"commission_rate\": 2500,\n                    \"commission_user_douyinid\": \"ax81nd873\",\n                    \"commission_user_nickname\": \"小毛驴\"\n                },\n                {\n                    \"sell_amount\": 10,\n                    \"status\": 2,\n                    \"item_order_id\": \"ot7073664578173061416\",\n                    \"commission_rate\": 2500,\n                    \"commission_amount\": 2,\n                    \"source_type\": 1,\n                    \"item_id\": 7049587675082263815,\n                    \"commission_user_douyinid\": \"ax81nd873\",\n                    \"commission_user_nickname\": \"小毛驴\"\n                }\n            ]\n        },\n        \"refund_info\": {\n            \"total_refund_amount\": 10,\n            \"refund_items\": [\n                {\n                    \"out_refund_no\": \"12894412389749193299\",\n                    \"refund_amount\": 10,\n                    \"refund_status\": \"已退款\",\n                    \"refund_at\": 1646989887000,\n                    \"item_order_id\": \"ot7073664578173061416\"\n                }\n            ]\n        },\n        \"delivery_info\": {\n            \"total_delivery_amount\": 10,\n            \"delivery_items\": [\n                {\n                    \"delivery_amount\": 10,\n                    \"delivery_status\": \"已核销\",\n                    \"delivery_at\": 1646989889000,\n                    \"item_order_id\": \"ot7073664578173045032\"\n                }\n            ]\n        }\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryItemOrderInfoV2Request.json",
    "content": "{\n    \"order_id\": \"ot123456\",\n    \"item_order_id_list\": [\n        \"ot123\",\n        \"ot456\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryItemOrderInfoV2Response.json",
    "content": "{\n    \"data\": {\n        \"item_list\": [\n            {\n                \"item_order_id\": \"item_order_id_example_1\",\n                \"item_order_status\": 2,\n                \"valid_start_time\": 1642491214992,\n                \"valid_end_time\": 1642491231992,\n                \"delivery_time\": 1642493214992,\n                \"times_card_info\": {\n                    \"total_times\": 2,\n                    \"usable_times\": 2,\n                    \"refund_times\": 0,\n                    \"actual_amount_once\": 100\n                }\n            },\n            {\n                \"item_order_id\": \"item_order_id_example_2\",\n                \"item_order_status\": 2,\n                \"valid_start_time\": 1642491214992,\n                \"valid_end_time\": 1623491214992,\n                \"delivery_time\": 1642231214992,\n                \"times_card_info\": {\n                    \"total_times\": 2,\n                    \"usable_times\": 2,\n                    \"refund_times\": 0,\n                    \"actual_amount_once\": 100\n                }\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryOrderV2Request.json",
    "content": "{\n    \"order_id\": \"mock_order_id\",\n    \"out_order_no\": \"mock_out_order_no\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeOrderQueryOrderV2Response.json",
    "content": "{\n    \"data\": {\n        \"order_id\": \"mock_order_id\",\n        \"out_order_no\": \"mock_out_order_no\",\n        \"refund_amount\": 10000,\n        \"settle_amount\": 0,\n        \"total_fee\": 10000,\n        \"pay_time\": \"2021-12-12 00:00:00\",\n        \"order_status\": \"SUCCESS\",\n        \"pay_channel\": 1,\n        \"channel_pay_id\": \"2iu208bfi2897r9hflquf\",\n        \"seller_uid\": \"287484783\",\n        \"item_id\": \"9823789736\",\n        \"cp_extra\": \"\",\n        \"message\": \"SUCCESS\",\n        \"payment_order_id\": \"abc123\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeRefundCreateRefundV2Request.json",
    "content": "{\n    \"out_order_no\": \"123123131\",\n    \"out_refund_no\": \"123123\",\n    \"cp_extra\": \"extra_info\",\n    \"order_entry_schema\": {\n        \"path\": \"page/xxx\",\n        \"params\": \"{\\\"id\\\":1}\"\n    },\n    \"notify_url\": \"https://xxx\",\n    \"item_order_detail\": [\n        {\n            \"item_order_id\": \"xxx\"\n        }\n    ],\n    \"times_card_refund_param\": {\n        \"times_card_refund_type\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeRefundCreateRefundV2Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"refund_id\": \"ot12312312\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeRefundMerchantAuditCallbackV2Request.json",
    "content": "{\n    \"out_refund_no\": \"1123\",\n    \"refund_audit_status\": 2,\n    \"deny_message\": \"不同意退款\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeRefundQueryRefundV2Request.json",
    "content": "{\n    \"refund_id\": \"ot1231231\",\n    \"out_refund_no\": \"12313\",\n    \"order_id\": \"ots712313\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeRefundQueryRefundV2Response.json",
    "content": "{\n    \"data\": {\n        \"refund_list\": [\n            {\n                \"merchant_audit_detail\": {\n                    \"audit_status\": \"AGREE\",\n                    \"need_refund_audit\": 1,\n                    \"refund_audit_deadline\": 1673253628929\n                },\n                \"create_at\": 1671994501000,\n                \"refund_source\": 1,\n                \"refund_at\": 1672994501000,\n                \"refund_status\": \"SUCCESS\",\n                \"refund_total_amount\": 1992,\n                \"item_order_detail\": [\n                    {\n                        \"item_order_id\": \"800000000101757849613437984\",\n                        \"refund_amount\": 996\n                    },\n                    {\n                        \"refund_amount\": 996,\n                        \"item_order_id\": \"800000000101757824013547984\"\n                    }\n                ],\n                \"message\": \"\",\n                \"order_id\": \"8000000001017577984\",\n                \"out_refund_no\": \"ext_refund_no_718536707992153502030519534\",\n                \"refund_id\": \"718536707992153502030519534\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"02168173575240700000000000000000000ffff0a706f38ab32d2\",\n        \"now\": 1681735753\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeSettleCreateSettleV2Request.json",
    "content": "{\n    \"out_order_no\": \"out_order_example_1\",\n    \"out_settle_no\": \"out_settle_example_1\",\n    \"item_order_id\": \"ot78318372940872837161\",\n    \"settle_desc\": \"分账描述\",\n    \"settle_params\": \"[{\\\"merchant_uid\\\":\\\"分账方商户号1\\\",\\\"amount\\\":100}]\",\n    \"cp_extra\": \"test\",\n    \"notify_url\": \"https://www.xxxx.com\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeSettleCreateSettleV2Response.json",
    "content": "{\n    \"data\": {\n        \"settle_id\": \"ot7053723547314981164\",\n        \"inner_settle_id\": \"7115250727504854611\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeSettleQuerySettleV2Request.json",
    "content": "{\n    \"out_order_no\": \"\",\n    \"out_settle_no\": \"\",\n    \"order_id\": \"ot7053735385750849836\",\n    \"settle_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiAppsTrade/AppsTradeSettleQuerySettleV2Response.json",
    "content": "{\n    \"data\": [\n        {\n            \"out_order_no\": \"out_order_example_1\",\n            \"out_settle_no\": \"out_settle_example_1\",\n            \"order_id\": \"ot7053735385750849836\",\n            \"settle_id\": \"ot7053723547314981164\",\n            \"settle_amount\": 1000,\n            \"settle_status\": \"SUCCESS\",\n            \"settle_detail\": \"商户号68882720803499563550-分成金额(分)840\",\n            \"settle_time\": 1639733782000,\n            \"rake\": 60,\n            \"commission\": 100,\n            \"cp_extra\": \"test\"\n        }\n    ],\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"2022092115392201020812109511046\",\n        \"now\": 1663745962686,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetOpenIdByBV1Request.json",
    "content": "{\n    \"b_client_key\": \"XXXXXX\",\n    \"c_client_key\": \"XXXXXX\",\n    \"open_id\": \"XXXXXXX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetOpenIdByBV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"open_id\": \"xxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetOpenIdByCV1Request.json",
    "content": "{\n    \"b_client_key\": \"XXXXXX\",\n    \"c_client_key\": \"XXXXXX\",\n    \"open_id\": \"XXXXXXX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetOpenIdByCV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"open_id\": \"xxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetRelatedIdV1Request.json",
    "content": "{\n    \"open_id\": \"Cv4PoJXaTPn63rNu\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinAuth/DouyinAuthGetRelatedIdV1Response.json",
    "content": "{\n    \"log_id\": \"202405291440576E078D8757B9\",\n    \"data\": {\n        \"allied_id\": \"ZsNCZC1dUR\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinIM/DouyinIMGetAppletTemplateV1Request.json",
    "content": "{\n    \"cursor\": 0,\n    \"count\": 50\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinIM/DouyinIMGetAppletTemplateV1Response.json",
    "content": "{\n    \"extra\": {\n        \"now\": 1660109739,\n        \"logid\": \"20220810133539010174255181020C5143\",\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"has_more\": false,\n        \"cursor\": 0,\n        \"list\": [\n            {\n                \"status\": 1,\n                \"title\": \"邀请你一起打决胜巅峰匹配赛\",\n                \"content\": \"点击加入\",\n                \"card_template_id\": \"@72MqHzC5kqIEgB56A10R9n1psNsNe8gPbkeqQAHKbHqoQ5jL3za3OAGvMtWtnszA\",\n                \"card_type\": 1,\n                \"media_id\": \"@72MqHzC5kqIEgB56A10R9n1psNsNe8gPbkeqQAHKbHqoQ5jL3za3OAGvMt\",\n                \"name\": \"决胜巅峰\",\n                \"app_icon_url\": \"https://p3-developer-sign.bytemaimg.com/tos-cn-i-ke512zj2cu/a37b56ae3da84c2b98e4ad3e1ac7a1320~tplv-ke512zj2cu-144x144.jpeg?x-expires=2628437565&x-signature=kRfqYlvF17z%2FYdspB5lHAEQBzQM%3D\",\n                \"create_time\": 1571075129,\n                \"update_time\": 1571075129\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinIM/DouyinIMSetAppletTemplateV1Request.json",
    "content": "{\n    \"card_type\": 1,\n    \"title\": \"title测试\",\n    \"content\": \"content测试\",\n    \"media_id\": \"@9VwNxuKKBZ03MXG7M8ooWM6+iib0bqafYog16knsa1AUPKajyCbkeFIfvjDAhgpsWGXCimkBdNNS2dWASnfgCXqIi7Z6mT1hatJT3UhT8k963Osx4MrrU60NZwIlVg3j\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinIM/DouyinIMSetAppletTemplateV1Response.json",
    "content": "{\n    \"extra\": {\n        \"now\": 1660109739,\n        \"logid\": \"20220810133539010174255181020C5143\",\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"card_template_id\": \"@72MqHzC5kqIEgB56A10R9n1psNsNe8gPbkeqQAHKbHqoQ5jL3za3OAGvMtWtnszA\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinInteractive/DouyinInteractiveIntentionLogListV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20230419214506BBF9134A4E1E961A3F70\",\n    \"data\": {\n        \"intention_log_infos\": [\n            {\n                \"content\": \"{\\\"event\\\":\\\"im_receive_msg\\\",\\\"client_key\\\":\\\"aw4194pysb89vab\\\",\\\"from_user_id\\\":\\\"eb2921c7-b771-4a7f-913d-5c83edf51f62\\\",\\\"to_user_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\",\\\"content\\\":{\\\"conversation_short_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912TqPvqFPJF1qwykJ1kSZvX760zdRmYqig357zEBxvhDiz3L1fs5/fgoye6gkA==\\\",\\\"server_message_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912fqP/+HOZZ3qAqlL1UVaPj560zdRmYqig357zEBfmnprZLqmDe9tIPiPwahqQ==\\\",\\\"conversation_type\\\":1,\\\"create_time\\\":1681799848725,\\\"message_type\\\":\\\"image\\\",\\\"source\\\":\\\"\\\",\\\"scene_type\\\":100,\\\"user_infos\\\":[{\\\"open_id\\\":\\\"eb2921c7-b771-4a7f-913d-5c83edf51f62\\\",\\\"nick_name\\\":\\\"普皮123\\\",\\\"avatar\\\":\\\"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-i-0813_d8e6795fc59d4fa1afbb86b0ce0cfc37.jpeg?from=3782654143\\\"},{\\\"open_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\",\\\"nick_name\\\":\\\"企业\\\",\\\"avatar\\\":\\\"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/mosaic-legacy_3792_5112637127.jpeg?from=3782654143\\\"}]},\\\"log_id\\\":\\\"02168179984822600000000000000000000ffff0ac63e9d1d0a4b\\\",\\\"event_id\\\":\\\"\\\"}\",\n                \"event\": \"im_receive_msg\",\n                \"event_time\": \"1681799849067\",\n                \"open_id\": \"eb2921c7-b771-4a7f-913d-5c83edf123\"\n            },\n            {\n                \"content\": \"{\\\"event\\\":\\\"im_send_msg\\\",\\\"client_key\\\":\\\"aw4194pysb89vab\\\",\\\"from_user_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e64743132\\\",\\\"to_user_id\\\":\\\"eb2921c7-b771-4a7f-913d-5c83edf51f62\\\",\\\"content\\\":{\\\"conversation_short_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912TqPvqFPJF1qwykJ1kSZvX760zdRmYqig357zEBxvhDiz3L1fs5/fgoye6gkA==\\\",\\\"server_message_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912fqP/+HPpZ4oAOlLlkQafj160zdRmYqig357zEBPcdyuvL4/H9HyycVFwEKIQ==\\\",\\\"conversation_type\\\":1,\\\"create_time\\\":1681799925320,\\\"message_type\\\":\\\"text\\\",\\\"source\\\":\\\"\\\",\\\"scene_type\\\":100,\\\"text\\\":\\\"文字自足\\\",\\\"user_infos\\\":[{\\\"open_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\",\\\"nick_name\\\":\\\"企业123\\\",\\\"avatar\\\":\\\"https://p6.douyinpic.com/aweme/720x720/aweme-avatar/mosaic-legacy_3792_5112637127.jpeg?from=3782654143\\\"},{\\\"open_id\\\":\\\"eb2921c7-b771-4a7f-913d-5c83edf51f62\\\",\\\"nick_name\\\":\\\"普皮***\\\",\\\"avatar\\\":\\\"https://p6.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-i-0813_d8e6795fc59d4fa1afbb86b0ce0cfc37.jpeg?from=3782654143\\\"}]},\\\"log_id\\\":\\\"02168179992492200000000000000000000ffff0ac63e9d5dcc33\\\",\\\"event_id\\\":\\\"\\\"}\",\n                \"event\": \"im_send_msg\",\n                \"event_time\": \"1681799925570\",\n                \"open_id\": \"eb2921c7-b771-4a7f-913d-5c83edf123\"\n            },\n            {\n                \"content\": \"{\\\"event\\\":\\\"im_group_receive_msg\\\",\\\"client_key\\\":\\\"aw4194pysb89vab\\\",\\\"from_user_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e64743242\\\",\\\"to_user_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\",\\\"content\\\":{\\\"conversation_short_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912frNf+KOp15oAmgJlMSaPT560zdRmYqig357zEBxptq5l+blGKwmg/aUg64ww==\\\",\\\"server_message_id\\\":\\\"@9VxQh6rGTNAjPS/4do48Es7912fqP/+EPZxwrQ+jJ1MSbfT960zdRmYqig357zEBGtMlPqmU1K7J6z2Z21MU4w==\\\",\\\"conversation_type\\\":2,\\\"create_time\\\":1681800184637,\\\"message_type\\\":\\\"text\\\",\\\"source\\\":\\\"\\\",\\\"scene_type\\\":100,\\\"text\\\":\\\"给哼哼唧唧\\\",\\\"owner_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\",\\\"user_infos\\\":[{\\\"open_id\\\":\\\"65dcbfb7-cddc-409c-9a61-8cff1ed1fb5e\\\",\\\"nick_name\\\":\\\"我是852\\\",\\\"avatar\\\":\\\"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-avt-0015_7f42cb25ea95710122fe0b6b48546040.jpeg?from=3782654143\\\"},{\\\"open_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647***\\\",\\\"nick_name\\\":\\\"企业***\\\",\\\"avatar\\\":\\\"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/mosaic-legacy_3792_5112637127.jpeg?from=3782654143\\\"}]},\\\"log_id\\\":\\\"02168180018421000000000000000000000ffff0a9fd6cfbd8f79\\\",\\\"event_id\\\":\\\"\\\"}\",\n                \"event\": \"im_group_receive_msg\",\n                \"event_time\": \"1681800184933\",\n                \"open_id\": \"65dcbfb7-cddc-409c-9a61-8cff1ad12\"\n            },\n            {\n                \"content\": \"{\\\"event\\\":\\\"im_enter_direct_msg\\\",\\\"client_key\\\":\\\"aw4194pysb89vab\\\",\\\"from_user_id\\\":\\\"65dcbfb7-cddc-409c-9a61-8cff1ed1fb5e\\\",\\\"to_user_id\\\":\\\"28940f5a-d8a4-4258-8a74-6a8e647412\\\",\\\"content\\\":\\\"{\\\\\\\"conversation_short_id\\\\\\\":\\\\\\\"@9VxQh6rGTNAjPS/4do48Es7912fqP/+EPpZyqAOvLVUSafX860zdRmYqig357zEBtAf1bCgtWX+PDLlgPeichg==\\\\\\\",\\\\\\\"server_message_id\\\\\\\":\\\\\\\"@9VxQh6rGTNAjPS/4do48Es7912fqP/+FO5R0rgqlKlkVbfH760zdRmYqig357zEBTSmfydGzCdTVnhY17yjSIA==\\\\\\\",\\\\\\\"conversation_type\\\\\\\":1,\\\\\\\"create_time\\\\\\\":1681800236901,\\\\\\\"scene_type\\\\\\\":4,\\\\\\\"user_infos\\\\\\\":[{\\\\\\\"open_id\\\\\\\":\\\\\\\"65dcbfb7-cddc-409c-9a61-8cff1ed1fb5e\\\\\\\",\\\\\\\"nick_name\\\\\\\":\\\\\\\"我是8068\\\\\\\",\\\\\\\"avatar\\\\\\\":\\\\\\\"https://p26.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-avt-0015_7f42cb25ea95710122fe0b6b48546040.jpeg?from=3782654143\\\\\\\"},{\\\\\\\"open_id\\\\\\\":\\\\\\\"28940f5a-d8a4-4258-8a74-6a8e647431be\\\\\\\",\\\\\\\"nick_name\\\\\\\":\\\\\\\"企业**\\\\\\\",\\\\\\\"avatar\\\\\\\":\\\\\\\"https://p26.douyinpic.com/aweme/720x720/aweme-avatar/mosaic-legacy_3792_5112637127.jpeg?from=3782654143\\\\\\\"}]}\\\",\\\"log_id\\\":\\\"02168180023688800000000000000000000ffff0a9fd6cfe9bed8\\\"}\",\n                \"event\": \"im_enter_direct_msg\",\n                \"event_time\": \"1681800237112\",\n                \"open_id\": \"65dcbfb7-cddc-409c-9a61-8cff1e214\"\n            }\n        ],\n        \"query_session\": \"@9VxQh6rGTNAjPS/4do48Es6xxzu8dbzteco2xlHzZkMZfI6IpjicIDsWyFW7yGRVD2G/7zZQcvpdwOmMGiG0UUKGpe976ngABqEXkgIvtgDegRxR8HzftKftzzNWF5nIEWg4zNLU9OCea61/v1P9HhMc5H1Lfs+JnxrMr5KNmKQ=\",\n        \"has_more\": true\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinRole/DouyinRoleCheckV1Request.json",
    "content": "{\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\",\n    \"douyin_shortId\": \"12345678\",\n    \"role_labels\": [ \"COMPANY_BAND\", \"AUTH_COMPANY\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinRole/DouyinRoleCheckV1Response.json",
    "content": "{\n    \"data\": {\n        \"match_result\": true,\n        \"filter_role\": {\n            \"COMPANY_BAND\": false\n        }\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"02169175717697700000000000000000000ffff0a981c1c423a88\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetChatV1Request.json",
    "content": "{\n    \"expire_at\": 1684116049,\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetChatV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"snssdk1128://webview?url=https%3A%2F%2Fopen.douyin.com%2Fplatform%2Foauth%2Fslink%2F%3Ftoken%3D3f88af29866b5e15e0cd70390181d2d9d2a7%26client_key%3Dawr8bfr64vxgk036\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023030419213553F1D75DDEBBF96B037B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetItemInfoV1Request.json",
    "content": "{\n    \"expire_at\": 1684116049,\n    \"video_id\": 6678492553072936971\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetItemInfoV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"snssdk1128://webview?url=https%3A%2F%2Fopen.douyin.com%2Fplatform%2Foauth%2Fslink%2F%3Ftoken%3D3f88af29866b5e15e0cd70390181d2d9d2a7%26client_key%3Dawr8bfr64vxgk036\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023030419213553F1D75DDEBBF96B037B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetLiveV1Request.json",
    "content": "{\n    \"expire_at\": 1684116049,\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetLiveV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"snssdk1128://webview?url=https%3A%2F%2Fopen.douyin.com%2Fplatform%2Foauth%2Fslink%2F%3Ftoken%3D3f88af29866b5e15e0cd70390181d2d9d2a7%26client_key%3Dawr8bfr64vxgk036\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023030419213553F1D75DDEBBF96B037B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetShareV1Request.json",
    "content": "{\n    \"client_ticket\": \"#N8vMF6eko0RZRN/c4KWBMG7YaFjDqQkx+bwU6gpO428lz6ad+NNKlTDCr7v3Vthje7ToUT/xGxxxxx\",\n    \"expire_at\": 1684116049,\n    \"hashtag_list\": [\n        \"hashtag1\",\n        \"hashtag2\",\n        \"hashtag3\"\n    ],\n    \"micro_app_info\": {\n        \"app_id\": \"ttef9b992670bxxxx\",\n        \"app_title\": \"小程序title\",\n        \"app_url\": \"pages/movie/index?utm_source=share_wxapp&cityId=10&cityName=%E4%B8%8A%E6%B5%B7\",\n        \"description\": \"小程序描述语\"\n    },\n    \"poi_id\": \"6678492553072936971\",\n    \"share_to_publish\": 0,\n    \"state\": \"1759435947641859\",\n    \"title\": \"测试视频\",\n    \"video_path\": \"https://xxxxx/over40M.mp4\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetShareV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"snssdk1128://webview?url=https%3A%2F%2Fopen.douyin.com%2Fplatform%2Foauth%2Fslink%2F%3Ftoken%3D3f88af29866b5e15e0cd70390181d2d9d2a7%26client_key%3Dawr8bfr64vxgk036\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023030419213553F1D75DDEBBF96B037B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetUserProfileV1Request.json",
    "content": "{\n    \"expire_at\": 1684116049,\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinSchema/DouyinSchemaGetUserProfileV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"snssdk1128://webview?url=https%3A%2F%2Fopen.douyin.com%2Fplatform%2Foauth%2Fslink%2F%3Ftoken%3D3f88af29866b5e15e0cd70390181d2d9d2a7%26client_key%3Dawr8bfr64vxgk036\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023030419213553F1D75DDEBBF96B037B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinUser/DouyinUserFansDataV1Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"fans_data\": {\n            \"active_days_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ],\n            \"age_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ],\n            \"all_fans_num\": \"10000\",\n            \"device_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ],\n            \"flow_contributions\": [\n                {\n                    \"all_sum\": 0,\n                    \"fans_sum\": 0,\n                    \"flow\": \"vv\"\n                }\n            ],\n            \"gender_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ],\n            \"geographical_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ],\n            \"interest_distributions\": [\n                {\n                    \"item\": \"\",\n                    \"value\": 0\n                }\n            ]\n        }\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoBasicInfoV1Request.json",
    "content": "{\n    \"video_ids\": [\n        \"722781567863447****\",\n        \"722785653423142****\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoBasicInfoV1Response.json",
    "content": "{\n    \"data\": {\n        \"list\": [\n            {\n                \"create_time\": 1571075129,\n                \"item_id\": \"@72M0WCqtxuYGiwtkVUYFvH1itu8zRM8IaUCtRwbNa32+7uo2083g2PcEG70*****\",\n                \"media_type\": 4,\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"video_id\": \"722781567863447****\",\n                \"video_status\": 5,\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202305310903463FF1BD14FC15E33B60C9\",\n        \"now\": 1685495027\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoCreateVideoV1Response.json",
    "content": "﻿{\n    \"data\": {\n        \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoDataV1Response.json",
    "content": "{\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393\n    },\n    \"data\": {\n        \"list\": [\n            {\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"create_time\": 1571075129,\n                \"video_status\": 1,\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"statistics\": {\n                    \"forward_count\": 10,\n                    \"comment_count\": 100,\n                    \"digg_count\": 200,\n                    \"download_count\": 10,\n                    \"play_count\": 300,\n                    \"share_count\": 10\n                },\n                \"is_top\": false,\n                \"is_reviewed\": true,\n                \"media_type\": 2\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoListV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"create_time\": 1234567890,\n                \"is_reviewed\": true,\n                \"is_top\": false,\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"statistics\": {\n                    \"comment_count\": \"100\",\n                    \"digg_count\": \"200\",\n                    \"download_count\": \"10\",\n                    \"forward_count\": \"10\",\n                    \"play_count\": \"300\",\n                    \"share_count\": \"10\"\n                },\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"video_status\": \"1\",\n                \"media_type\": 2\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/DouyinVideoUploadVideoV1Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"video\": {\n            \"height\": \"1280\",\n            \"video_id\": \"v0200f450000bn8c6aa0ifki8fikg1b0\",\n            \"width\": \"720\"\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByItemV1Response.json",
    "content": "{\n    \"data\": {\n        \"iframe_code\": \"<iframe width=\\\"720\\\" height=\\\"1280\\\" frameborder=\\\"0\\\" src=\\\"https://open.douyin.com/player/video?vid=7146408143612******&autoplay=0\\\" referrerpolicy=\\\"unsafe-url\\\" allowfullscreen></iframe>\",\n        \"video_height\": 1280,\n        \"video_title\": \"#hashtag1#hashtag2#hashtag3#天气不错\",\n        \"video_width\": 720\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20221025205044010225243125063FAD62\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Iframe/DouyinVideoGetIframeByVideoV1Response.json",
    "content": "{\n    \"data\": {\n        \"iframe_code\": \"<iframe width=\\\"720\\\" height=\\\"1280\\\" frameborder=\\\"0\\\" src=\\\"https://open.douyin.com/player/video?vid=7146408143612******&autoplay=0\\\" referrerpolicy=\\\"unsafe-url\\\" allowfullscreen></iframe>\",\n        \"video_height\": 1280,\n        \"video_title\": \"#hashtag1#hashtag2#hashtag3#天气不错\",\n        \"video_width\": 720\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20221025205044010225243125063FAD62\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Image/DouyinVideoCreateImageTextV1Request.json",
    "content": "{\n    \"text\": \"hello\",\n    \"image_list\": [\n        \"@9VxVx/WTUc8oLGK3atFqTs7912buPvyEOpZwrGXicBIOPa/hjm3hclsVqTmU0w5vXzSTjT8DIoZTgobeSiyxWSiK0b5zoAIMB+tr00Zd/EEKk3AjVvddEe+yNH******\",\n        \"@9VxVx/WTUc8oLGK3atFqTs7912buPvyEOpZwrGXicBIOPa/hjm3hclsVqWSW1AhoXWOX3W5WJYYGiIfeSCHjA3zW3bZ/pQMMUOxt00Zd/EFuktaE3svZVvfC6f******\"\n    ],\n    \"micro_app_id\": \"ttef9b992670b151ec\",\n    \"micro_app_url\": \"pages/xxx/xxx\",\n    \"micro_app_title\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Image/DouyinVideoCreateImageTextV1Response.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V******\",\n        \"video_id\": \"721513296718897****\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Image/DouyinVideoUploadImageV1Response.json",
    "content": "{\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"image\": {\n            \"image_id\": \"@9VxVx/WTUc8oLGK3atFqTs7912buPvyEOpZwrGXicBIOPa/hjm3hclsVqTXHgl5uWzLAjmUFIYZSiYbeTyfjDHzZ0eB8qg8IAutr00Zd/EHaEc/kgyuawGEDO1******\",\n            \"width\": 360,\n            \"height\": 360\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Part/DouyinVideoCompleteVideoPartUploadV1Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"video\": {\n            \"height\": \"1280\",\n            \"video_id\": \"v0200f450000bn8c6aa0ifki8fikg1b0\",\n            \"width\": \"720\"\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiDouyinVideo/Part/DouyinVideoInitVideoPartUploadV1Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"upload_id\": \"@8hxdhauTCM\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIM/IMMessageResourcesResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202407110422171F56841DE9E1C23E715C\",\n    \"data\": {\n        \"media_type\": \"image\",\n        \"url\": \"https://api-normal.amemv.com/im_open/media?type=image&secret=skv2Z1fhiKw1gGBsGa4%3D\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionAddAppTestRelationV1Request.json",
    "content": "{\n    \"type\": \"goods\",\n    \"ref_id_list\": [\n        \"7176108397883017260\",\n        \"7101120811901126700\"\n    ],\n    \"operator\": \"小王\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionAddAppTestRelationV1Response.json",
    "content": "{\n    \"extra\": {\n        \"logid\": \"202301111424086A0BFBC6E9DA5697FBCF\",\n        \"now\": 1673418248,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\"\n    },\n    \"BaseResp\": {\n        \"StatusMessage\": \"success\",\n        \"StatusCode\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionDeleteAppTestRelationV1Request.json",
    "content": "{\n    \"type\": \"goods\",\n    \"ref_id_list\": [\n        \"7176108397883017260\",\n        \"7101120811901126700\"\n    ],\n    \"operator\": \"小王\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionDeleteAppTestRelationV1Response.json",
    "content": "{\n    \"extra\": {\n        \"logid\": \"202301111424086A0BFBC6E9DA5697FBCF\",\n        \"now\": 1666594475,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\"\n    },\n    \"BaseResp\": {\n        \"StatusMessage\": \"success\",\n        \"StatusCode\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionQueryAppTestRelationV1Request.json",
    "content": "{\n    \"type\": \"goods\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/AppTestRelation/IndustrySolutionQueryAppTestRelationV1Response.json",
    "content": "{\n    \"ref_id_list\": [\n        \"7176108397883017260\",\n        \"7101120811901126700\"\n    ],\n    \"extra\": {\n        \"logid\": \"202301111424086A0BFBC6E9DA5697FBCF\",\n        \"now\": 1666595790,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\"\n    },\n    \"BaseResp\": {\n        \"StatusMessage\": \"success\",\n        \"StatusCode\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/Implementation/IndustrySolutionQueryImplementationV1Request.json",
    "content": "{\n    \"solution_id_list\": [ \"7271144788200628539\", \"7271144788200628249\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiIndustry/Implementation/IndustrySolutionQueryImplementationV1Response.json",
    "content": "{\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"success\",\n        \"logid\": \"02168674325065300000000000000000000ffff0a9a6263be866c\",\n        \"now\": 1686743253\n    },\n    \"solution_eff_ability_impl_list\": [\n        {\n            \"extension_ability_impl_list\": [\n                {\n                    \"ability_identity\": \"/ext/common/test/runtime_field_test\",\n                    \"app_id\": \"tt0feb7956908c100401\",\n                    \"industry_code\": \"test-stress\",\n                    \"name\": \"Tesla自动化_solution_open_api扩展点\",\n                    \"prod_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/custom_debug\",\n                    \"test_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/dev/custom_debug\"\n                },\n                {\n                    \"app_id\": \"tt0feb7956908c100401\",\n                    \"industry_code\": \"test-stress\",\n                    \"name\": \"压测扩展点\",\n                    \"prod_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/custom_debug\",\n                    \"test_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/dev/custom_debug\",\n                    \"ability_identity\": \"/ext/common/test/stress\"\n                }\n            ],\n            \"message_ability_impl_list\": [\n                {\n                    \"test_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/dev/custom_debug\",\n                    \"ability_identity\": \"/msg/common/test/runtime_field_test\",\n                    \"app_id\": \"tt0feb7956908c100401\",\n                    \"industry_code\": \"test-stress\",\n                    \"name\": \"Tesla自动化_solution_open_api消息\",\n                    \"prod_url\": \"https://open-platform-qa-boe.byted.org/api/trade/common/v2/custom_debug\"\n                }\n            ],\n            \"solution_id\": \"7271144788200628249\"\n        }\n    ],\n    \"app_config_item_list\": [\n        {\n            \"identity\": \"/cfg/trade/fulfillment/qrcode_redirect\",\n            \"value\": \"https://ss.com/app/open/delivery_qrcode_redirect\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxAgencyQueryBillLinkV2Request.json",
    "content": "{\n    \"bill_date\": \"2023-11-11\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxAgencyQueryBillLinkV2Response.json",
    "content": "{\n    \"err_no\": 123,\n    \"err_msg\": \"GPavn5mMju\",\n    \"log_id\": \"xR9WNgq3XZ\",\n    \"data\": {\n        \"bill_link\": \"https://p9-taskbox-sign.byteimg.com/tos-cn-i-ma097vhtnq/fd3fdb160c7a4593a4aee47267c78.csv?x-expires=1701064092&x-signature=c1BKmfVnvByJFTHGqWGWPXz00XE%3D\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxAgencyQueryVideoSummaryDataV2Request.json",
    "content": "{\n    \"video_ids\": [ 8531760050956799274 ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxAgencyQueryVideoSummaryDataV2Response.json",
    "content": "{\n    \"data\": [\n        {\n            \"billing_gmv_td\": 12,\n            \"biling_refund_gmv_td\": 12,\n            \"video_id\": 12,\n            \"task_id\": 12,\n            \"agent_id\": \"12\",\n            \"publish_time\": 1685664000\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxChangeUserBindAgentV1Request.json",
    "content": "{\n    \"douyin_id\": \"7932234\",\n    \"old_agent_id\": 8374834,\n    \"new_agent_id\": 9845245\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxGenerateAgentLinkV1Request.json",
    "content": "{\n    \"agent_id\": 32490158475755534,\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"agency_talent_uid\": \"dcc001\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxGenerateAgentLinkV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"web_link\": \"https://m.zjbyte.net/share/douyin/?token=b168b29cca00f39765a06bb683e326d3&share_channel=scan\",\n        \"app_link\": \"pages/index/index&enter_from=6&agentId=AfjkzIfjs7klji11\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxGetAgencyUserBindRecordV1Request.json",
    "content": "{\n    \"page_no\": 1,\n    \"page_size\": 10,\n    \"agent_id\": 8374834,\n    \"douyin_id\": \"7932234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxGetAgencyUserBindRecordV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"results\": [\n            {\n                \"agent_id\": 8374834,\n                \"douyin_id\": \"121321\",\n                \"bind_time\": 1684339200,\n                \"unbind_time\": 0\n            },\n            {\n                \"agent_id\": 8374834,\n                \"douyin_id\": \"121321\",\n                \"bind_time\": 1684339200,\n                \"unbind_time\": 0\n            }\n        ],\n        \"total_count\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryAppTaskIdV1Request.json",
    "content": "{\n    \"appid\": \"abcdefgh123456\",\n    \"create_start_time\": 1690300800,\n    \"create_end_time\": 1690732800\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryAppTaskIdV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_ids\": [\n            1130941336206704600,\n            1130954062622638100,\n            1130965975075143700\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryTaskInfoV1Request.json",
    "content": "{\n    \"appid\": \"tt7130222846521393196\",\n    \"query_params_type\": 1,\n    \"query_params_content\": \"query_params_content\",\n    \"page_no\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryTaskInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"total\": 1,\n        \"page_count\": 1,\n        \"app_id\": \"ttf31985a46c214faf\",\n        \"tasks\": [\n            {\n                \"anchor_title\": \"一个测试任务\",\n                \"appid\": \"ttcfdbb96650e33350\",\n                \"payment_allocate_ratio\": 7000,\n                \"platform_address_app\": \"subPackage/pages/taskDetail/index?taskId=7159000769277214764&enter_from=7\",\n                \"platform_address_web\": \"http://boe.m.zjbyte.net/share/douyin/?token=bd9ce2083d6aed332dcd9f9721b91ec4&share_channel=scan\",\n                \"refer_ma_captures\": [\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/368d6285a0514fd3a230c2bd0873f2d3~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=F8XZRENkmZOanX5JZt9LoiaQiws%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/f83566dd4b924791bd0364af588cad76~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=2NBX9lYCvAyq681nR%2FGUlZudvZU%3D\"\n                ],\n                \"refer_video_captures\": [\n                    \"\"\n                ],\n                \"reject_reason\": \"落地页发生变更\",\n                \"start_page\": \"page/detail/detail?id=1\",\n                \"status\": 5,\n                \"task_desc\": \"一个测试任务aaa一个测试任务aaa一个测试任务aaa一个测试任务aaa一个测试任务aaa\",\n                \"task_end_time\": 1669695653,\n                \"task_icon\": \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/93e9ed06180c4c15b397e81653b20313~tplv-giyy2m8f28-144x144.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=BydBniNTuG%2FoYlVhHNVIRdZNcaU%3D\",\n                \"task_id\": 7159000769277214764,\n                \"task_name\": \"一个测试任务aaa\",\n                \"task_refund_period\": 0,\n                \"task_settle_type\": 1,\n                \"task_start_time\": 1666846303,\n                \"task_tags\": [\n                    \"娱乐测试\",\n                    \"小说\"\n                ],\n                \"task_type\": 1,\n                \"oriented_talent_rel_list\": [\n                    {\n                        \"cooperation_state\": 2,\n                        \"douyin_id\": \"lw123456\"\n                    },\n                    {\n                        \"cancel_operator\": 1,\n                        \"cooperation_state\": 3,\n                        \"douyin_id\": \"lv789\"\n                    }\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryTaskVideoStatusV2Request.json",
    "content": "{\n    \"video_publish_start_time\": 1683689418,\n    \"video_publish_end_time\": 1684380619,\n    \"page_num\": 1,\n    \"page_size\": 10,\n    \"douyin_id\": \"221321\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"agent_id\": 135436486735424\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryTaskVideoStatusV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"results\": [\n            {\n                \"video_id\": 1234,\n                \"video_status\": 2\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxQueryViolateTalentListV2Response.json",
    "content": "{\n    \"log_id\": \"20231220182824C19C3Axxxxx528B5\",\n    \"data\": {\n        \"violate_talents_url\": \"https://p9-taskxxign.byteimg.com/tos-cn-i-ma097vhtnq/6cde6a443381xxxxxd5c7caaa6.csv\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxSaveAgentV1Request.json",
    "content": "{\n    \"agent_id\": 32490158475755534,\n    \"agent_nickname\": \"撮合团长A\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ApiMatch/MatchTaskboxSaveAgentV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"agent_id\": 32490158475755536\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Anchor/DataExternalAnchorMpItemClickDistributionResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"mp_item_click_json\": \"{\\\"视频1\\\":9,\\\"视频2\\\":16}\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/HotVideo/DataExternalBillboardHotVideoResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"list\": [\n            {\n                \"comment_count\": 100,\n                \"item_cover\": \"https://example.com/x.jpeg\",\n                \"rank\": 1,\n                \"play_count\": 300,\n                \"author\": \"昵称\",\n                \"digg_count\": 200,\n                \"hot_words\": \"手机,视频,热门\",\n                \"hot_value\": 10000,\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"title\": \"测试视频 #测试话题 @抖音小助手\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Live/DataExternalBillboardLiveResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"cover\": \"https://example.com/x.jpeg\",\n                \"title\": \"测试标题\",\n                \"nickname\": \"昵称\",\n                \"hot_value\": 10000\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Music/DataExternalBillboardMusicHotResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"cover\": \"https://example.com/x.jpeg\",\n                \"title\": \"测试标题\",\n                \"duration\": 10,\n                \"author\": \"昵称\",\n                \"use_count\": 10000,\n                \"share_url\": \"https://example.com/xxx\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Prop/DataExternalBillboardPropResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"show_cnt\": 300,\n                \"daily_issue_percent\": \"30.61%\",\n                \"daily_collection_cnt\": 100,\n                \"daily_play_cnt\": 100,\n                \"rank_change\": \"1\",\n                \"name\": \"测试名\",\n                \"shoot_cnt\": 300,\n                \"daily_issue_cnt\": 300,\n                \"effect_value\": 10000\n            }\n        ]\n    },\n    \"extra\": {\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportBasketballResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200,\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"item_cover\": \"https://example.com/x.jpeg\",\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"extra\": {\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportComprehensiveResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"item_cover\": \"https://example.com/x.jpeg\",\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\"\n                    }\n                ],\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200\n            }\n        ]\n    },\n    \"extra\": {\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportCultureResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200,\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"extra\": {\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportFitnessResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ],\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportOutdoorsResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200,\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ],\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportOverallResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200,\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportSoccerResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ],\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Sport/DataExternalBillboardSportTableTennisResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"follower_count\": 200,\n                \"onbillbaord_times\": 200,\n                \"effect_value\": 10000,\n                \"video_list\": [\n                    {\n                        \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                        \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                        \"item_cover\": \"https://example.com/x.jpeg\"\n                    }\n                ],\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"nickname\": \"昵称\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Stars/DataExternalBillboardStarsResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"nickname\": \"昵称\",\n                \"avatar\": \"https://example.com/x.jpeg\",\n                \"effect_value\": 10000\n            }\n        ]\n    },\n    \"extra\": {\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Billboard/Topic/DataExternalBillboardTopicResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"rank_change\": \"1\",\n                \"title\": \"测试标题\",\n                \"effect_value\": 10000\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Fans/DataExternalFansFavouriteResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"rank\": 1,\n                \"keyword\": \"关键词测试\",\n                \"hot_value\": 10000\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Fans/DataExternalFansSourceResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"source\": \"来源key\",\n                \"percent\": \"31.32%\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Item/DataExternalItemBaseResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result\": {\n            \"avg_play_duration\": \"200\",\n            \"total_comment\": \"200\",\n            \"total_like\": \"200\",\n            \"total_play\": \"200\",\n            \"total_share\": \"200\"\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Item/DataExternalItemCommentResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"comment\": \"200\",\n                \"date\": \"yyyy-MM-dd\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Item/DataExternalItemLikeResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"like\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Item/DataExternalItemPlayResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"play\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/Item/DataExternalItemShareResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"share\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIBaseResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"detail_vv\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIBillboardResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"poi_id\": \"\",\n                \"poi_name\": \"\",\n                \"rank\": 0,\n                \"score\": \"\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIClaimListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"address\": \"\",\n                \"name\": \"\",\n                \"poi_id\": \"\"\n            }\n        ],\n        \"total\": 0\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIServiceBaseResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"click_uv\": \"200\",\n                \"date\": \"yyyy-MM-dd\",\n                \"exposure_uv\": \"200\",\n                \"success_order_cnt\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIServiceUserResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"age_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ],\n        \"city_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ],\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"gender_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/POI/DataExternalPOIUserResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"age_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ],\n        \"city_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ],\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"gender_list\": [\n            {\n                \"key\": \"\",\n                \"value\": \"\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserCommentResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_comment\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserFansResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_fans\": \"200\",\n                \"total_fans\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserItemResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_issue\": \"200\",\n                \"new_play\": \"200\",\n                \"total_issue\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserLikeResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_like\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserProfileResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"profile_uv\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DataExternal/User/DataExternalUserShareResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_share\": \"200\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/DevTool/DevToolMicroAppIsLegalResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Discovery/DiscoveryEntertainmentRankItemResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"active_time\": \"2020-03-31 12:00:00\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"list\": [\n            {\n                \"actors\": [\n                    \"徐峥\",\n                    \"袁泉\",\n                    \"沈腾\",\n                    \"吴云芳\",\n                    \"陈奇\",\n                    \"黄梅莹\",\n                    \"欧丽娅\",\n                    \"贾冰\",\n                    \"郭京飞\"\n                ],\n                \"areas\": [\"中国\"],\n                \"directors\": [\"徐峥\"],\n                \"discussion_hot\": 789200,\n                \"hot\": 789200,\n                \"id\": \"6399487713065566465\",\n                \"influence_hot\": 789200,\n                \"maoyan_id\": \"1250696\",\n                \"name\": \"囧妈\",\n                \"name_en\": \"Lost in Russia\",\n                \"poster\": \"https://p3-dy.bytecdn.cn/obj/compass/9ac412ae054b57f69c0967a8eb5e25c9\",\n                \"release_date\": \"2020-01-25\",\n                \"search_hot\": 684900,\n                \"tags\": [\"喜剧\"],\n                \"topic_hot\": 684900,\n                \"type\": 1\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Discovery/DiscoveryEntertainmentRankVersionResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 1,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"active_time\": \"2020-03-30 12:00:00\",\n                \"end_time\": \"2020-03-30 00:00:00\",\n                \"start_time\": \"2020-03-23 00:00:00\",\n                \"type\": \"1\",\n                \"version\": \"18\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Enterprise/Media/EnterpriseMediaDeleteResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Enterprise/Media/EnterpriseMediaListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 64,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"medias\": [\n            {\n                \"media_id\": \"\",\n                \"status\": \"\",\n                \"url_list\": [\"\"]\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Enterprise/Media/EnterpriseMediaTempUploadResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"media\": {\n            \"media_id\": \"\",\n            \"url_list\": [\"\"]\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Enterprise/Media/EnterpriseMediaUploadResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"media\": {\n            \"media_id\": \"\",\n            \"url_list\": [\"\"]\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Event/EventStatusListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"list\": [\n            {\n                \"event\": \"create_video\",\n                \"status\": -1\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Event/EventStatusUpdateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Fans/FansCheckResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393\n    },\n    \"data\": {\n        \"is_follower\": true,\n        \"follow_time\": 1571075129\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Aftersale/Audit/GoodLifeAftersaleAuditNotifyV1Request.json",
    "content": "{\n    \"after_sale_id\": \"8000001745679682306\",\n    \"out_after_sale_id\": \"7073845037515147278\",\n    \"is_approved\": false,\n    \"reject_reason\": {\n        \"reason_code\": [ 101, 102 ],\n        \"desc\": \"商家已出餐\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderApplyRefundV1Request.json",
    "content": "{\n    \"order_id\": \"8000001745679682306\",\n    \"out_after_sale_id\": \"1234567\",\n    \"refund_reason\": {\n        \"reason_code\": [ 501, 502 ],\n        \"desc\": \"不想要了\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Aftersale/Order/GoodLifeAftersaleOrderMerchantRejectV1Request.json",
    "content": "{\n    \"order_id\": \"8000001745679682306\",\n    \"reject_reason\": {\n        \"reason_code\": [ 501, 502 ],\n        \"desc\": \"超出配送范围\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"certificate\": {\n            \"encrypted_code\": \"CgwIARDhJxjLLyABKAESLgoscGiCSmZoMBlvG3WxOIxOGTfZHKvwwQD+DInGZEAi/SJsemJO/r+88+w3Th4aAA==\",\n            \"status\": 2,\n            \"amount\": {\n                \"original_amount\": 10,\n                \"pay_amount\": 10,\n                \"merchant_ticket_amount\": 0\n            },\n            \"sku\": {\n                \"sku_id\": \"1730440745530376\",\n                \"title\": \"测试\",\n                \"market_price\": 19900,\n                \"sold_start_time\": 1650278040000\n            },\n            \"expire_time\": 1682265599000,\n            \"code\": \"104930181552\",\n            \"verify\": {\n                \"can_cancel\": false,\n                \"certificate_id\": \"7091293506194655239\",\n                \"verifier_unique_id\": \"开放平台API\",\n                \"verify_id\": \"7091644694387591181\",\n                \"verify_time\": 1651152314000,\n                \"verify_type\": 4\n            }\n        }\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651194819\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"certificates\": [\n            {\n                \"encrypted_code\": \"CgwIARDhJxjLLyABKAESLgoscGiCSmZoMBlvG3WxOIxOGTfZHKvwwQD+DInGZEAi/SJsemJO/r+88+w3Th4aAA==\",\n                \"status\": 2,\n                \"amount\": {\n                    \"original_amount\": 10,\n                    \"pay_amount\": 10,\n                    \"merchant_ticket_amount\": 0\n                },\n                \"sku\": {\n                    \"sku_id\": \"1730440745530376\",\n                    \"title\": \"测试\",\n                    \"third_sku_id\": \"1111\",\n                    \"account_id\": \"7113893944009705516\",\n                    \"groupon_type\": 1,\n                    \"market_price\": 19900,\n                    \"sold_start_time\": 165027804\n                },\n                \"expire_time\": 1682265599,\n                \"code\": \"104930181552\",\n                \"verify\": {\n                    \"can_cancel\": false,\n                    \"certificate_id\": \"7091293506194655239\",\n                    \"verifier_unique_id\": \"开放平台API\",\n                    \"verify_id\": \"7091644694387591181\",\n                    \"verify_time\": 1651152314,\n                    \"verify_type\": 4\n                }\n            },\n            {\n                \"encrypted_code\": \"CgwIARDaHhjLJiAEKAESLgosamiADCVpoqfCZLCSDIVaguqR2QiEtm29VbT5Dg6BVMkNybI91gpm821/bzAaAA==\",\n                \"status\": 1,\n                \"amount\": {\n                    \"original_amount\": 10,\n                    \"pay_amount\": 10,\n                    \"merchant_ticket_amount\": 0\n                },\n                \"sku\": {\n                    \"sku_id\": \"1730440745530376\",\n                    \"title\": \"测试\",\n                    \"third_sku_id\": \"1111\",\n                    \"account_id\": \"7113893944009705516\",\n                    \"groupon_type\": 1,\n                    \"market_price\": 19900,\n                    \"sold_start_time\": 165027804\n                },\n                \"expire_time\": 1682265599,\n                \"code\": \"104930181553\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651194819\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyRecordQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"total\": 1,\n        \"records\": [\n            {\n                \"cursor\": \"7091478021421631519\",\n                \"verify_id\": \"7091478021421631519\",\n                \"certificate_id\": \"7091180835810052103\",\n                \"verify_time\": 1651113601,\n                \"can_cancel\": false,\n                \"verify_type\": 4,\n                \"status\": 2,\n                \"cancel_time\": 1651114087,\n                \"amount\": {\n                    \"original_amount\": 10,\n                    \"pay_amount\": 10,\n                    \"merchant_ticket_amount\": 0\n                },\n                \"sku\": {\n                    \"sku_id\": \"1730440745530376\",\n                    \"title\": \"测试\",\n                    \"account_id\": \"123456\",\n                    \"market_price\": 19900,\n                    \"sold_start_time\": 1650278040,\n                    \"third_sku_id\": \"\"\n                }\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202204281142490102040260192135C13D\",\n        \"now\": 1651117370\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyV1Request.json",
    "content": "{\n    \"verify_token\": \"211ecb01-9f97-46e1-98db-b2cbecfbfd7e\",\n    \"encrypted_codes\": [\n        \"CgwIARDhJxjLLyABKAESLgosRSH/OAfU5+MZ9y0u3l/999bpcS5P1zOqn2mxgQXAx3jGpwb+jnqZPTlDldcaAA==\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Certificate/GoodLifeFulfilmentCertificateVerifyV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"verify_results\": [\n            {\n                \"result\": 0,\n                \"msg\": \"验券成功\",\n                \"code\": \"CgwIARDhJxjLLyABKAESLgosTYTOIJFLZx8IaWKdO9ISKSWf4XYaqzt8TU1fhbTpYhIAuA5i5fRYfApwNRMaAA==\",\n                \"verify_id\": \"7091478021421631519\",\n                \"certificate_id\": \"7091180835810052103\",\n                \"origin_code\": \"102539929601\",\n                \"account_id\": \"123456\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651113600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/Distribution/GoodLifeFulfilmentDistributionOrderSyncStatusV1Request.json",
    "content": "{\n    \"order_id\": \"80123944910230941\",\n    \"rider_phone\": \"123241289303\",\n    \"three_source\": 7,\n    \"behavior\": 2,\n    \"accept_time\": 1669344364\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBatchImportV1Request.json",
    "content": "{\n    \"account_id\": \"123\",\n    \"sku_id\": \"987665\",\n    \"third_sku_id\": \"ab123\",\n    \"codes\": [\"x1\", \"x2\"],\n    \"expired_time\": 1658914935\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBindOrderInfoV1Request.json",
    "content": "{\n    \"account_id\": \"123\",\n    \"sku_id\": \"987665\",\n    \"code\": \"x111\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Fulfilment/ReserveCode/GoodLifeFulfilmentReserveCodeBindOrderInfoV1Response.json",
    "content": "{\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"logid\": \"202204270930590102251460630F7BE7F3\",\n        \"now\": 1658921730\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"order\": {\n            \"order_id\": \"123\",\n            \"sku_id\": \"456\",\n            \"third_sku_id\": \"axxx\",\n            \"codes\": [\"x1\", \"x2\"],\n            \"create_time\": 1658921722,\n            \"amount_info\": {\n                \"original_amount\": 110,\n                \"pay_amount\": 50,\n                \"platform_ticket_amount\": 5,\n                \"merchant_ticket_amount\": 5,\n                \"fee_amount\": 0,\n                \"payment_discount_amount\": 50\n            },\n            \"tourists\": [\n                {\n                    \"name\": \"张三\",\n                    \"phone\": \"bYlB3dcl8e8rDyAdD7yYCA==\",\n                    \"id_card\": \"bYlB3dcl8e8rDyAdD7yYCA==\"\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarAmountGroupSaveV1Request.json",
    "content": "{\n    \"calendar_amount_group\": {\n        \"product_out_id\": \"some-out-product-id\",\n        \"calendar_amounts\": [\n            {\n                \"type\": 1,\n                \"value\": {\n                    \"values\": [\"2022-03-01\", \"2022-04-01\"],\n                    \"exclude_dates\": [\"2022-03-05\"]\n                },\n                \"status\": 1,\n                \"origin_amount\": 100,\n                \"actual_amount\": 99\n            }\n        ]\n    },\n    \"account_id\": \"12345678\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStaticAttributeGroupSaveV1Request.json",
    "content": "{\n    \"calendar_static_attr_group\": {\n        \"product_out_id\": \"some-out-product-id\",\n        \"calendar_static_attrs\": [\n            {\n                \"type\": 1,\n                \"value\": {\n                    \"values\": [\"2022-03-01\", \"2022-04-01\"],\n                    \"exclude_dates\": [\"2022-03-05\"]\n                },\n                \"status\": 1,\n                \"attr_key_value_map\": {\n                    \"breakfast_num\": \"1\",\n                    \"guest_type\": \"[1]\",\n                    \"pre_order_rule\": \"{\\\"time_type\\\":1,\\\"soonest_order_time\\\":1644066614,\\\"latest_order_time\\\":1654066614}\"\n                }\n            }\n        ]\n    },\n    \"account_id\": \"12345678\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Calendar/GoodLifeGoodsCalendarStockGroupSaveV1Request.json",
    "content": "{\n    \"calendar_stock_group\": {\n        \"product_out_id\": \"some-out-product-id\",\n        \"calendar_stocks\": [\n            {\n                \"type\": 1,\n                \"value\": {\n                    \"values\": [\"2022-03-01\", \"2022-04-01\"],\n                    \"exclude_dates\": [\"2022-03-05\"]\n                },\n                \"status\": 1,\n                \"stock_qty\": 100,\n                \"stock_qty_limit_type\": 1\n            },\n            {\n                \"type\": 1,\n                \"value\": {\n                    \"values\": [\"2022-04-01\", \"2022-05-01\"],\n                    \"exclude_dates\": [\"2022-04-05\"]\n                },\n                \"status\": 1,\n                \"stock_qty_limit_type\": 2\n            }\n        ]\n    },\n    \"account_id\": \"12345678\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductDraftGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"product_drafts\": [\n            {\n                \"audit_msg\": \"\",\n                \"draft_status\": 10,\n                \"product\": {\n                    \"creator_account_id\": 7107571250087643180,\n                    \"owner_account_id\": 7113893944009705516,\n                    \"sold_start_time\": 1646724999,\n                    \"account_name\": \"lw测试商家\",\n                    \"pois\": [\n                        {\n                            \"supplier_ext_id\": \"goods_v1_poi_001\",\n                            \"supplier_id\": 7112378515013584941,\n                            \"poi_id\": 6601137575719602180\n                        }\n                    ],\n                    \"attr_key_value_map\": {\n                        \"OrderValidStart\": \"1638720000\",\n                        \"SortWeight\": \"0\",\n                        \"real_name_info\": \"{\\\"enable\\\":false,\\\"scene\\\":0}\",\n                        \"rec_person_num\": \"99\",\n                        \"rec_person_num_max\": \"999\",\n                        \"DateRule\": \"{\\\"unavailable_date\\\":{\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"weekday_list\\\":[7,1,2,3,4],\\\"not_available_on_holidays\\\":true}}\",\n                        \"Images\": \"[\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505021658382380\\\",\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505050439696428\\\"]\",\n                        \"RecommendWord\": \"推荐语\",\n                        \"description_rich_text\": \"[{\\\"note_type\\\":1,\\\"content\\\":\\\"其他说明信息-美食团购\\\"}]\",\n                        \"environment_image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038504987084734508?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=TLe6dfqJ0a7i9VA4Zbh3Cu7qAV8%3D\\\"}]\",\n                        \"free_pack\": \"true\",\n                        \"use_date\": \"{\\\"use_date_type\\\":1,\\\"use_start_date\\\":\\\"2021-12-06\\\",\\\"use_end_date\\\":\\\"2033-03-03\\\"}\",\n                        \"IndustryType\": \"其他\",\n                        \"OrderValidEnd\": \"1993478399\",\n                        \"RefundPolicy\": \"2\",\n                        \"appointment\": \"{\\\"need_appointment\\\":true,\\\"external_link\\\":\\\"urlxxx\\\",\\\"order_appointment_time_url\\\":\\\"urlxxx\\\",\\\"ahead_time_type\\\":2,\\\"ahead_hour_num\\\":5}\",\n                        \"customer_reserved_info\": \"{\\\"allow\\\":false}\",\n                        \"FrontCategoryTag\": \"[\\\"美食套餐\\\"]\",\n                        \"IsConfirmImme\": \"true\",\n                        \"can_no_use_date\": \"{\\\"enable\\\":true,\\\"days_of_week\\\":[7,1,2,3,4],\\\"holidays\\\":[1,2,3,4,5],\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"holiday_dates\\\":{\\\"1\\\":\\\"2022.01.01-2022.01.03\\\"}}\",\n                        \"dishes_image_list\": \"[{\\\"uri\\\":\\\"aweme-upload-image/7038504987084734508\\\"}]\",\n                        \"refund_need_merchant_confirm\": \"true\",\n                        \"SupplierExtIdList\": \"[\\\"goods_v1_poi_001\\\"]\",\n                        \"detail_image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038504987084734508?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=TLe6dfqJ0a7i9VA4Zbh3Cu7qAV8%3D\\\"}]\",\n                        \"image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505021658382380?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=ygn%2FI0ORgkAJdomj7liPXpK9v3s%3D\\\"},{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505050439696428?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=QGvp6oDAMSW%2F3xA4L7ASboxnYoM%3D\\\"}]\",\n                        \"show_channel\": \"2\",\n                        \"superimposed_discounts\": \"true\",\n                        \"Notification\": \"[{\\\"title\\\":\\\"标题\\\",\\\"content\\\":\\\"内容美食1.1\\\"}]\",\n                        \"TagList\": \"标签列表-待填写\",\n                        \"private_room\": \"true\",\n                        \"use_time\": \"{\\\"use_time_type\\\":1}\"\n                    },\n                    \"biz_line\": 1,\n                    \"category_full_name\": \"美食·地方菜·北京菜\",\n                    \"category_id\": 1001001,\n                    \"product_id\": \"7119054118261377068\",\n                    \"product_name\": \"migrate_openapi_0711_03\",\n                    \"out_id\": \"migrate_openapi_0711_03\",\n                    \"product_type\": 1,\n                    \"sold_end_time\": 1745607528\n                },\n                \"sku\": {\n                    \"origin_amount\": 1998,\n                    \"sku_id\": \"7119054118261377068\",\n                    \"sku_name\": \"测试\",\n                    \"status\": 1,\n                    \"stock\": {\n                        \"limit_type\": 1,\n                        \"stock_qty\": 500\n                    },\n                    \"actual_amount\": 996,\n                    \"attr_key_value_map\": {\n                        \"limit_rule\": \"{\\\"is_limit\\\":true,\\\"total_buy_num\\\":9}\",\n                        \"market_price\": \"900\",\n                        \"settle_type\": \"1\",\n                        \"use_type\": \"1\",\n                        \"code_source_type\": \"1\",\n                        \"commodity\": \"[{\\\"group_name\\\":\\\"测试0001\\\",\\\"total_count\\\":1,\\\"option_count\\\":1,\\\"item_list\\\":[{\\\"name\\\":\\\"可乐\\\",\\\"price\\\":1998,\\\"count\\\":1,\\\"unit\\\":\\\"份\\\"}]}]\"\n                    }\n                }\n            }\n        ],\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"now\": 1658199797,\n        \"logid\": \"202207191103170102251451520001D611\",\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductDraftQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"has_more\": true,\n        \"next_cursor\": \"4\",\n        \"products\": [\n            {\n                \"draft_status\": 10,\n                \"product\": {\n                    \"pois\": [\n                        {\n                            \"poi_id\": 6601137575719602180,\n                            \"supplier_ext_id\": \"goods_v1_poi_001\",\n                            \"supplier_id\": 7112378515013584941\n                        }\n                    ],\n                    \"product_name\": \"life测试-0223-011\",\n                    \"account_name\": \"lh测试商家\",\n                    \"category_full_name\": \"运动健身·游泳馆·游泳馆\",\n                    \"creator_account_id\": 7107571250087643180,\n                    \"category_id\": 3001001,\n                    \"product_id\": \"7119054118278268972\",\n                    \"product_type\": 1,\n                    \"attr_key_value_map\": {\n                        \"Notification\": \"[{\\\"title\\\":\\\"标题\\\",\\\"content\\\":\\\"运动健身1.1\\\"}]\",\n                        \"RefundPolicy\": \"2\",\n                        \"SupplierExtIdList\": \"[\\\"goods_v1_poi_001\\\"]\",\n                        \"description_rich_text\": \"[{\\\"note_type\\\":1,\\\"content\\\":\\\"其他说明信息-运动健身团购\\\"}]\",\n                        \"show_channel\": \"2\",\n                        \"RecommendWord\": \"推荐语\",\n                        \"TagList\": \"标签列表-待填写\",\n                        \"DateRule\": \"{\\\"unavailable_date\\\":{\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"weekday_list\\\":[7,1,2,3,4],\\\"not_available_on_holidays\\\":true}}\",\n                        \"EntryType\": \"1\",\n                        \"FrontCategoryTag\": \"[\\\"美食套餐\\\"]\",\n                        \"Images\": \"[\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505021658382380\\\",\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505050439696428\\\"]\",\n                        \"IsConfirmImme\": \"true\",\n                        \"OrderValidEnd\": \"1993478399\",\n                        \"can_no_use_date\": \"{\\\"enable\\\":true,\\\"days_of_week\\\":[7,1,2,3,4],\\\"holidays\\\":[1,2,3,4,5],\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"holiday_dates\\\":{\\\"1\\\":\\\"2022.01.01-2022.01.03\\\"}}\",\n                        \"customer_reserved_info\": \"{\\\"allow\\\":true,\\\"allow_tel\\\":true,\\\"allow_name\\\":true,\\\"allow_identity\\\":true,\\\"require_for_tel\\\":true,\\\"need_for_all\\\":true,\\\"reserved_reason\\\":\\\"留资原因\\\"}\",\n                        \"real_name_info\": \"{\\\"enable\\\":true,\\\"scene\\\":1}\",\n                        \"Description\": \"[\\\"商品描述-运动健身\\\"]\",\n                        \"OrderValidStart\": \"1638720000\",\n                        \"SortWeight\": \"0\",\n                        \"appointment\": \"{\\\"need_appointment\\\":true,\\\"external_link\\\":\\\"urlxxx\\\",\\\"order_appointment_time_url\\\":\\\"urlxxx\\\",\\\"ahead_time_type\\\":1,\\\"ahead_day_num\\\":1}\",\n                        \"use_time\": \"{\\\"use_time_type\\\":1}\",\n                        \"environment_image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038504987084734508?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=TLe6dfqJ0a7i9VA4Zbh3Cu7qAV8%3D\\\"}]\",\n                        \"image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505021658382380?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=ygn%2FI0ORgkAJdomj7liPXpK9v3s%3D\\\"},{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505050439696428?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=QGvp6oDAMSW%2F3xA4L7ASboxnYoM%3D\\\"}]\",\n                        \"refund_need_merchant_confirm\": \"true\",\n                        \"use_date\": \"{\\\"use_date_type\\\":1,\\\"use_start_date\\\":\\\"2021-12-06\\\",\\\"use_end_date\\\":\\\"2033-03-03\\\"}\"\n                    },\n                    \"biz_line\": 1,\n                    \"out_id\": \"hch-life-0314-tg11\",\n                    \"sold_end_time\": 1745607528,\n                    \"sold_start_time\": 1646724999\n                },\n                \"sku\": {\n                    \"sku_name\": \"我改了\",\n                    \"status\": 1,\n                    \"stock\": {\n                        \"limit_type\": 0,\n                        \"stock_qty\": 500\n                    },\n                    \"actual_amount\": 996,\n                    \"attr_key_value_map\": {\n                        \"limit_rule\": \"{\\\"is_limit\\\":true,\\\"total_buy_num\\\":9}\",\n                        \"market_price\": \"1900\",\n                        \"settle_type\": \"1\",\n                        \"use_type\": \"1\",\n                        \"code_source_type\": \"1\"\n                    },\n                    \"origin_amount\": 1399,\n                    \"sku_id\": \"7119054118278268972\"\n                },\n                \"audit_msg\": \"\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1658199933,\n        \"logid\": \"202207191105330101742511840402D90D\",\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductFreeAuditV1Request.json",
    "content": "{\n    \"out_id\": \"hch-life-0314-yry01\",\n    \"sold_end_time\": 1746917386,\n    \"stock_qty\": 778,\n    \"account_id\": \"222\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineGetV1Response.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1658200003,\n        \"logid\": \"202207191106420102252431250703B5A8\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"product_onlines\": [\n            {\n                \"commission_info\": {\n                    \"platform_take_rate\": 350\n                },\n                \"online_status\": 1,\n                \"product\": {\n                    \"biz_line\": 1,\n                    \"out_id\": \"hch-life-0314-tg09\",\n                    \"product_id\": \"7119054118261606444\",\n                    \"account_name\": \"lh测试商家\",\n                    \"attr_key_value_map\": {\n                        \"Images\": \"[\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505021658382380\\\",\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505050439696428\\\"]\",\n                        \"IsConfirmImme\": \"true\",\n                        \"Notification\": \"[{\\\"title\\\":\\\"标题\\\",\\\"content\\\":\\\"运动健身1.1\\\"}]\",\n                        \"SortWeight\": \"0\",\n                        \"customer_reserved_info\": \"{\\\"allow\\\":true,\\\"allow_tel\\\":true,\\\"allow_name\\\":true,\\\"allow_identity\\\":true,\\\"require_for_tel\\\":true,\\\"need_for_all\\\":true,\\\"reserved_reason\\\":\\\"留资原因\\\"}\",\n                        \"description_rich_text\": \"[{\\\"note_type\\\":1,\\\"content\\\":\\\"其他说明信息-运动健身团购\\\"}]\",\n                        \"environment_image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038504987084734508?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=TLe6dfqJ0a7i9VA4Zbh3Cu7qAV8%3D\\\"}]\",\n                        \"image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505021658382380?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=ygn%2FI0ORgkAJdomj7liPXpK9v3s%3D\\\"},{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505050439696428?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=QGvp6oDAMSW%2F3xA4L7ASboxnYoM%3D\\\"}]\",\n                        \"DateRule\": \"{\\\"unavailable_date\\\":{\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"weekday_list\\\":[7,1,2,3,4],\\\"not_available_on_holidays\\\":true}}\",\n                        \"OrderValidEnd\": \"1993478399\",\n                        \"can_no_use_date\": \"{\\\"enable\\\":true,\\\"days_of_week\\\":[7,1,2,3,4],\\\"holidays\\\":[1,2,3,4,5],\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"holiday_dates\\\":{\\\"1\\\":\\\"2022.01.01-2022.01.03\\\"}}\",\n                        \"real_name_info\": \"{\\\"enable\\\":true,\\\"scene\\\":1}\",\n                        \"Description\": \"[\\\"商品描述-运动健身\\\"]\",\n                        \"EntryType\": \"1\",\n                        \"OrderValidStart\": \"1638720000\",\n                        \"SupplierExtIdList\": \"[\\\"goods_v1_poi_001\\\"]\",\n                        \"refund_need_merchant_confirm\": \"true\",\n                        \"show_channel\": \"2\",\n                        \"use_date\": \"{\\\"use_date_type\\\":1,\\\"use_start_date\\\":\\\"2021-12-06\\\",\\\"use_end_date\\\":\\\"2033-03-03\\\"}\",\n                        \"FrontCategoryTag\": \"[\\\"美食套餐\\\"]\",\n                        \"RecommendWord\": \"推荐语\",\n                        \"RefundPolicy\": \"2\",\n                        \"TagList\": \"标签列表-待填写\",\n                        \"appointment\": \"{\\\"need_appointment\\\":true,\\\"external_link\\\":\\\"urlxxx\\\",\\\"order_appointment_time_url\\\":\\\"urlxxx\\\",\\\"ahead_time_type\\\":1,\\\"ahead_day_num\\\":1}\",\n                        \"use_time\": \"{\\\"use_time_type\\\":1}\"\n                    },\n                    \"sold_start_time\": 1646724999,\n                    \"category_full_name\": \"运动健身·游泳馆·游泳馆\",\n                    \"category_id\": 3001001,\n                    \"creator_account_id\": 7107571250087643180,\n                    \"product_name\": \"life测试-0223-011\",\n                    \"sold_end_time\": 1799607528,\n                    \"owner_account_id\": 7113893944009705516,\n                    \"pois\": [\n                        {\n                            \"supplier_ext_id\": \"goods_v1_poi_001\",\n                            \"supplier_id\": 7112378515013584941,\n                            \"poi_id\": 6601137575719602180\n                        }\n                    ],\n                    \"product_type\": 1\n                },\n                \"sku\": {\n                    \"create_time\": 1657694409,\n                    \"sku_id\": \"7119054118261606444\",\n                    \"sku_name\": \"我改了\",\n                    \"status\": 1,\n                    \"update_time\": 1657769323,\n                    \"actual_amount\": 996,\n                    \"origin_amount\": 1399,\n                    \"stock\": {\n                        \"limit_type\": 1,\n                        \"stock_qty\": 88\n                    },\n                    \"attr_key_value_map\": {\n                        \"market_price\": \"1900\",\n                        \"settle_type\": \"1\",\n                        \"use_type\": \"1\",\n                        \"code_source_type\": \"1\",\n                        \"limit_rule\": \"{\\\"is_limit\\\":true,\\\"total_buy_num\\\":9}\"\n                    }\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductOnlineQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"has_more\": true,\n        \"next_cursor\": \"4\",\n        \"products\": [\n            {\n                \"product\": {\n                    \"category_full_name\": \"运动健身·游泳馆·游泳馆\",\n                    \"out_id\": \"hch-life-0314-tg09\",\n                    \"owner_account_id\": 7113893944009705516,\n                    \"attr_key_value_map\": {\n                        \"environment_image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038504987084734508?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=TLe6dfqJ0a7i9VA4Zbh3Cu7qAV8%3D\\\"}]\",\n                        \"image_list\": \"[{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505021658382380?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=ygn%2FI0ORgkAJdomj7liPXpK9v3s%3D\\\"},{\\\"url\\\":\\\"http://p-boe-sign.bytedance.net/obj/aweme-upload-image/7038505050439696428?x-orig-authkey=boeorigin&x-orig-expires=1658221200&x-orig-sign=QGvp6oDAMSW%2F3xA4L7ASboxnYoM%3D\\\"}]\",\n                        \"show_channel\": \"2\",\n                        \"use_time\": \"{\\\"use_time_type\\\":1}\",\n                        \"SortWeight\": \"0\",\n                        \"customer_reserved_info\": \"{\\\"allow\\\":true,\\\"allow_tel\\\":true,\\\"allow_name\\\":true,\\\"allow_identity\\\":true,\\\"require_for_tel\\\":true,\\\"need_for_all\\\":true,\\\"reserved_reason\\\":\\\"留资原因\\\"}\",\n                        \"description_rich_text\": \"[{\\\"note_type\\\":1,\\\"content\\\":\\\"其他说明信息-运动健身团购\\\"}]\",\n                        \"SupplierExtIdList\": \"[\\\"goods_v1_poi_001\\\"]\",\n                        \"appointment\": \"{\\\"need_appointment\\\":true,\\\"external_link\\\":\\\"urlxxx\\\",\\\"order_appointment_time_url\\\":\\\"urlxxx\\\",\\\"ahead_time_type\\\":1,\\\"ahead_day_num\\\":1}\",\n                        \"real_name_info\": \"{\\\"enable\\\":true,\\\"scene\\\":1}\",\n                        \"refund_need_merchant_confirm\": \"true\",\n                        \"EntryType\": \"1\",\n                        \"Images\": \"[\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505021658382380\\\",\\\"http://tosv.boe.byted.org/obj/aweme-upload-image/7038505050439696428\\\"]\",\n                        \"IsConfirmImme\": \"true\",\n                        \"OrderValidStart\": \"1638720000\",\n                        \"RefundPolicy\": \"2\",\n                        \"can_no_use_date\": \"{\\\"enable\\\":true,\\\"days_of_week\\\":[7,1,2,3,4],\\\"holidays\\\":[1,2,3,4,5],\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"holiday_dates\\\":{\\\"1\\\":\\\"2022.01.01-2022.01.03\\\"}}\",\n                        \"use_date\": \"{\\\"use_date_type\\\":1,\\\"use_start_date\\\":\\\"2021-12-06\\\",\\\"use_end_date\\\":\\\"2033-03-03\\\"}\",\n                        \"DateRule\": \"{\\\"unavailable_date\\\":{\\\"date_list\\\":[\\\"2022-03-08\\\",\\\"2022-03-09\\\"],\\\"weekday_list\\\":[7,1,2,3,4],\\\"not_available_on_holidays\\\":true}}\",\n                        \"Description\": \"[\\\"商品描述-运动健身\\\"]\",\n                        \"Notification\": \"[{\\\"title\\\":\\\"标题\\\",\\\"content\\\":\\\"运动健身1.1\\\"}]\",\n                        \"TagList\": \"标签列表-待填写\",\n                        \"FrontCategoryTag\": \"[\\\"美食套餐\\\"]\",\n                        \"OrderValidEnd\": \"1993478399\",\n                        \"RecommendWord\": \"推荐语\"\n                    },\n                    \"category_id\": 3001001,\n                    \"product_id\": \"7119054118261606444\",\n                    \"biz_line\": 1,\n                    \"creator_account_id\": 7107571250087643180,\n                    \"product_type\": 1,\n                    \"account_name\": \"lh测试商家\",\n                    \"pois\": [\n                        {\n                            \"poi_id\": 6601137575719602180,\n                            \"supplier_ext_id\": \"goods_v1_poi_001\",\n                            \"supplier_id\": 7112378515013584941\n                        }\n                    ],\n                    \"product_name\": \"life测试-0223-011\",\n                    \"sold_end_time\": 1799607528,\n                    \"sold_start_time\": 1646724999\n                },\n                \"sku\": {\n                    \"actual_amount\": 996,\n                    \"attr_key_value_map\": {\n                        \"limit_rule\": \"{\\\"is_limit\\\":true,\\\"total_buy_num\\\":9}\",\n                        \"market_price\": \"1900\",\n                        \"settle_type\": \"1\",\n                        \"use_type\": \"1\",\n                        \"code_source_type\": \"1\"\n                    },\n                    \"status\": 1,\n                    \"update_time\": 1657769323,\n                    \"create_time\": 1657694409,\n                    \"origin_amount\": 1399,\n                    \"sku_id\": \"7119054118261606444\",\n                    \"sku_name\": \"我改了\",\n                    \"stock\": {\n                        \"limit_type\": 1,\n                        \"stock_qty\": 88\n                    }\n                },\n                \"commission_info\": {\n                    \"platform_take_rate\": 0\n                },\n                \"online_status\": 1\n            }\n        ],\n        \"description\": \"\",\n        \"error_code\": 0\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1658200058,\n        \"logid\": \"202207191107380102252431250703EA46\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductOperateV1Request.json",
    "content": "{\n    \"out_id\": \"hch-life-0314-ms02\",\n    \"op_type\": 2,\n    \"account_id\": \"123123123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductSaveV1Request.json",
    "content": "{\n    \"account_id\": \"7113893944009705516\",\n    \"product\": {\n        \"account_name\": \"lh测试商家\",\n        \"attr_key_value_map\": {\n            \"appointment\": \"{\\\"need_appointment\\\":true, \\\"ahead_time_type\\\":2, \\\"ahead_hour_num\\\":5,\\\"external_link\\\":\\\"urlxxx\\\", \\\"order_appointment_time_url\\\":\\\"urlxxx\\\"}\",\n            \"auto_renew\": \"true\",\n            \"bring_out_meal\": \"false\",\n            \"can_no_use_date\": \"{\\\"enable\\\": true,\\\"days_of_week\\\": [7, 1, 2, 3, 4],\\\"holidays\\\": [1, 2, 3, 4, 5],\\\"date_list\\\": [\\\"2022-03-08\\\", \\\"2022-03-09\\\"],\\\"holiday_dates\\\": {\\\"1\\\": \\\"2022.01.01-2022.01.03\\\"}}\",\n            \"customer_reserved_info\": \"{\\\"allow\\\":false}\",\n            \"description_rich_text\": \"[{\\\"note_type\\\":1,\\\"content\\\":\\\"其他说明信息-美食团购\\\"}]\",\n            \"detail_image_list\": \"[{\\\"url\\\":\\\"https://aweme-upload-image/7038504987084734508..png\\\"}]\",\n            \"dishes_image_list\": \"[{\\\"url\\\":\\\"https://aweme-upload-image/7038504987084734508.png\\\"}]\",\n            \"environment_image_list\": \"[{\\\"url\\\":\\\"https://aweme-upload-image/7038504987084734508.png\\\"}]\",\n            \"free_pack\": \"true\",\n            \"FrontCategoryTag\": \"[\\\"美食套餐\\\"]\",\n            \"image_list\": \"[{\\\"url\\\":\\\"https://aweme-upload-image/7038505021658382380.png\\\"},{\\\"url\\\":\\\"https://aweme-upload-image/7038505050439696428.png\\\"}]\",\n            \"IndustryType\": \"其他\",\n            \"IsConfirmImme\": \"true\",\n            \"Notification\": \"[{\\\"title\\\":\\\"标题\\\",\\\"content\\\":\\\"内容美食1.1\\\"}]\",\n            \"private_room\": \"true\",\n            \"real_name_info\": \"{\\\"enable\\\":false,\\\"scene\\\":0}\",\n            \"RecommendWord\": \"推荐语\",\n            \"rec_person_num\": \"99\",\n            \"rec_person_num_max\": \"999\",\n            \"RefundPolicy\": \"2\",\n            \"refund_need_merchant_confirm\": \"true\",\n            \"show_channel\": \"2\",\n            \"SortWeight\": \"0\",\n            \"superimposed_discounts\": \"true\",\n            \"TagList\": \"标签列表-待填写\",\n            \"use_date\": \"{\\\"use_date_type\\\":1,\\\"use_start_date\\\":\\\"2021-12-06\\\",\\\"use_end_date\\\":\\\"2033-03-03\\\"}\",\n            \"use_time\": \"{\\\"use_time_type\\\":1}\",\n            \"account_name\": \"lh测试商家\",\n            \"poi_list\": \"[{\\\"poi_id\\\": \\\"123123123123\\\"}]\",\n            \"product_name\": \"migrate_openapi_0711_01\",\n            \"sold_start_time\": \"1646724999\",\n            \"sold_end_time\": \"1745607528\"\n        },\n        \"biz_line\": 1,\n        \"category_id\": 1001001,\n        \"out_id\": \"migrate_openapi_0711_03\",\n        \"pois\": [\n            {\n                \"poi_id\": \"123123123123\"\n            }\n        ],\n        \"product_name\": \"migrate_openapi_0711_03\",\n        \"product_type\": 1,\n        \"sold_end_time\": 1745607528,\n        \"sold_start_time\": 1646724999\n    },\n    \"sku\": {\n        \"actual_amount\": 996,\n        \"attr_key_value_map\": {\n            \"code_source_type\": \"1\",\n            \"commodity\": \"[{\\\"group_name\\\":\\\"测试0001\\\",\\\"total_count\\\":1,\\\"option_count\\\":1,\\\"item_list\\\":[{\\\"name\\\":\\\"可乐\\\",\\\"price\\\":1998,\\\"count\\\":1,\\\"unit\\\":\\\"份\\\"}]}]\",\n            \"limit_rule\": \"{\\\"is_limit\\\":true,\\\"total_buy_num\\\":9}\",\n            \"market_price\": \"900\",\n            \"settle_type\": \"1\",\n            \"use_type\": \"1\",\n            \"actual_amount\": \"996\",\n            \"origin_amount\": \"1998\",\n            \"stock_info\": \"{\\\"limit_type\\\": 1,\\\"stock_qty\\\": 500}\"\n        },\n        \"origin_amount\": 1399,\n        \"sku_name\": \"测试\",\n        \"status\": 1,\n        \"stock\": {\n            \"limit_type\": 1,\n            \"stock_qty\": 500\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Product/GoodLifeGoodsProductSaveV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"product_id\": \"111\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651113600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/SKU/GoodLifeGoodsSKUBatchSaveV1Request.json",
    "content": "{\n    \"out_id\": \"hch-life-0314-rl03\",\n    \"sku_list\": [\n        {\n            \"actual_amount\": 1,\n            \"attr_key_value_map\": {\n                \"Date\": \"20220423\"\n            },\n            \"origin_amount\": 100,\n            \"sku_name\": \"20220423\",\n            \"status\": 1,\n            \"stock\": {\n                \"limit_type\": 0,\n                \"stock_qty\": 500\n            }\n        },\n        {\n            \"actual_amount\": 1,\n            \"attr_key_value_map\": {\n                \"Date\": \"20220524\"\n            },\n            \"origin_amount\": 100,\n            \"sku_name\": \"20220524\",\n            \"status\": 1,\n            \"stock\": {\n                \"limit_type\": 0,\n                \"stock_qty\": 500\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/SPU/GoodLifeGoodsSPUSaveV1Request.json",
    "content": "{\n    \"spu\": {\n        \"spu_name\": \"房型\",\n        \"product_type\": 13,\n        \"biz_line\": 1,\n        \"out_spu_id\": \"some-out-spu-id\",\n        \"pois\": [\n            {\n                \"supplier_ext_id\": \"some-supplier-ext-id\"\n            }\n        ],\n        \"attr_key_value_map\": {\n            \"Area\": \"10\",\n            \"image_list\": \"[]\",\n            \"bed_type\": \"1\",\n            \"Window\": \"1\",\n            \"Floor\": \"2层~5层\",\n            \"wifi\": \"true\",\n            \"smoke\": \"1\",\n            \"FitNum\": \"2\",\n            \"common_facilities\": \"[1]\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/SPU/GoodLifeGoodsSPUSaveV1Response.json",
    "content": "{\n    \"BaseResp\": {\n        \"StatusCode\": 0,\n        \"StatusMessage\": \"\"\n    },\n    \"data\": {\n        \"spu_id\": \"123456\",\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1654529240,\n        \"logid\": \"xxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Stock/GoodLifeGoodsStockSyncV1Request.json",
    "content": "{\n    \"out_id\": \"hch-life-0314-yry01\",\n    \"stock\": {\n        \"limit_type\": 2,\n        \"avail_qty\": 88\n    },\n    \"account_id\": \"123123123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Goods/Template/GoodLifeGoodsTemplateGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"product_attrs\": [\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"appointment\",\n                \"name\": \"预约信息\",\n                \"value_demo\": \"\",\n                \"value_type\": \"APPOINTMENT\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"auto_renew\",\n                \"name\": \"是否开启自动延期\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"bring_out_meal\",\n                \"name\": \"是否可以外带餐食\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"can_no_use_date\",\n                \"name\": \"不可使用日期\",\n                \"value_demo\": \"\",\n                \"value_type\": \"CAN_NO_USE_DATE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"customer_reserved_info\",\n                \"name\": \"留资规则\",\n                \"value_demo\": \"\",\n                \"value_type\": \"CUSTOMER_RESERVED_INFO\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": false,\n                \"key\": \"description_rich_text\",\n                \"name\": \"其他说明信息\",\n                \"value_demo\": \"\",\n                \"value_type\": \"NOTE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": false,\n                \"key\": \"detail_image_list\",\n                \"name\": \"长图\",\n                \"value_demo\": \"\",\n                \"value_type\": \"IMAGE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": false,\n                \"key\": \"dishes_image_list\",\n                \"name\": \"菜品图\",\n                \"value_demo\": \"\",\n                \"value_type\": \"IMAGE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"EntryType\",\n                \"name\": \"入口类型\",\n                \"value_demo\": \"1:H5 2:小程序 3:抖音 4:lynx\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": false,\n                \"key\": \"environment_image_list\",\n                \"name\": \"环境图\",\n                \"value_demo\": \"\",\n                \"value_type\": \"IMAGE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"free_pack\",\n                \"name\": \"是否可以打包\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": false,\n                \"key\": \"FrontCategoryTag\",\n                \"name\": \"前台品类标签\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": true,\n                \"key\": \"image_list\",\n                \"name\": \"封面图\",\n                \"value_demo\": \"\",\n                \"value_type\": \"IMAGE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"IndustryType\",\n                \"name\": \"商品行业类型\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"IsConfirmImme\",\n                \"name\": \"是否立即确认\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"MpResourceID\",\n                \"name\": \"小程序资源id\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"MpSettleType\",\n                \"name\": \"小程序分账类型\",\n                \"value_demo\": \"1-包销 2-代销\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": true,\n                \"key\": \"Notification\",\n                \"name\": \"使用规则\",\n                \"value_demo\": \"\",\n                \"value_type\": \"NOTIFICATION\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"private_room\",\n                \"name\": \"是否可以使用包间\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"real_name_info\",\n                \"name\": \"实名信息\",\n                \"value_demo\": \"\",\n                \"value_type\": \"REAL_NAME_INFO\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"RecommendWord\",\n                \"name\": \"推荐语\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"rec_person_num\",\n                \"name\": \"建议使用人数\",\n                \"value_demo\": \"\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"rec_person_num_max\",\n                \"name\": \"最多使用人数\",\n                \"value_demo\": \"\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"RefundPolicy\",\n                \"name\": \"退款政策\",\n                \"value_demo\": \"1-允许退款 2-不可退款 3-有条件退\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"refund_need_merchant_confirm\",\n                \"name\": \"退款是否需商家审核\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"release_source\",\n                \"name\": \"商品发布渠道\",\n                \"value_demo\": \"MERCHANT = 1 // 商家; BD = 2 // BD; FACILITATOR = 3 // 服务商;\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"show_channel\",\n                \"name\": \"投放渠道\",\n                \"value_demo\": \"1-不限制 2-仅直播间可见\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"SortWeight\",\n                \"name\": \"排序权重\",\n                \"value_demo\": \"\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"superimposed_discounts\",\n                \"name\": \"可以享受店内其他优惠\",\n                \"value_demo\": \"\",\n                \"value_type\": \"BOOL\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"TagList\",\n                \"name\": \"标签列表\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"trade_url\",\n                \"name\": \"小程序提单页跳转\",\n                \"value_demo\": \"\",\n                \"value_type\": \"STRING\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"use_date\",\n                \"name\": \"使用日期\",\n                \"value_demo\": \"\",\n                \"value_type\": \"USE_DATE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"use_time\",\n                \"name\": \"使用时间\",\n                \"value_demo\": \"\",\n                \"value_type\": \"USE_TIME\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"SubTitle\",\n                \"name\": \"副标题\",\n                \"value_demo\": \"可选标题：过期退；随时退；x日内可退；免预约；提前x日预约；多个副标题以|（英文半角）分隔，不要有空格\",\n                \"value_type\": \"STRING\"\n            }\n        ],\n        \"sku_attrs\": [\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"code_source_type\",\n                \"name\": \"券码生成方式\",\n                \"value_demo\": \"1-抖音码 2-三方码 3-预导码\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": true,\n                \"is_required\": true,\n                \"key\": \"commodity\",\n                \"name\": \"菜品搭配\",\n                \"value_demo\": \"\",\n                \"value_type\": \"COMMODITY\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"limit_rule\",\n                \"name\": \"限制购买\",\n                \"value_demo\": \"\",\n                \"value_type\": \"LIMIT_RULE\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": false,\n                \"key\": \"market_price\",\n                \"name\": \"市场价\",\n                \"value_demo\": \"\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"settle_type\",\n                \"name\": \"收款方式\",\n                \"value_demo\": \"1-总店结算 2-分店结算\",\n                \"value_type\": \"INT64\"\n            },\n            {\n                \"desc\": \"\",\n                \"is_multi\": false,\n                \"is_required\": true,\n                \"key\": \"use_type\",\n                \"name\": \"团购使用方式\",\n                \"value_demo\": \"1-到店核销\",\n                \"value_type\": \"INT64\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Member/GoodLifeMemberUnionIdGetV1Request.json",
    "content": "{\n    \"account_id\": \"905220194638320366\",\n    \"members\": [\n        {\n            \"open_id\": \"aab1c68e-0af7-4863-a25d-643dcba378cb\"\n        },\n        {\n            \"open_id\": \"xxxxxxx-0af7-4863-a25d-643dcba378cb\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Member/GoodLifeMemberUnionIdGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"members\": [\n            {\n                \"open_id\": \"aab1c68e-0af7-4863-a25d-643dcba378cb\",\n                \"union_id\": \"aaaxxasdsaskhdkahsd\"\n            },\n            {\n                \"open_id\": \"xxxxxxx-0af7-4863-a25d-643dcba378cb\",\n                \"union_id\": \"shdfasldkasjkajdkjad\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"logid\": \"20220616135636010225243100059D654D\",\n        \"now\": 1655358997504,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Member/GoodLifeMemberUserUpdateV1Request.json",
    "content": "{\n    \"account_id\": \"905220194638320366\",\n    \"members\": [\n        {\n            \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\",\n            \"point_amount\": 120,\n            \"update_time\": 1655279452,\n            \"user_level\": 3\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/Crowd/GoodLifePOICrowdSaveV1Request.json",
    "content": "{\n    \"account_id\": \"71409826xxxx\",\n    \"poi_id\": \"660113xxxx\",\n    \"crowds\": [\n        {\n            \"crowd_type\": 1,\n            \"height_condition\": {\n                \"upper_bound\": 120,\n                \"upper_bound_type\": 1\n            },\n            \"note\": \"儿童测试\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIClaimV1Request.json",
    "content": "{\n    \"target_type\": 0,\n    \"datas\": [\n        {\n            \"account_id\": \"7000000000066434078\",\n            \"third_id\": \"ext_id\",\n            \"poi_id\": \"7000000000086100511\",\n            \"license\": {\n                \"use_ocr\": false,\n                \"company_name\": \"有限公司\",\n                \"license_id\": \"91AAAAAAAAAAAAAAAA\",\n                \"license_urls\": [\"http://xxxx.jpg\"],\n                \"license_type\": 91,\n                \"expiration\": \"2031-08-10\"\n            },\n            \"legal_person\": {\n                \"id_card_expiration\": \"2031-08-10\",\n                \"id_card_front_url\": \"http://yyyyy.jpg\",\n                \"id_card_back_url\": \"http://zzzzz.jpg\",\n                \"id_card_no\": \"362427198402130839\",\n                \"name\": \"法人名字\",\n                \"use_ocr\": false\n            },\n            \"industry\": {\n                \"major_industry_code\": \"010503\",\n                \"minor_industry_codes\": [],\n                \"qualifications\": [\n                    {\n                        \"qualification_type\": 2001,\n                        \"qualification_urls\": [\"http://wwwww.jpg\"],\n                        \"qualification_expiration\": \"2022-12-31\"\n                    }\n                ]\n            },\n            \"owner_info\": {\n                \"name\": \"测试\",\n                \"phone\": \"13000000000\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIClaimV1Response.json",
    "content": "{\n    \"data\": {\n        \"tasks\": [\n            {\n                \"task_id\": 7000000000011110000,\n                \"third_id\": \"ext_id\",\n                \"poi_id\": \"7000000000086100511\",\n                \"account_id\": \"7000000000000000000\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIMatchRelationQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"relations\": [\n            {\n                \"ext_id\": \"ext_id1\",\n                \"match_poi_id\": \"7000000000011110000\",\n                \"match_relation_status\": 2\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIMatchTaskQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"results\": [\n            {\n                \"ext_id\": \"ext_id1\",\n                \"match_poi_id\": \"7000000000011110000\",\n                \"match_status\": 5\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIMatchTaskSubmitV1Request.json",
    "content": "{\n    \"datas\": [\n        {\n            \"ext_id\": \"kaTest1027\",\n            \"poi_id\": \"7159188409662000000\",\n            \"poi_name\": \"测试POI\",\n            \"province\": \"新疆维吾尔自治区\",\n            \"city\": \"阿克苏\",\n            \"address\": \"庐山路华晨大拇指商业广场5楼\",\n            \"longitude\": \"82.582757\",\n            \"latitude\": \"40.101899\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOIMatchTaskSubmitV1Response.json",
    "content": "{\n    \"data\": {\n        \"task_id\": 7135354259311110000,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOISyncV1Request.json",
    "content": "{\n    \"target_type\": 0,\n    \"datas\": [\n        {\n            \"account_id\": \"7000000000066434078\",\n            \"third_id\": \"ext_id\",\n            \"poi_id\": \"7000000000086100511\",\n            \"license\": {\n                \"use_ocr\": false,\n                \"company_name\": \"有限公司\",\n                \"license_id\": \"91AAAAAAAAAAAAAAAA\",\n                \"license_urls\": [\"http://xxxx.jpg\"],\n                \"license_type\": 91,\n                \"expiration\": \"2031-08-10\"\n            },\n            \"legal_person\": {\n                \"id_card_expiration\": \"2031-08-10\",\n                \"id_card_front_url\": \"http://yyyyy.jpg\",\n                \"id_card_back_url\": \"http://zzzzz.jpg\",\n                \"id_card_no\": \"362427198402130839\",\n                \"name\": \"法人名字\",\n                \"use_ocr\": false\n            },\n            \"industry\": {\n                \"major_industry_code\": \"010503\",\n                \"minor_industry_codes\": [],\n                \"qualifications\": [\n                    {\n                        \"qualification_type\": 2001,\n                        \"qualification_urls\": [\"http://wwwww.jpg\"],\n                        \"qualification_expiration\": \"2022-12-31\"\n                    }\n                ]\n            },\n            \"owner\": {\n                \"name\": \"测试\",\n                \"phone\": \"13000000000\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/POI/GoodLifePOISyncV1Response.json",
    "content": "{\n    \"data\": {\n        \"tasks\": [\n            {\n                \"task_id\": 7000000000011110000,\n                \"third_id\": \"ext_id\",\n                \"poi_id\": \"7000000000086100511\",\n                \"account_id\": \"7000000000000000000\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"commission_record_items\": [\n            {\n                \"audit_commission_ratio\": \"5000\",\n                \"commission_audit_status\": 1,\n                \"effective_commission_ratio\": \"5555\",\n                \"item_id\": \"7174615031286597688\",\n                \"merchant_ack_time\": 1670470591,\n                \"product_id\": \"1738315637900350\"\n            },\n            {\n                \"effective_commission_ratio\": \"4444\",\n                \"item_id\": \"7174615031286581304\",\n                \"merchant_ack_time\": 1670470591,\n                \"product_id\": \"1738323521145982\",\n                \"audit_commission_ratio\": \"4000\",\n                \"commission_audit_status\": 1\n            },\n            {\n                \"product_id\": \"1743305630547982\",\n                \"audit_commission_ratio\": \"3000\",\n                \"commission_audit_status\": 1,\n                \"effective_commission_ratio\": \"3333\",\n                \"item_id\": \"7174615031286564920\",\n                \"merchant_ack_time\": 1670470591\n            },\n            {\n                \"audit_commission_ratio\": \"2000\",\n                \"commission_audit_status\": 1,\n                \"effective_commission_ratio\": \"2222\",\n                \"item_id\": \"7174615031286548536\",\n                \"merchant_ack_time\": 1670470591,\n                \"product_id\": \"1741293139936271\"\n            },\n            {\n                \"commission_audit_status\": 1,\n                \"effective_commission_ratio\": \"1111\",\n                \"item_id\": \"7174615031286532152\",\n                \"merchant_ack_time\": 1670470591,\n                \"product_id\": \"1738313718124563\",\n                \"audit_commission_ratio\": \"1000\"\n            }\n        ],\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"now\": 1670470921,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"202212081142010102090950973000736C\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Commission/GoodLifePartnerCommissionRecordQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"commission_records\": [\n            {\n                \"create_time\": 1670470582,\n                \"record_id\": \"7174615031286515768\"\n            },\n            {\n                \"create_time\": 1670470236,\n                \"record_id\": \"7174615031286335544\"\n            },\n            {\n                \"create_time\": 1670469909,\n                \"record_id\": \"7174595968388892731\"\n            }\n        ],\n        \"total\": 3,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"logid\": \"202212081141240101511860851900AA58\",\n        \"now\": 1670470884,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"product_commissions\": [\n            {\n                \"latest_commission_record_item\": {\n                    \"audit_commission_ratio\": \"5501\",\n                    \"commission_audit_status\": 301,\n                    \"commission_ratio_before\": \"5501\",\n                    \"item_id\": \"7174621650796906552\",\n                    \"merchant_ack_time\": 1670476152,\n                    \"product_id\": \"1738315637900350\"\n                },\n                \"product\": {\n                    \"product_id\": \"1738315637900350\",\n                    \"product_name\": \"服务商发布商品02\",\n                    \"product_status\": 2,\n                    \"actual_price\": \"10\",\n                    \"effective_commission_ratio\": \"5501\",\n                    \"product_commission_status\": 1\n                }\n            },\n            {\n                \"latest_commission_record_item\": {\n                    \"audit_commission_ratio\": \"2200\",\n                    \"commission_audit_status\": 301,\n                    \"commission_ratio_before\": \"4401\",\n                    \"item_id\": \"7174621650796890168\",\n                    \"merchant_ack_time\": 1670476152,\n                    \"product_id\": \"1738323521145982\"\n                },\n                \"product\": {\n                    \"effective_commission_ratio\": \"4401\",\n                    \"product_commission_status\": 1,\n                    \"product_id\": \"1738323521145982\",\n                    \"product_name\": \"服务商发布商品04\",\n                    \"product_status\": 2,\n                    \"actual_price\": \"10\"\n                }\n            },\n            {\n                \"latest_commission_record_item\": {\n                    \"commission_audit_status\": 301,\n                    \"commission_ratio_before\": \"3301\",\n                    \"item_id\": \"7174621650796873784\",\n                    \"merchant_ack_time\": 1670476152,\n                    \"product_id\": \"1743305630547982\",\n                    \"audit_commission_ratio\": \"3301\"\n                },\n                \"product\": {\n                    \"effective_commission_ratio\": \"3301\",\n                    \"product_commission_status\": 1,\n                    \"product_id\": \"1743305630547982\",\n                    \"product_name\": \"测试服务商02\",\n                    \"product_status\": 2,\n                    \"actual_price\": \"20\"\n                }\n            }\n        ],\n        \"total\": 5,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"202212081440100101351601491F0002B8\",\n        \"now\": 1670481611,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionSaveV1Request.json",
    "content": "{\n    \"order_id\": \"7134973323200432172\",\n    \"product_items\": [\n        {\n            \"commission_ratio\": \"300\",\n            \"product_id\": \"1725647491732535\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Commission/GoodLifePartnerProductCommissionSaveV1Response.json",
    "content": "{\n    \"data\": {\n        \"invalid_commission_product_list\": [\n            {\n                \"alliance_commission_ratio\": \"2300\",\n                \"commission_ratio\": \"2200\",\n                \"product_id\": \"1738323521145982\"\n            }\n        ],\n        \"record_id\": \"0\",\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"logid\": \"202212081438260101501680961F17FD40\",\n        \"now\": 1670481506,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Order/GoodLifePartnerOrderCreateV1Request.json",
    "content": "{\n    \"account_id\": \"7063315566466975788\",\n    \"cooperation_content\": 5,\n    \"start_time\": 1661415000,\n    \"end_time\": 1669367400,\n    \"charge_type\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Order/GoodLifePartnerOrderCreateV1Response.json",
    "content": "{\n    \"data\": {\n        \"order_id\": \"7135354259311118380\",\n        \"error_code\": 0,\n        \"description\": \"success\"\n    },\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"20220825160718010225082199060C966B\",\n        \"now\": 1661414840,\n        \"sub_description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Order/GoodLifePartnerOrderGetV1Response.json",
    "content": "{\n    \"data\": {\n        \"product_items\": [\n            {\n                \"actual_price\": \"10\",\n                \"commission_ratio\": \"1900\",\n                \"product_id\": \"1738315637900350\",\n                \"product_status\": 1\n            },\n            {\n                \"actual_price\": \"10\",\n                \"commission_ratio\": \"1800\",\n                \"product_id\": \"1738323521145982\",\n                \"product_status\": 1\n            },\n            {\n                \"actual_price\": \"20\",\n                \"commission_ratio\": \"1700\",\n                \"product_id\": \"1743305630547982\",\n                \"product_status\": 1\n            },\n            {\n                \"actual_price\": \"30\",\n                \"commission_ratio\": \"1689\",\n                \"product_id\": \"1741293139936271\",\n                \"product_status\": 1\n            },\n            {\n                \"actual_price\": \"10\",\n                \"commission_ratio\": \"1001\",\n                \"product_id\": \"1738313718124563\",\n                \"product_status\": 1\n            }\n        ],\n        \"product_name\": \"代运营（开环）\",\n        \"start_time\": 1670469925,\n        \"status\": 302,\n        \"description\": \"success\",\n        \"account_id\": \"7102357172037617678\",\n        \"charge_type\": 2,\n        \"end_time\": 1695787164,\n        \"merchant_name\": \"测试服务商5\",\n        \"error_code\": 0,\n        \"cooperation_content\": 5,\n        \"create_time\": 1670469397,\n        \"id\": \"7174603230893279290\"\n    },\n    \"extra\": {\n        \"now\": 1670470067,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"202212081127470101410451500305053E\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Partner/Order/GoodLifePartnerOrderQueryV1Response.json",
    "content": "{\n    \"extra\": {\n        \"sub_error_code\": 0,\n        \"description\": \"success\",\n        \"error_code\": 0,\n        \"logid\": \"202209091530020101742511840511D283\",\n        \"now\": 1662708603,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"orders\": [\n            {\n                \"status\": 302,\n                \"account_id\": \"7122724774706432044\",\n                \"charge_type\": 2,\n                \"cooperation_content\": 5,\n                \"create_time\": 1662607017,\n                \"end_time\": 1672370139,\n                \"id\": \"7140842762017966124\",\n                \"merchant_name\": \"解绑测试二\",\n                \"product_name\": \"代运营（开环）\",\n                \"start_time\": 1662608710\n            }\n        ],\n        \"total\": 1,\n        \"error_code\": 0,\n        \"description\": \"success\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryByOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"ledger_records\": {\n            \"11224112312\": {\n                \"ledger_id\": \"7064492324109305863\",\n                \"verify_id\": \"7064491846000592903\",\n                \"certificate_id\": \"7064423012048865293\",\n                \"order_id\": \"7062268392329758757\",\n                \"verify_time\": 1644830204,\n                \"status\": 2,\n                \"code\": \"100566718260\",\n                \"amount\": {\n                    \"original\": 50,\n                    \"pay\": 45,\n                    \"merchant_ticket\": 0,\n                    \"goods\": 50,\n                    \"talent_commission\": 0\n                },\n                \"goods\": {\n                    \"sku_id\": \"1721554180176909\",\n                    \"title\": \"测试结算中台分店\",\n                    \"market_price\": 500,\n                    \"sold_start_time\": 1641801900\n                }\n            }\n        },\n        \"ledger_second_records\": {\n            \"11224112312\": {\n                \"ledger_id\": \"7064492324109305863\",\n                \"verify_id\": \"7064491846000592903\",\n                \"order_id\": \"7062268392329758757\",\n                \"verify_time\": 1644830204,\n                \"status\": 2,\n                \"amount\": {\n                    \"merchant_freight\": 50,\n                    \"merchant_tip\": 45,\n                    \"merchant_cancel_freight\": 0,\n                    \"platform_duty_freight\": 50,\n                    \"platform_duty_tip\": 0\n                },\n                \"goods\": {\n                    \"sku_id\": \"1721554180176909\",\n                    \"title\": \"测试结算中台分店\",\n                    \"market_price\": 500,\n                    \"sold_start_time\": 1641801900\n                }\n            }\n        }\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"logid\": \"xxxxxxxxxxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Settle/GoodLifeSettleLedgerDetailedQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": \"7000000000000000000\",\n        \"has_more\": true,\n        \"ledger_records\": [\n            {\n                \"account_id\": \"7000000000000000000\",\n                \"amount\": {\n                    \"actual_insured\": 0,\n                    \"coupon_pay\": 0,\n                    \"goods\": 0,\n                    \"institution_commission\": 0,\n                    \"ledger_platform_ticket\": 0,\n                    \"ledger_total\": 0,\n                    \"merchant_ticket\": 0,\n                    \"original\": 0,\n                    \"pay\": 0,\n                    \"pay_discount\": 0,\n                    \"platform_ticket\": 0,\n                    \"talent_commission\": 0,\n                    \"total_agent_merchant\": 0,\n                    \"total_merchant_platform_service\": 0,\n                    \"total_operation_agent\": 0\n                },\n                \"certificate\": {\n                    \"certificate_id\": \"7000000000000000000\",\n                    \"code\": \"100000000000\"\n                },\n                \"goods\": {\n                    \"group_name\": \"商品名\",\n                    \"sku_id\": \"1000000000000000\",\n                    \"sold_start_time\": 1659921380\n                },\n                \"id\": \"700000000000000000\",\n                \"item_order_id\": \"800000000000001449813500000\",\n                \"ledger_id\": \"l_r_b0000000000797812254000011945608\",\n                \"ledger_time\": 1661054991,\n                \"order_attrribute\": {\n                    \"room_id\": \"7000000000000000000\",\n                    \"source\": \"livebroadcasting\"\n                },\n                \"order_id\": \"8000000000000000000\",\n                \"poi_id\": \"6000000000000000000\",\n                \"receipt_bill_key\": \"7000000000000000000_202208_0_0\",\n                \"sku_order_id\": \"800000000000000000\",\n                \"status\": 2\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651113600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Settle/GoodLifeSettleLedgerQueryByOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"ledger_records\": {\n            \"11224112312\": {\n                \"ledger_id\": \"7064492324109305863\",\n                \"verify_id\": \"7064491846000592903\",\n                \"certificate_id\": \"7064423012048865293\",\n                \"order_id\": \"7062268392329758757\",\n                \"verify_time\": 1644830204,\n                \"status\": 2,\n                \"code\": \"100566718260\",\n                \"amount\": {\n                    \"original\": 50,\n                    \"pay\": 45,\n                    \"merchant_ticket\": 0,\n                    \"goods\": 50,\n                    \"pay_handling\": 0,\n                    \"talent_commission\": 0\n                },\n                \"goods\": {\n                    \"sku_id\": \"1721554180176909\",\n                    \"title\": \"测试结算中台分店\",\n                    \"market_price\": 500,\n                    \"sold_start_time\": 1641801900\n                }\n            }\n        },\n        \"ledger_second_records\": {\n            \"11224112312\": {\n                \"ledger_id\": \"7064492324109305863\",\n                \"verify_id\": \"7064491846000592903\",\n                \"order_id\": \"7062268392329758757\",\n                \"verify_time\": 1644830204,\n                \"status\": 2,\n                \"amount\": {\n                    \"merchant_freight\": 50,\n                    \"merchant_tip\": 45,\n                    \"merchant_cancel_freight\": 0,\n                    \"platform_duty_freight\": 50,\n                    \"platform_duty_tip\": 0\n                },\n                \"goods\": {\n                    \"sku_id\": \"1721554180176909\",\n                    \"title\": \"测试结算中台分店\",\n                    \"market_price\": 500,\n                    \"sold_start_time\": 1641801900\n                }\n            }\n        }\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"logid\": \"xxxxxxxxxxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Settle/GoodLifeSettleLedgerQueryRecordByCertificateV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"records\": [\n            {\n                \"ledger_id\": \"7064492324109305863\",\n                \"verify_id\": \"7064491846000592903\",\n                \"certificate_id\": \"7064423012048865293\",\n                \"order_id\": \"7062268392329758757\",\n                \"verify_time\": 1644830204,\n                \"status\": 2,\n                \"code\": \"100566718260\",\n                \"amount\": {\n                    \"amount\": {\n                        \"original\": 50,\n                        \"pay\": 45,\n                        \"merchant_ticket\": 0\n                    },\n                    \"fund_amount\": {\n                        \"goods\": 50,\n                        \"pay_handling\": 0,\n                        \"talent_commission\": 0\n                    }\n                },\n                \"sku\": {\n                    \"sku_id\": \"1721554180176909\",\n                    \"title\": \"测试结算中台分店\",\n                    \"market_price\": 500,\n                    \"sold_start_time\": 1641801900\n                }\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651738946\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Settle/GoodLifeSettleLedgerQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": \"7000000000000000000\",\n        \"has_more\": true,\n        \"ledger_records\": [\n            {\n                \"account_id\": \"7000000000000000000\",\n                \"amount\": {\n                    \"merchant_ticket\": 0,\n                    \"actual_insured\": 0,\n                    \"original\": 0,\n                    \"pay\": 0,\n                    \"coupon_pay\": 0,\n                    \"goods\": 0\n                },\n                \"certificate\": {\n                    \"certificate_id\": \"7000000000000000000\",\n                    \"code\": \"100000000000\"\n                },\n                \"goods\": {\n                    \"group_name\": \"商品名\",\n                    \"sku_id\": \"1000000000000000\",\n                    \"sold_start_time\": 1659921380\n                },\n                \"id\": \"700000000000000000\",\n                \"item_order_id\": \"800000000000001449813500000\",\n                \"ledger_id\": \"l_r_b0000000000797812254000011945608\",\n                \"ledger_time\": 1661054991,\n                \"order_attrribute\": {\n                    \"room_id\": \"7000000000000000000\",\n                    \"source\": \"livebroadcasting\"\n                },\n                \"order_id\": \"8000000000000000000\",\n                \"poi_id\": \"6000000000000000000\",\n                \"receipt_bill_key\": \"7000000000000000000_202208_0_0\",\n                \"sku_order_id\": \"800000000000000000\",\n                \"status\": 2\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651113600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Shop/GoodLifeShopPOIQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"total\": 1,\n        \"pois\": [\n            {\n                \"account\": {\n                    \"parent_account\": {\n                        \"account_id\": \"1231241656\",\n                        \"account_name\": \"\",\n                        \"account_type\": \"Trademark\"\n                    },\n                    \"poi_account\": {\n                        \"account_id\": \"8791273891\",\n                        \"account_name\": \"\",\n                        \"account_type\": \"Shop\"\n                    }\n                },\n                \"poi\": {\n                    \"poi_id\": \"111111\",\n                    \"address\": \"西路二区111号门面\",\n                    \"latitude\": 21.328037,\n                    \"longitude\": 20.363777,\n                    \"poi_name\": \"西店\"\n                }\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651131270\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Trade/GoodLifeTradeBookGetV1Response.json",
    "content": "{\n    \"BaseResp\": {\n        \"biz_code\": 0,\n        \"biz_msg\": \"\"\n    },\n    \"data\": {\n        \"book_id\": \"123456\",\n        \"order_id\": \"0\",\n        \"status\": \"0\",\n        \"book_start_day\": \"2022-08-08\",\n        \"book_end_day\": \"2022-08-08\",\n        \"book_apply_time\": \"1660113732\",\n        \"book_cancel_time\": \"1660113733\",\n        \"hotel\": {\n            \"chain_code\": \"111\",\n            \"hotel_code\": \"1\",\n            \"rate_plan_code\": \"1\",\n            \"room_type_code\": \"1\",\n            \"number_of_rooms\": \"2\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Trade/GoodLifeTradeBuyMerchantConfirmOrderV1Request.json",
    "content": "{\n    \"order_id\": \"8000001745679682306\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/GoodLife/Trade/GoodLifeTradeOrderQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"orders\": [\n            {\n                \"count\": 1,\n                \"order_id\": \"7000277894522046508\",\n                \"order_status\": 101,\n                \"order_type\": 21,\n                \"original_amount\": 20,\n                \"pay_amount\": 20,\n                \"sku_id\": \"1708941687677982\",\n                \"update_order_time\": 1629879472,\n                \"certificate\": [\n                    {\n                        \"certificate_id\": \"\",\n                        \"item_status\": 401,\n                        \"item_update_time\": 1654348496,\n                        \"order_item_id\": \"710525525737414864913240082\",\n                        \"refund_amount\": 0,\n                        \"refund_time\": 0\n                    }\n                ],\n                \"contacts\": [\n                    {\n                        \"name\": \"\",\n                        \"phone\": \"\"\n                    }\n                ],\n                \"create_order_time\": 1629879472,\n                \"pay_time\": 0,\n                \"sku_name\": \"在线修改test1的副本\"\n            },\n            {\n                \"order_id\": \"7000278755910502444\",\n                \"original_amount\": 20,\n                \"pay_amount\": 20,\n                \"pay_time\": 0,\n                \"sku_name\": \"在线修改test1的副本\",\n                \"count\": 1,\n                \"create_order_time\": 1629880093,\n                \"order_type\": 21,\n                \"sku_id\": \"1708941687677982\",\n                \"update_order_time\": 1629880093,\n                \"certificate\": [\n                    {\n                        \"certificate_id\": \"\",\n                        \"item_status\": 401,\n                        \"item_update_time\": 1654348496,\n                        \"order_item_id\": \"710525525737414864913240082\",\n                        \"refund_amount\": 0,\n                        \"refund_time\": 0\n                    }\n                ],\n                \"contacts\": [\n                    {\n                        \"name\": \"\",\n                        \"phone\": \"\"\n                    }\n                ],\n                \"order_status\": 200\n            }\n        ],\n        \"page\": {\n            \"page_num\": 1,\n            \"page_size\": 2,\n            \"total\": 104292\n        },\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1656663996,\n        \"logid\": \"20220701162636010225145152030360A6\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/HotSearch/HotSearchSentencesResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"active_time\": \"2019-10-31 11:00:37\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"list\": [\n            {\n                \"hot_level\": 1,\n                \"sentence\": \"苹果发布AirPods Pro\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/HotSearch/HotSearchTrendingSentencesResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 1,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"hot_level\": 1,\n                \"label\": 1,\n                \"sentence\": \"苹果发布AirPods Pro\"\n            }\n        ],\n        \"total\": 1\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/HotSearch/HotSearchVideosResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"list\": [\n            {\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"create_time\": 123,\n                \"is_reviewed\": true,\n                \"is_top\": false,\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"statistics\": {\n                    \"comment_count\": \"100\",\n                    \"digg_count\": \"200\",\n                    \"download_count\": \"10\",\n                    \"forward_count\": \"10\",\n                    \"play_count\": \"300\",\n                    \"share_count\": \"10\"\n                },\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"video_status\": \"1\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Authorize/IMAuthorizeStatusRequest.json",
    "content": "{\n    \"c_open_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Authorize/IMAuthorizeStatusResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202203271807199888808121990491456D\",\n    \"data\": {\n        \"status\": 1,\n        \"enter_from\": \"im_card\",\n        \"attribution\": {\n            \"room_id\": \"123456\",\n            \"anchor_id\": \"ba253642-0590-40bc-9bdf-9a1334b94059\",\n            \"from_att_uid\": \"ba253642-0590-40bc-9bdf-9a1334b94059\",\n            \"conversation_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb\",\n            \"message_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb\",\n            \"group_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb\",\n            \"author_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb\"\n        },\n        \"data_im_extra\": \"haha micro_app\",\n        \"query\": \"cptName=button\",\n        \"path\": \"page/componentTpl/componentTpl\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Authorize/IMAuthorizeUserListRequest.json",
    "content": "{\n    \"page_size\": 10,\n    \"page_num\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Authorize/IMAuthorizeUserListResponse.json",
    "content": "{\n    \"data\": {\n        \"auth_user_list\": [\n            {\n                \"auth_user_source_app_id\": \"ttfa3965001\",\n                \"target_open_id\": \"_000FnVpk1_9MMOGOTvzFqPoQCxmyooIfgaC\",\n                \"data_im_extra\": \"micro_app\",\n                \"query\": \"cptName=button\",\n                \"path\": \"page/componentTpl/componentTpl\"\n\n            },\n            {\n                \"target_open_id\": \"_000LMpVKP67ggHu4Y0OO5JwQKAqkC6j0_li\",\n                \"auth_user_source_app_id\": \"ttfa3965001\",\n                \"data_im_extra\": \"micro_app\",\n                \"query\": \"cptName=button\",\n                \"path\": \"page/componentTpl/componentTpl\"\n            },\n            {\n                \"auth_user_source_app_id\": \"ttfa3965001\",\n                \"target_open_id\": \"_0002cdMxHCrp1JcWzRtI3GDb5J-Ins4JnCS\",\n                \"data_im_extra\": \"micro_app\",\n                \"query\": \"cptName=button\",\n                \"path\": \"page/componentTpl/componentTpl\"\n            }\n        ],\n        \"has_more\": true\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02169835083298800000000000000000000ffff0a9c251a9d7709\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Card/IMGetRetainConsultCardResponse.json",
    "content": "{\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 730598272966408100,\n        \"error_code\": 1231,\n        \"description\": \"abvJw1cA98\",\n        \"sub_error_code\": 123,\n        \"sub_description\": \"OgkYIxonSg\"\n    },\n    \"cards\": [\n        {\n            \"card_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n            \"title\": \"AkEgWXgjJC\",\n            \"media_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n            \"components\": [\n                1\n            ],\n            \"status\": 1\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Card/IMSaveRetainConsultCardRequest.json",
    "content": "{\n    \"title\": \"同类型\",\n    \"media_id\": \"@9VwNxuKKBZ03MXG7M8ooWM6+iib0bqafYog16knsa1AUPKajyCTkLAhFvjLE1QtoXGXEjzkBJNYG2NHSHyblWX2M2bZ5mT1hatJT3UhT8k+LWeDC54fwY0ZOD4Lc1JSX\",\n    \"components\": [ 1, 2, 3 ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Card/IMSaveRetainConsultCardResponse.json",
    "content": "{\n    \"card_id\": \"@72MqHzC5kqIEgB56A10R9n1psdsNe8gPbkeqQAHKbHp1G4Vlci1qTF5dPUOM0K8i\",\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1660109415,\n        \"logid\": \"202208101330140102250990080401DB11\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupEnterAuditGetResponse.json",
    "content": "{\n    \"apply_list\": {\n        \"cursor\": 1,\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"apply_id\": \"@9VwNxuKKBZ03MXG7M8ooWM7912XrPPqCOJdzqQ6lL1kVbfX760zdRmYqig357zEB84GwkVBjbo2eCWCq4V****==\",\n                \"apply_status\": 1,\n                \"create_time\": 1676874310259,\n                \"group_id\": \"@9VwNxuKKBZ03MXG7M8ooWM7912XrPPmLO5dyrAOnK1UTZ/T/60zdRmYqig357zEBdsFiI4euKz5E1pivD****==\",\n                \"user_id\": \"29d2f583-7fd6-4daa-b1d4-cfab5c05079Q\"\n            }\n        ]\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"20230222103211977B5DF3F5230D43A615\",\n        \"now\": 1677033132\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupEnterAuditSetRequest.json",
    "content": "{\n    \"apply_id\": \"@8hxdhauTCMppanGnM4ltGM/V/x1w==\",\n    \"status\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupEnterAuditSetResponse.json",
    "content": "{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": 0\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"logid\": \"20230221211048A33CA419CE0F8E1B4899\",\n        \"now\": 1676985049,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0\n    },\n    \"success\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupFansCountResponse.json",
    "content": "{\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1666756486,\n        \"logid\": \"2022102611544501014017115714020A20\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"left_count\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupFansCreateRequest.json",
    "content": "{\n    \"avatar_uri\": \"https://xxx\",\n    \"group_name\": \"创建群\",\n    \"description\": \"创建群\",\n    \"open_audit_switch\": 1,\n    \"show_at_profile\": 1,\n    \"live_auto_sync\": 1,\n    \"item_auto_sync\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupFansCreateResponse.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1648797449,\n        \"logid\": \"021648797449846fd1b1111000700600000000000000086dfb920\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"group_id\": \"@jebkjeb87hbejfh==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupFansListResponse.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1648797449,\n        \"logid\": \"021648797449846fd1b1111000700600000000000000086dfb920\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"group_list\": [\n        {\n            \"exist_num\": 1,\n            \"group_name\": \"group_name\",\n            \"max_num\": 500,\n            \"description\": \"description\",\n            \"entry_limit\": null,\n            \"group_id\": \"@aaaaaa==\",\n            \"status\": \"Normal\",\n            \"tags\": null,\n            \"avatar_uri\": \"https://p3.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-avt-001\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupSettingDisableRequest.json",
    "content": "{\n    \"group_setting_type\": 1,\n    \"group_id\": \"72da93734esff88605\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Group/IMGroupSettingSetRequest.json",
    "content": "{\n    \"group_setting_type\": 1,\n    \"group_id\": \"@4F8C16DLBMpoayH0MI44GaX+1WSGOvqKMpZ2rgigLVAab/b033bhf2Iujgn96zUFzrEMFkG/vUKhYHQ90PrjsQ==\",\n    \"msg_list\": [\n        {\n            \"msg_type\": 1,\n            \"text\": {\n                \"text\": \"66666\"\n            }\n        },\n        {\n            \"msg_type\": 10,\n            \"applet_card\": {\n                \"card_template_id\": \"@4F8C16DLB+1WSGO/yAA61JkTKeF2ltKgvvhATKtvrScVZhhxZ/\",\n                \"schema\": \"https://z.douyin.com/lktwYRo\",\n                \"app_id\": \"ttfa398c06e94401\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Message/IMRecallMessageRequest.json",
    "content": "{\n    \"msg_id\": \"@72MqHzC5kqIEgB56229n1ntu80T/MxUH6Wfj32VkdzCNbYrU9MpJSYEVV6/2hKL3r7seeHSYoexQTg/Prp5A==\",\n    \"conversation_id\": \"@72MqHzC5kqIEgB56A10333ntucyQ/A1Wn33333Vk9xDdDQrU9MpJSYEVV6/2hKHKVaRbE67Vx7Jd6yxgnq/g==\",\n    \"conversation_type\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Message/IMSendMessageGroupRequest.json",
    "content": "{\n    \"content\": {\n        \"msg_type\": 2,\n        \"image\": {\n            \"media_id\": \"@aaaa\"\n        }\n    },\n    \"group_id\": \"@7aaaa==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Message/IMSendMessageGroupResponse.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1648797449,\n        \"logid\": \"021648797449846fd1b1111000700600000000000000086dfb920\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"msg_id\": \"@c29bfc000+MNggFhRkwGuX1ntuc0RPc0VHKefj/yWEJ8uhd==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Message/IMSendMessageRequest.json",
    "content": "{\n    \"content\": {\n        \"msg_type\": 2,\n        \"image\": {\n            \"media_id\": \"@aaaa\"\n        }\n    },\n    \"content_list\": [\n        {\n            \"msg_type\": 1,\n            \"text\": {\n                \"text\": \"你好\"\n            }\n        },\n        {\n            \"msg_type\": 2,\n            \"image\": {\n                \"media_id\": \"@sssssssss\"\n            }\n        },\n        {\n            \"msg_type\": 3,\n            \"video\": {\n                \"item_id\": \"@ssssss==\"\n            }\n        },\n        {\n            \"msg_type\": 8,\n            \"retain_consult_card\": {\n                \"card_id\": \"@9VwNxuKKBZ03MXG7M8ooWM771FjUAMW/BqhMlDebEmyyzJD7cZENrR868oDbX9xx\"\n            }\n        },\n        {\n            \"msg_type\": 9,\n            \"group_invitation\": {\n                \"group_id\": \"@9VwNxuKKBZ03MXG7M8ooWM771FjUAMW/BqhMlDebEmyyzJD7cZENrR868oDbX9xx\",\n                \"group_token\": \"CgYIASAHKAESTgpMgRzGa429biTLOZKpUpkLgNKB4wTP/iTeFBfgrhQazpSF62U1ImdoTHa5SK4nS0yvdUrF4bpxdMxovADSfnf3HuilL4fS1l8Q8UZO4hoA\"\n            }\n        },\n        {\n            \"msg_type\": 10,\n            \"applet_card\": {\n                \"card_template_id\": \"@9VwNxuKKBZ03MXG7M8ooWM771FjUAMW/BqhMlDebEmyyzJD7cZENrR868oDbX9xx\",\n                \"path\": \"api/apiPage/apiPage\",\n                \"query\": \"{\\\"key1\\\":\\\"val1\\\",\\\"key2\\\":\\\"val2\\\"}\",\n                \"app_id\": \"tt3ergjdge84gdwksb\"\n            }\n        },\n        {\n            \"msg_type\": 11,\n            \"applet_coupon\": {\n                \"activity_id\": 123222,\n                \"coupon_meta_id\": 123015333\n            }\n        },\n        {\n            \"msg_type\": 12,\n            \"auth_private_message_card\": {\n                \"app_info\": {\n                    \"app_id\": \"tt_dadaf12314\"\n                },\n                \"to_user_info\": {\n                    \"open_id\": \"ad134dafdaf\",\n                    \"app_id\": \"tt_dadfadfa\"\n                }\n            }\n        }\n    ],\n    \"msg_id\": \"@7aaaa==\",\n    \"conversation_id\": \"@aaaa==\",\n    \"to_user_id\": \"bb-bb-xx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/IM/Message/IMSendMessageResponse.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1648797449,\n        \"logid\": \"021648797449846fd1b1111000700600000000000000086dfb920\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"msg_id\": \"@c29bfc000+MNggFhRkwGuX1ntuc0RPc0VHKefj/yWEJ8DtjU==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Image/ImageCreateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Image/ImageUploadResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"image\": {\n            \"height\": \"360\",\n            \"image_id\": \"\",\n            \"width\": \"360\"\n        }\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Item/Comment/ItemCommentListResponse.json",
    "content": "{\n    \"data\": {\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"top\": false,\n                \"comment_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791G3uO/mLOZ10oQOjJ1EUafn460zdRmYqig357zEBidswyrkjAGx3+uVUd0cE4Q==\",\n                \"comment_user_id\": \"43eae150-12eb-4035-8d40-3f9a2bfcdf4e\",\n                \"content\": \"评论\",\n                \"create_time\": 1673507751,\n                \"digg_count\": 0,\n                \"reply_comment_total\": 0,\n                \"avatar\": \"https://uuue/ehdne\",\n                \"nick_name\": \"xiaoming\"\n            }\n        ],\n        \"cursor\": 1\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Item/Comment/ItemCommentReplyListResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\"\n    },\n    \"data\": {\n        \"cursor\": 1,\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"comment_id\": \"\",\n                \"comment_user_id\": \"\",\n                \"content\": \"回复内容\",\n                \"create_time\": 1607399832,\n                \"digg_count\": 647,\n                \"reply_comment_total\": 12,\n                \"top\": true\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Item/Comment/ItemCommentReplyResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"comment_id\": \"11\",\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/JS/JSGetTicketResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"7200\",\n        \"ticket\": \"bxLdikRXVbTPdHSM05e5u5sUoXNKd8\"\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/MarketService/MarketServiceUserDeletePurchaseInfoRequest.json",
    "content": "﻿{\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334******\",\n    \"service_id\": \"7021602203591******\",\n    \"service_mode_id\": \"standard_2\",\n    \"out_trade_no\": \"1680613917339688\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/MarketService/MarketServiceUserInsertPurchaseInfoRequest.json",
    "content": "﻿{\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334******\",\n    \"service_id\": \"7021602203591******\",\n    \"service_mode_id\": \"free\",\n    \"out_trade_no\": \"1680613917339688\",\n    \"purchase_time\": 1657093625000,\n    \"period_type\": 1,\n    \"duration\": 1,\n    \"usage_times\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/MarketService/MarketServiceUserPurchaseListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"purchase_info_list\": [\n            {\n                \"service_id\": \"7021602203591******\",\n                \"service_name\": \"服务名称\",\n                \"service_status\": 1,\n                \"specification_type\": 1,\n                \"specification_title\": \"体验版\",\n                \"service_mode_id\": \"free\",\n                \"remain_service_times\": 10\n            },\n            {\n                \"service_id\": \"7021602203591******\",\n                \"service_name\": \"服务名称\",\n                \"service_status\": 1,\n                \"specification_type\": 3,\n                \"specification_title\": \"标准版\",\n                \"service_mode_id\": \"standard_1\",\n                \"effective_time\": 1651409686000,\n                \"expire_time\": 1651841686602\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/MarketService/MarketServiceUserRemainTimesDecreaseRequest.json",
    "content": "﻿{\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334******\",\n    \"service_id\": \"7021602203591******\",\n    \"service_mode_id\": \"standard_1\",\n    \"out_trade_no\": \"1680613917339688\",\n    \"count\": 1,\n    \"is_test_env\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Message/MessageOnceSendRequest.json",
    "content": "﻿{\n    \"to_open_id\": \"to_open_id\",\n    \"template_id\": \"template_id\",\n    \"template_arg_map\": \"{\\\"ActivityName\\\": \\\"秒杀活动\\\"}\",\n    \"schema_url\": \"schema_url\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Message/MessageOnceSendResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\"\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Namek/NamekFulfilmentPrepareResponse.json",
    "content": "{\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"verify_token\": \"78a23d74-d0f5-4235-a491-5f68f8c23825\",\n        \"certificates\": [\n            {\n                \"encrypted_code\": \"CgwIARDhJxjLLyABKAESLgospP68K9dbp40hkHacQATyW6TK3vAP7nf0uukDsoDOO5wj5bu1Zt1raI5lH4gaAA==\",\n                \"expire_time\": 1682179199000,\n                \"sku\": {\n                    \"title\": \"测试\",\n                    \"account_id\": \"123456\",\n                    \"market_price\": 19900,\n                    \"sku_id\": \"1730440745530376\",\n                    \"sold_start_time\": 1650278040,\n                    \"third_sku_id\": \"\"\n                },\n                \"amount\": {\n                    \"original_amount\": 10,\n                    \"pay_amount\": 10,\n                    \"merchant_ticket_amount\": 0\n                }\n            }\n        ]\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"success\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"xxx\",\n        \"now\": 1651063623\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthAccessTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"access_token\": \"access_token\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"86400\",\n        \"open_id\": \"aaa-bbb-ccc\",\n        \"refresh_expires_in\": \"86400\",\n        \"refresh_token\": \"refresh_token\",\n        \"scope\": \"user_info\"\n    },\n    \"message\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthBusinessScopesResponse.json",
    "content": "{\n    \"data\": [\n        \"video.data.bind\",\n        \"video.list.bind\"\n    ],\n    \"error_code\": 0,\n    \"message\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthBusinessTokenRequest.json",
    "content": "{\n    \"client_key\": \"tt88*********a38f01\",\n    \"client_secret\": \"d0218aaf399*********9ef92bc84672\",\n    \"open_id\": \"49023c2e-*********-056281025e89\",\n    \"scope\": \"video.data.bind\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthBusinessTokenResponse.json",
    "content": "{\n    \"error_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"biz_token\": \"bus_act.3c2f5cc363d5c464e509c066*********oDYf3Fmzl6ztOYr\",\n        \"biz_expires_in\": 2592000,\n        \"biz_refresh_token\": \"bus_rft.537b533773845107214b*********lwiBOqil5xceQ4MMI\",\n        \"biz_refresh_expires_in\": 3153600000\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthClientTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"access_token\": \"access_token\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"7200\"\n    },\n    \"message\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthRefreshBusinessTokenRequest.json",
    "content": "{\n    \"client_key\": \"tt88*********a38f01\",\n    \"client_secret\": \"d0218aaf399*********9ef92bc84672\",\n    \"refresh_token\": \"bus_rft.b48411*********BReVe3dsqw63OTrkV7hALvQVzRg\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthRefreshBusinessTokenResponse.json",
    "content": "{\n    \"error_code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"biz_token\": \"bus_act.3c2f5cc363d5c464e509c066*********oDYf3Fmzl6ztOYr\",\n        \"biz_expires_in\": 2592000,\n        \"biz_refresh_token\": \"bus_rft.537b533773845107214b*********lwiBOqil5xceQ4MMI\",\n        \"biz_refresh_expires_in\": 3153600000\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthRefreshTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"access_token\": \"access_token\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"86400\",\n        \"open_id\": \"aaaa-bbbb-cccc-dddd\",\n        \"refresh_expires_in\": \"86400\",\n        \"refresh_token\": \"refresh_token\",\n        \"scope\": \"user_info\"\n    },\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/OAuthRenewRefreshTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"86400\",\n        \"refresh_token\": \"refresh_token\"\n    },\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/User/OAuthUserInfoRequest.json",
    "content": "{\n    \"open_id\": \"ba253642-0590-40bc-9bdf-9a1334******\",\n    \"access_token\": \"act.1d1021d2aee3d41fee2d2add43456badMFZnrhFhfWotu3Ecuiuka2******\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/OAuth/User/OAuthUserInfoResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"avatar\": \"https://example.com/x.jpeg\",\n        \"city\": \"上海\",\n        \"country\": \"中国\",\n        \"description\": \"\",\n        \"e_account_role\": \"\",\n        \"error_code\": \"0\",\n        \"gender\": 0,\n        \"nickname\": \"张伟\",\n        \"open_id\": \"0da22181-d833-447f-995f-1beefea5bef3\",\n        \"province\": \"上海\",\n        \"union_id\": \"1ad4e099-4a0c-47d1-a410-bffb4f2f64a4\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Open/OpenGetTicketResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"expires_in\": \"7200\",\n        \"ticket\": \"bxLdikRXVbTPdHSM05e5u5sUoXNKd8\"\n    },\n    \"extra\": {\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderCancelRequest.json",
    "content": "﻿{\n    \"order_ext_id\": \"\",\n    \"order_id\": \"\",\n    \"order_status\": 1,\n    \"supplier_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderCancelResponse.json",
    "content": "﻿{\n    \"description\": \"\",\n    \"error_code\": \"0\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderCommitRequest.json",
    "content": "﻿{\n    \"order_id\": \"\",\n    \"check_in\": \"20201010\",\n    \"check_out\": \"20201010\",\n    \"customer_name\": \"\",\n    \"customer_phone\": \"\",\n    \"total_price\": 0,\n    \"status\": 0,\n    \"spu_ext_id\": \"\",\n    \"remark\": \"\",\n    \"customer_list\": [\n        {\n            \"surname\": \"\",\n            \"cn_name\": \"\",\n            \"given_name\": \"\"\n        }\n    ],\n    \"date_price\": [\n        {\n            \"date\": \"20201010\",\n            \"date_price\": 0\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderCommitResponse.json",
    "content": "﻿{\n    \"description\": \"\",\n    \"error_code\": \"0\",\n    \"order_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderStatusRequest.json",
    "content": "﻿{\n    \"order_ext_id\": \"\",\n    \"order_id\": \"\",\n    \"status\": 1,\n    \"supplier_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelOrderStatusResponse.json",
    "content": "﻿{\n    \"description\": \"\",\n    \"error_code\": \"0\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/Hotel/POIExternalHotelSKUResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"end_date\": \"\",\n            \"price\": 0,\n            \"spu_ext_id\": \"\",\n            \"start_date\": \"\",\n            \"stock\": 0\n        }\n    ],\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCancelRequest.json",
    "content": "﻿{\n    \"code_list\": [\"\"],\n    \"order_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCancelResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code_list\": [\"\"],\n        \"order_ext_id\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCommitRequest.json",
    "content": "﻿{\n    \"order_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCommitResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code_list\": [\"\"],\n        \"order_ext_id\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCreateRequest.json",
    "content": "﻿{\n    \"cps_user_short_id\": \"\",\n    \"cps_take_rate\": 0,\n    \"num\": 1,\n    \"open_id\": \"\",\n    \"order_id\": \"\",\n    \"spu_ext_id\": \"\",\n    \"total_price\": 0,\n    \"user_phone\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/External/PresaleGroupon/POIExternalPresaleGrouponOrderCreateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_ext_id\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderBillTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"bill_token\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmCancelPrepareRequest.json",
    "content": "﻿{\n    \"confirm_apply_id\": \"\",\n    \"open_id\": \"\",\n    \"order_id\": \"\",\n    \"cancel_reason\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmCancelPrepareResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code_list\": [\"\"],\n        \"confirm_apply_id\": \"\",\n        \"order_id\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmPrepareRequest.json",
    "content": "﻿{\n    \"code_list\": [\"\"],\n    \"open_id\": \"\",\n    \"order_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmPrepareResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"confirm_apply_id\": \"\",\n        \"order_id\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmRequest.json",
    "content": "﻿{\n    \"code_list\": [\"\"],\n    \"order_id\": \"\",\n    \"order_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderConfirmResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code_list\": [\"\"],\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"order_ext_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderListTokenResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_file_token\": \"\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderStatusRequest.json",
    "content": "﻿{\n    \"order_id\": \"\",\n    \"order_ext_id\": \"\",\n    \"supplier_ext_id\": \"\",\n    \"status\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderStatusResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"Parameter error\",\n        \"error_code\": 2100005\n    },\n    \"extra\": {\n        \"logid\": \"2020070614111601022506808001045D59\",\n        \"now\": 1594015876138\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderSyncRequest.json",
    "content": "﻿{\n    \"date_time\": 0,\n    \"ext_shop_info\": {\n        \"ext_shop_id\": \"\",\n        \"shop_id\": \"\"\n    },\n    \"mini_app\": {\n        \"app_id\": \"\",\n        \"user_open_id\": \"\"\n    },\n    \"order_detail\": \"\",\n    \"order_type\": 200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Order/POIOrderSyncResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"order_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/POIBaseQueryAMapResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"address\": \"\",\n        \"amap_id\": \"\",\n        \"city\": \"\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"latitude\": 0.0,\n        \"longitude\": 0.0,\n        \"poi_id\": \"\",\n        \"poi_name\": \"\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/POIQueryResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"address\": \"\",\n        \"amap_id\": \"\",\n        \"city\": \"\",\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"latitude\": 0.0,\n        \"longitude\": 0.0,\n        \"poi_id\": \"\",\n        \"poi_name\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/POISearchKeywordResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"pois\": [\n            {\n                \"address\": \"东城区\",\n                \"city\": \"北京市\",\n                \"city_code\": \"110101\",\n                \"country\": \"中国\",\n                \"country_code\": \"CN\",\n                \"district\": \"东城区\",\n                \"location\": \"116.401179,39.902768\",\n                \"poi_id\": \"6601131771805304836\",\n                \"poi_name\": \"北京市\",\n                \"province\": \"北京市\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanDetailRequest.json",
    "content": "﻿{\n    \"plan_id_list\": [\n        7089334664648722476, 7089053269443495980, 7089050168758126636,\n        7088994684067907628\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"data\": {\n            \"7089334664648722476\": {\n                \"gmv\": 722476,\n                \"plan_id\": 7089334664648722476,\n                \"talent_commission\": 22476,\n                \"used_gmv\": 2476\n            },\n            \"7088994684067907628\": {\n                \"talent_commission\": 7628,\n                \"used_gmv\": 7628,\n                \"gmv\": 907628,\n                \"plan_id\": 7088994684067907628\n            },\n            \"7089050168758126636\": {\n                \"used_gmv\": 6636,\n                \"gmv\": 126636,\n                \"plan_id\": 7089050168758126636,\n                \"talent_commission\": 26636\n            },\n            \"7089053269443495980\": {\n                \"gmv\": 495980,\n                \"plan_id\": 7089053269443495980,\n                \"talent_commission\": 95980,\n                \"used_gmv\": 5980\n            }\n        },\n        \"date\": \"2022-04-26\",\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"now\": 1650970248,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"logid\": \"202204261850470102251331420B4ED661\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanSaveRequest.json",
    "content": "﻿{\n    \"commission_rate\": 2888,\n    \"content_type\": 2,\n    \"plan_id\": 666,\n    \"spu_id\": 7088277603718563884\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanSaveResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"plan_id\": 7089053269443495980,\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"logid\": \"02165054884016200000000000000000000ffff0ae343c23de2cd\",\n        \"now\": 1650548840,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentDetailRequest.json",
    "content": "﻿{\n    \"plan_id\": 7089053269443495980,\n    \"douyin_id_list\": [\"dyaaa\", \"dybbb\", \"dyccc\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentDetailResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"logid\": \"202204262150540102252431250654F23F\",\n        \"now\": 1650981055\n    },\n    \"data\": {\n        \"data\": {\n            \"dyvvvvvvvv\": {\n                \"live_cnt\": 0,\n                \"short_video_cnt\": 80,\n                \"talent_commission\": 95980,\n                \"used_gmv\": 5980,\n                \"gmv\": 495980\n            }\n        },\n        \"date\": \"2022-04-26\",\n        \"error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentListRequest.json",
    "content": "﻿{\n    \"plan_id\": 7088958652362541100,\n    \"page_size\": 3,\n    \"page_no\": 34\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"page_count\": 34,\n        \"total\": 100,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"data\": [\n            {\n                \"content_type\": 1,\n                \"douyin_id\": \"dyvvvvvvv\",\n                \"gmv\": 541100,\n                \"nickname\": \"XXX达人\"\n            }\n        ],\n        \"date\": \"2022-04-26\"\n    },\n    \"extra\": {\n        \"now\": 1650973203,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"\",\n        \"error_code\": 0,\n        \"logid\": \"202204261940030102252431390E4D92F4\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentMediaListRequest.json",
    "content": "﻿{\n    \"plan_id\": 7089053269443495980,\n    \"douyin_id\": \"dyvvvvvv\",\n    \"content_type\": 3,\n    \"page_no\": 90,\n    \"page_size\": 11\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Plan/POICommonPlanTalentMediaListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 980,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"data\": [\n            {\n                \"content_open_id\": \"@+mBxWHj2nqdRjxo4Vh4B70Qyt+dfT/I7a0KvRQTPaX+4Cjr/veNDY8kZYHy167jB\",\n                \"content_type\": 2,\n                \"gmv\": 495980,\n                \"play_cnt\": 980,\n                \"talent_commission\": 95980,\n                \"used_gmv\": 5980\n            }\n        ],\n        \"date\": \"2022-04-26\",\n        \"page_count\": 90\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"logid\": \"202204262133240102252431180E5376DA\",\n        \"now\": 1650980005,\n        \"sub_description\": \"\",\n        \"sub_error_code\": 0,\n        \"description\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SKU/POISKUSyncRequest.json",
    "content": "﻿{\n    \"skus\": [\n        {\n            \"attributes\": {\n                \"1301\": \"20191001\"\n            },\n            \"price\": 69800,\n            \"status\": 1,\n            \"stock\": 2\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SKU/POISKUSyncResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUGetV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"spu_detail\": {\n            \"attribute\": {\n                \"101\": {\n                    \"amend\": {\n                        \"cancel_amend\": {\n                            \"type\": \"\"\n                        },\n                        \"extra\": \"\"\n                    },\n                    \"area\": \"\",\n                    \"bed_name\": \"2*1.5米大床1张+2*1.2米单人床1张\",\n                    \"breakfast\": \"\",\n                    \"expense\": {\n                        \"breakfast\": {\n                            \"price\": \"\",\n                            \"type\": \"\"\n                        },\n                        \"extra\": \"\",\n                        \"extra_bed\": {\n                            \"price\": \"\",\n                            \"type\": \"\"\n                        }\n                    },\n                    \"facility\": [\n                        {\n                            \"code\": \"\",\n                            \"name\": \"\"\n                        }\n                    ],\n                    \"fit_num\": \"\",\n                    \"floor\": {\n                        \"end\": \"\",\n                        \"start\": \"\"\n                    },\n                    \"smoke\": \"\",\n                    \"travel_tips\": {\n                        \"check_in_time\": \"12:00\",\n                        \"check_out_time\": \"12:00\",\n                        \"extra\": \"\"\n                    },\n                    \"view\": \"海滩景观\",\n                    \"wifi\": \"\",\n                    \"window\": \"\"\n                },\n                \"3001\": {\n                    \"appointment_info\": {\n                        \"appointment_days\": \"\",\n                        \"appointment_url\": \"\",\n                        \"need_appointment\": \"\",\n                        \"order_appointment_detail_url\": \"传入https://xxxxx，入口链接https://xxxxx?code=123456&open_id=123456\"\n                    },\n                    \"groupon_detail\": [\n                        {\n                            \"content\": \"\",\n                            \"type\": \"\"\n                        }\n                    ],\n                    \"groupon_valid_end\": \"2020-08-01 00:00:00\",\n                    \"groupon_valid_start\": \"2020-08-01 00:00:00\",\n                    \"notification\": [\n                        {\n                            \"content\": \"\",\n                            \"title\": \"\"\n                        }\n                    ],\n                    \"order_limit\": \"\",\n                    \"order_valid_end\": \"2020-08-01 00:00:00\",\n                    \"order_valid_start\": \"2020-08-01 00:00:00\",\n                    \"service_phone\": [\"[xxx xxx]\"]\n                },\n                \"9001\": {\n                    \"is_confirm_imme\": \"\",\n                    \"is_need_pick\": \"\",\n                    \"nearest_order_time\": {\n                        \"time\": \"20200304\",\n                        \"time_type\": \"\"\n                    },\n                    \"refund_policy\": \"\",\n                    \"ticket_type\": \"\"\n                },\n                \"9101\": {\n                    \"contact_name\": \"张三\",\n                    \"discount_price\": \"\",\n                    \"groupon_valid_end\": \"2020-08-01 00:00:00\",\n                    \"groupon_valid_start\": \"2020-08-01 00:00:00\",\n                    \"market_price\": \"\",\n                    \"merchant_name\": \"xxx公司\",\n                    \"notification\": [\n                        {\n                            \"content\": \"\",\n                            \"title\": \"\"\n                        }\n                    ],\n                    \"order_limit\": \"\",\n                    \"order_valid_end\": \"2020-08-01 00:00:00\",\n                    \"order_valid_start\": \"2020-08-01 00:00:00\",\n                    \"pay_item_groups\": [\n                        {\n                            \"group_name\": \"\",\n                            \"item_list\": [\n                                {\n                                    \"count\": \"\",\n                                    \"name\": \"\",\n                                    \"price\": \"\"\n                                }\n                            ]\n                        }\n                    ],\n                    \"post_purchase_day\": \"\",\n                    \"service_phone\": [\"[xxx xxx]\"],\n                    \"sub_title\": \"\",\n                    \"tag_list\": [\n                        {\n                            \"name\": \"\",\n                            \"type\": \"\"\n                        }\n                    ],\n                    \"use_type\": \"\"\n                }\n            },\n            \"entry_info\": {\n                \"entry_miniApp\": {\n                    \"app_id\": \"\",\n                    \"is_test\": false,\n                    \"params\": \"\",\n                    \"path\": \"\"\n                },\n                \"entry_type\": 0,\n                \"entry_url\": \"\"\n            },\n            \"front_category_tag\": [\"\"],\n            \"highlights\": [\n                {\n                    \"content\": \"\",\n                    \"priority\": 0\n                }\n            ],\n            \"image_list\": [\"url1\", \"url2\"],\n            \"mp_settle_type\": 0,\n            \"name\": \"预售券1\",\n            \"origin_price\": 0,\n            \"price\": 0,\n            \"sort_weight\": 0,\n            \"spu_ext_id\": \"\",\n            \"spu_filter_status\": [\n                {\n                    \"spu_poi_filter_status\": [\n                        {\n                            \"code\": 0,\n                            \"filter\": false,\n                            \"poi_id\": \"12112\",\n                            \"reason\": \"\"\n                        }\n                    ],\n                    \"supplier_id\": \"\"\n                }\n            ],\n            \"spu_id\": \"\",\n            \"spu_type\": 0,\n            \"status\": 0,\n            \"status_desc\": \"\",\n            \"stock\": 0,\n            \"supplier_ext_id_list\": [\"y0001\", \"y0002\"],\n            \"take_rate\": 100\n        },\n        \"spu_draft\": [\n            {\n                \"attribute\": {\n                    \"101\": {\n                        \"amend\": {\n                            \"cancel_amend\": {\n                                \"type\": \"\"\n                            },\n                            \"extra\": \"\"\n                        },\n                        \"area\": \"\",\n                        \"bed_name\": \"2*1.5米大床1张+2*1.2米单人床1张\",\n                        \"breakfast\": \"\",\n                        \"expense\": {\n                            \"breakfast\": {\n                                \"price\": \"\",\n                                \"type\": \"\"\n                            },\n                            \"extra\": \"\",\n                            \"extra_bed\": {\n                                \"price\": \"\",\n                                \"type\": \"\"\n                            }\n                        },\n                        \"facility\": [\n                            {\n                                \"code\": \"\",\n                                \"name\": \"\"\n                            }\n                        ],\n                        \"fit_num\": \"\",\n                        \"floor\": {\n                            \"end\": \"\",\n                            \"start\": \"\"\n                        },\n                        \"smoke\": \"\",\n                        \"travel_tips\": {\n                            \"check_in_time\": \"12:00\",\n                            \"check_out_time\": \"12:00\",\n                            \"extra\": \"\"\n                        },\n                        \"view\": \"海滩景观\",\n                        \"wifi\": \"\",\n                        \"window\": \"\"\n                    },\n                    \"3001\": {\n                        \"appointment_info\": {\n                            \"appointment_days\": \"\",\n                            \"appointment_url\": \"\",\n                            \"need_appointment\": \"\",\n                            \"order_appointment_detail_url\": \"传入https://xxxxx，入口链接https://xxxxx?code=123456&open_id=123456\"\n                        },\n                        \"groupon_detail\": [\n                            {\n                                \"content\": \"\",\n                                \"type\": \"\"\n                            }\n                        ],\n                        \"groupon_valid_end\": \"2020-08-01 00:00:00\",\n                        \"groupon_valid_start\": \"2020-08-01 00:00:00\",\n                        \"notification\": [\n                            {\n                                \"content\": \"\",\n                                \"title\": \"\"\n                            }\n                        ],\n                        \"order_limit\": \"\",\n                        \"order_valid_end\": \"2020-08-01 00:00:00\",\n                        \"order_valid_start\": \"2020-08-01 00:00:00\",\n                        \"service_phone\": [\"[xxx xxx]\"]\n                    },\n                    \"9001\": {\n                        \"is_confirm_imme\": \"\",\n                        \"is_need_pick\": \"\",\n                        \"nearest_order_time\": {\n                            \"time\": \"20200304\",\n                            \"time_type\": \"\"\n                        },\n                        \"refund_policy\": \"\",\n                        \"ticket_type\": \"\"\n                    },\n                    \"9101\": {\n                        \"contact_name\": \"张三\",\n                        \"discount_price\": \"\",\n                        \"groupon_valid_end\": \"2020-08-01 00:00:00\",\n                        \"groupon_valid_start\": \"2020-08-01 00:00:00\",\n                        \"market_price\": \"\",\n                        \"merchant_name\": \"xxx公司\",\n                        \"notification\": [\n                            {\n                                \"content\": \"\",\n                                \"title\": \"\"\n                            }\n                        ],\n                        \"order_limit\": \"\",\n                        \"order_valid_end\": \"2020-08-01 00:00:00\",\n                        \"order_valid_start\": \"2020-08-01 00:00:00\",\n                        \"pay_item_groups\": [\n                            {\n                                \"group_name\": \"\",\n                                \"item_list\": [\n                                    {\n                                        \"count\": \"\",\n                                        \"name\": \"\",\n                                        \"price\": \"\"\n                                    }\n                                ]\n                            }\n                        ],\n                        \"post_purchase_day\": \"\",\n                        \"service_phone\": [\"[xxx xxx]\"],\n                        \"sub_title\": \"\",\n                        \"tag_list\": [\n                            {\n                                \"name\": \"\",\n                                \"type\": \"\"\n                            }\n                        ],\n                        \"use_type\": \"\"\n                    }\n                },\n                \"entry_info\": {\n                    \"entry_miniApp\": {\n                        \"app_id\": \"\",\n                        \"is_test\": false,\n                        \"params\": \"\",\n                        \"path\": \"\"\n                    },\n                    \"entry_type\": 0,\n                    \"entry_url\": \"\"\n                },\n                \"front_category_tag\": [\"\"],\n                \"highlights\": [\n                    {\n                        \"content\": \"\",\n                        \"priority\": 0\n                    }\n                ],\n                \"image_list\": [\"url1\", \"url2\"],\n                \"mp_settle_type\": 0,\n                \"name\": \"预售券1\",\n                \"origin_price\": 0,\n                \"price\": 0,\n                \"sort_weight\": 0,\n                \"spu_ext_id\": \"\",\n                \"spu_filter_status\": [\n                    {\n                        \"spu_poi_filter_status\": [\n                            {\n                                \"code\": 0,\n                                \"filter\": false,\n                                \"poi_id\": \"12112\",\n                                \"reason\": \"\"\n                            }\n                        ],\n                        \"supplier_id\": \"\"\n                    }\n                ],\n                \"spu_id\": \"\",\n                \"spu_type\": 0,\n                \"status\": 0,\n                \"status_desc\": \"\",\n                \"stock\": 0,\n                \"supplier_ext_id_list\": [\"y0001\", \"y0002\"],\n                \"take_rate\": 100\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUStatusSyncV2Request.json",
    "content": "﻿{\n    \"spu_ext_id_list\": [\"\"],\n    \"status\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUStatusSyncV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"spu_ext_id_list\": [\"y0001\", \"y0002\"]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUStockUpdateV2Request.json",
    "content": "﻿{\n    \"spu_ext_id\": \"\",\n    \"stock\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUStockUpdateV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"spu_ext_id\": \"y0001\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUSyncV2Request.json",
    "content": "﻿{\n    \"entry_info\": {\n        \"entry_miniApp\": {\n            \"params\": \"\",\n            \"path\": \"\",\n            \"app_id\": \"\"\n        },\n        \"entry_type\": 0,\n        \"entry_url\": \"\"\n    },\n    \"front_category_tag\": [\"\"],\n    \"recommend_word\": \"\",\n    \"sort_weight\": 0,\n    \"supplier_ext_id_list\": [\"\"],\n    \"price\": 0,\n    \"spu_ext_id\": \"\",\n    \"image_list\": [\"\"],\n    \"mp_settle_type\": 0,\n    \"origin_price\": 0,\n    \"take_rate\": 0,\n    \"attribute\": {\n        \"101\": {},\n        \"3001\": {},\n        \"9001\": {},\n        \"9101\": {}\n    },\n    \"highlights\": [\n        {\n            \"content\": \"\",\n            \"priority\": 0\n        }\n    ],\n    \"name\": \"\",\n    \"order_depends_on_date\": true,\n    \"spu_type\": 0,\n    \"status\": 0,\n    \"stock\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUSyncV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"spu_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUTakeRateSyncV2Request.json",
    "content": "﻿{\n    \"status\": 0,\n    \"take_rate\": 0,\n    \"douyin_id\": \"\",\n    \"spu_ext_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/SPU/POISPUTakeRateSyncV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"spu_id\": \"683048927827388\"\n    },\n    \"description\": \"\",\n    \"error_code\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/ServiceProvider/POIServiceProviderSyncV2Request.json",
    "content": "﻿{\n    \"business_license\": {},\n    \"industry_license\": [],\n    \"qualification_contact\": {}\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/ServiceProvider/POIServiceProviderSyncV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"Parameter error\",\n        \"error_code\": 2100005\n    },\n    \"extra\": {\n        \"logid\": \"2020070614111601022506808001045D59\",\n        \"now\": 1594015876138\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierMatchV2Request.json",
    "content": "﻿{\n    \"match_data_list\": [\n        {\n            \"poi_id\": \"\",\n            \"poi_name\": \"\",\n            \"supplier_ext_id\": \"\",\n            \"amap_id\": \"\",\n            \"province\": \"\",\n            \"city\": \"\",\n            \"address\": \"\",\n            \"extra\": \"\",\n            \"longitude\": 0.0,\n            \"latitude\": 0.0\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierMatchV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"is_success\": 2,\n        \"task_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierQueryAllResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"task_id\": \"6.601136930455292e+18\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierQueryCallbackResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"result_uri\": \"https://XXXXXXXX\",\n        \"task_id\": \"6.601136930455292e+18\",\n        \"task_status\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierQueryResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"data_detail\": {\n            \"address\": \"栏学路328弄97号\",\n            \"attributes\": {\n                \"1101\": [\n                    {\n                        \"code\": 1,\n                        \"name\": \"\"\n                    }\n                ],\n                \"1102\": [\n                    {\n                        \"code\": 1,\n                        \"name\": \"\"\n                    }\n                ],\n                \"1103\": [\n                    {\n                        \"code\": 1,\n                        \"name\": \"\"\n                    }\n                ],\n                \"1104\": {\n                    \"breakfast\": {\n                        \"price\": \"10000\",\n                        \"type\": 1\n                    },\n                    \"check_in_time\": \"12:00\",\n                    \"check_out_time\": \"12:00\",\n                    \"child\": \"\",\n                    \"pet\": \"\"\n                },\n                \"1105\": \"1\",\n                \"3101\": {\n                    \"facility\": [\n                        {\n                            \"name\": \"免费停车场\"\n                        }\n                    ],\n                    \"open_time\": \"08:00-22:00(最晚入场时间17:00)\",\n                    \"open_time_ext\": [\n                        {\n                            \"content\": \"节点内容: 文字，图片地址...\",\n                            \"node_type\": 1\n                        }\n                    ],\n                    \"pet\": \"1\",\n                    \"play_intro\": [\n                        {\n                            \"content\": \"节点内容: 文字，图片地址...\",\n                            \"node_type\": 1\n                        }\n                    ],\n                    \"preferential_policy\": [\n                        {\n                            \"condition\": \"3周岁以内\",\n                            \"discount\": \"免费\",\n                            \"population\": \"婴儿\"\n                        }\n                    ],\n                    \"preferential_policy_ext\": [\n                        {\n                            \"content\": \"节点内容: 文字，图片地址...\",\n                            \"node_type\": 1\n                        }\n                    ],\n                    \"scenic_intro\": [\n                        {\n                            \"content\": \"节点内容: 文字，图片地址...\",\n                            \"node_type\": 1\n                        }\n                    ],\n                    \"traffic\": [\n                        {\n                            \"content\": \"节点内容: 文字，图片地址...\",\n                            \"node_type\": 1\n                        }\n                    ]\n                }\n            },\n            \"contact_phone\": \"189xxxx8929\",\n            \"contact_tel\": \"021-58xxxx95\",\n            \"description\": \"\",\n            \"images\": [\n                \"[https://static.dingdandao.com/0ffaf1b5a669ea216a960c97ded9a3b0 https://static.dingdandao.com/9119b617eff7c8fe2be318da0459d4db]\"\n            ],\n            \"name\": \"上海几茶.知更民宿（迪士尼店）\",\n            \"poi_id\": \"6601136930455291912\",\n            \"poi_info\": {\n                \"first_category\": \"住宿\",\n                \"second_category\": \"酒店\",\n                \"third_category\": \"豪华型酒店\"\n            },\n            \"services\": [\n                {\n                    \"enable\": 1,\n                    \"entry\": {\n                        \"entry_mini_app\": {\n                            \"app_id\": \"tt34843ubcs\",\n                            \"is_test\": \"1\",\n                            \"params\": \"{\\\"productId\\\":115511}\",\n                            \"path\": \"pages/productDetail/productDetail\"\n                        },\n                        \"entry_type\": 1\n                    },\n                    \"service_type\": 1\n                }\n            ],\n            \"status\": \"1\",\n            \"supplier_ext_id\": \"x0001\",\n            \"type\": 1\n        },\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"sync_status\": {\n            \"fail_reason\": \"\",\n            \"last_sync_status\": 0\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierQuerySupplierV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"match_result_list\": [\n            {\n                \"poi_id\": \"123456\",\n                \"status\": 0,\n                \"supplier_ext_id\": \"\",\n                \"task_id\": \"\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierQueryTaskV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"match_result_list\": [\n            {\n                \"address\": \"\",\n                \"city\": \"\",\n                \"extra\": \"\",\n                \"match_status\": 0,\n                \"mismatch_status_desc\": \"\",\n                \"poi_id\": \"\",\n                \"poi_name\": \"\",\n                \"province\": \"\",\n                \"supplier_ext_id\": \"\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierSyncRequest.json",
    "content": "﻿{\n    \"poi_id\": \"\",\n    \"name\": \"\",\n    \"type\": 0,\n    \"supplier_ext_id\": \"\",\n    \"status\": 0,\n    \"avg_cost\": 0,\n    \"attributes\": {}\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/POI/Supplier/POISupplierSyncResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"supplier_id\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Room/RoomDataAudienceGetResponse.json",
    "content": "{\n    \"data\": {\n        \"data_ready_status\": [\n            {\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_fans_watch_duration_td\",\n                \"time_slot\": \"2023-06-15\"\n            },\n            {\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_fans_watch_ucnt_td\",\n                \"time_slot\": \"2023-06-15\"\n            },\n            {\n                \"live_id\": 1,\n                \"name\": \"live_watch_cnt_td\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true,\n                \"item_type\": 3\n            },\n            {\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_watch_duration_td\"\n            },\n            {\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_watch_ucnt_td\",\n                \"time_slot\": \"2023-06-15\"\n            },\n            {\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"per_minute_watch_ucnt_td_max\"\n            }\n        ],\n        \"stats\": [\n            {\n                \"value\": 30,\n                \"value_float\": 30,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_fans_watch_duration_td\",\n                \"timeslot\": \"2023-06-15\"\n            },\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_fans_watch_ucnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1,\n                \"value_float\": 1\n            },\n            {\n                \"value_float\": 1,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_watch_cnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1\n            },\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_watch_duration_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 30,\n                \"value_float\": 30\n            },\n            {\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1,\n                \"value_float\": 1,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_watch_ucnt_td\"\n            },\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"per_minute_watch_ucnt_td_max\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1,\n                \"value_float\": 1\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02168688376944000000000000000000000ffff0a1360947d72c5\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Room/RoomDataBaseGetResponse.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02168688376917300000000000000000000ffff0a136094d02c2c\",\n    \"data\": {\n        \"stats\": [\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_duration_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 98,\n                \"value_float\": 98\n            },\n            {\n                \"value_float\": 1686726224,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_end_ts\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1686726224\n            },\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_follow_ucnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 0,\n                \"value_float\": 0\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_start_ts\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1686726126,\n                \"value_float\": 1686726126,\n                \"item\": \"7244433****50903080\"\n            }\n        ],\n        \"data_ready_status\": [\n            {\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_duration_td\",\n                \"time_slot\": \"2023-06-15\"\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_end_ts\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true\n            },\n            {\n                \"name\": \"live_follow_ucnt_td\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_start_ts\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Room/RoomDataInteractiveGetResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"02168688376963100000000000000000000ffff0a136094895ac7\",\n    \"err_msg\": \"\",\n    \"data\": {\n        \"data_ready_status\": [\n            {\n                \"name\": \"live_comment_cnt_td\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_comment_ucnt_td\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true\n            },\n            {\n                \"is_ready\": true,\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_like_cnt_td\",\n                \"time_slot\": \"2023-06-15\"\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_share_cnt_td\",\n                \"time_slot\": \"2023-06-15\",\n                \"is_ready\": true\n            }\n        ],\n        \"stats\": [\n            {\n                \"value_float\": 1,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_comment_cnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1\n            },\n            {\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_comment_ucnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1,\n                \"value_float\": 1\n            },\n            {\n                \"value_float\": 9,\n                \"item\": \"7244433****50903080\",\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_like_cnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 9\n            },\n            {\n                \"item_type\": 3,\n                \"live_id\": 1,\n                \"name\": \"live_share_cnt_td\",\n                \"timeslot\": \"2023-06-15\",\n                \"value\": 1,\n                \"value_float\": 1,\n                \"item\": \"7244433****50903080\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Room/RoomDataRoomIdGetResponse.json",
    "content": "{\n    \"room_ids\": [\n        \"7241506*****3267004\",\n        \"7241508*****9349177\",\n        \"7241545*****1951781\"\n    ],\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20230606204448A0C6BB71DC41A58C0483\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Sandbox/SandboxWebhookEventSendResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"Parameter error\",\n        \"error_code\": 2100005\n    },\n    \"extra\": {\n        \"logid\": \"2020070614111601022506808001045D59\",\n        \"now\": 1594015876138\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/ShareId/ShareIdResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"share_id\": \"15674132978\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Star/StarAuthorScoreResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cooperation_score\": 80.6,\n        \"cp_score\": 80.6,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"follower\": 1,\n        \"growth_score\": 80.6,\n        \"nick_name\": \"\",\n        \"shop_score\": 80.6,\n        \"spread_score\": 80.6,\n        \"star_score\": 80.6,\n        \"update_timestamp\": 1\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Star/StarAuthorScoreV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"cooperation_score\": 80.6,\n        \"cp_score\": 80.6,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"growth_score\": 80.6,\n        \"nick_name\": \"\",\n        \"shop_score\": 80.6,\n        \"spread_score\": 80.6,\n        \"star_score\": 80.6,\n        \"unique_id\": \"\",\n        \"update_timestamp\": 1\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Star/StarHotListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"hot_list_description\": \"【筛选规则】：综合评估创作者近期作品的有效视频数据、性价比、信用分、有效涨粉、种草指数等加权取值进行排序，以内容数据为主要衡量标准。【达人优势】：综合能力高，具有较大的商业价值。【适用场景】：适用于大部分营销场景，可作为各领域商业投放的必选名单。\",\n        \"hot_list_type\": 1,\n        \"hot_list_update_timestamp\": 1,\n        \"list\": [\n            {\n                \"follower\": 0,\n                \"nick_name\": \"\",\n                \"rank\": 0,\n                \"score\": 80.6,\n                \"tags\": [\"\"],\n                \"unique_id\": \"\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Task/TaskPostingBindVideoRequest.json",
    "content": "{\n    \"video_id\": \"722781567863447****\",\n    \"task_id\": \"@72M0WCqtxuYGiwtkVUYFvH1itu8zRM8IaUCtRwbNa32+7uo2083g2PcEG70*****\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Task/TaskPostingCreateRequest.json",
    "content": "{\n    \"task_name\": \"测试投稿任务\",\n    \"task_condition\": {\n        \"condition\": \"digg\",\n        \"min_value\": 0,\n        \"max_value\": 100\n    },\n    \"start_time\": 1682858145,\n    \"end_time\": 1685000977\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Task/TaskPostingCreateResponse.json",
    "content": "{\n    \"data\": {\n        \"task_id\": \"@72M0WCqtxuYGiwtkVUYFvH1itu8zRM8IaUCtRwbNa32+7uo2083g2PcEG70*****\",\n        \"task_status\": 1,\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"202305051653529635CB4F099894095439\",\n        \"now\": 1683276833\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Task/TaskPostingUserRequest.json",
    "content": "{\n    \"task_id\": \"@72M0WCqtxuYGiwtkVUYFvH1itu8zRM8IaUCtRwbNa32+7uo2083g2PcEG70*****\",\n    \"target_open_id\": \"ba253642-0590-40bc-9bdf-9a1334****\",\n    \"video_id\": \"722781567863447****\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Task/TaskPostingUserResponse.json",
    "content": "{\n    \"data\": {\n        \"result\": true,\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"extra\": {\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"logid\": \"2023050516592764C2924BA9979009D249\",\n        \"now\": 1683277168\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Tool/ToolImagexClientUploadResponse.json",
    "content": "{\n    \"extra\": {\n        \"description\": \"\",\n        \"sub_error_code\": 0,\n        \"sub_description\": \"\",\n        \"now\": 1648797449,\n        \"logid\": \"021648797449846fd1b1111000700600000000000000086dfb920\",\n        \"error_code\": 0\n    },\n    \"data\": {\n        \"error_code\": 0,\n        \"description\": \"\"\n    },\n    \"image_id\": \"@baihq==\",\n    \"width\": 111,\n    \"height\": 111,\n    \"md5\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Comment/VideoCommentListResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    },\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"comment_id\": \"11\",\n                \"comment_user_id\": \"11\",\n                \"content\": \"11\",\n                \"create_time\": 11,\n                \"digg_count\": 11,\n                \"reply_comment_total\": 11,\n                \"top\": false\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Comment/VideoCommentReplyListResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    },\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"comment_id\": \"11\",\n                \"comment_user_id\": \"11\",\n                \"content\": \"11\",\n                \"create_time\": 11,\n                \"digg_count\": 11,\n                \"reply_comment_total\": 11,\n                \"top\": false\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Comment/VideoCommentReplyResponse.json",
    "content": "﻿{\n    \"extra\": {\n        \"sub_description\": \"\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": 1597213176393,\n        \"error_code\": 0,\n        \"description\": \"\",\n        \"sub_error_code\": 0\n    },\n    \"data\": {\n        \"comment_id\": \"@kj5k4hai123d22nGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Search/VideoSearchCommentListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"comment_id\": \"11\",\n                \"comment_user_id\": \"11\",\n                \"content\": \"11\",\n                \"create_time\": 11,\n                \"digg_count\": 11,\n                \"reply_comment_total\": 11,\n                \"top\": false\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Search/VideoSearchCommentReplyListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"comment_id\": \"11\",\n                \"comment_user_id\": \"11\",\n                \"content\": \"11\",\n                \"create_time\": 11,\n                \"digg_count\": 11,\n                \"reply_comment_total\": 11,\n                \"top\": false\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Search/VideoSearchCommentReplyResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"comment_id\": \"11\",\n        \"description\": \"\",\n        \"error_code\": \"0\"\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/ModelSamples/Video/Search/VideoSearchResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cursor\": 0,\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"has_more\": false,\n        \"list\": [\n            {\n                \"avatar\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"create_time\": 1234567890,\n                \"is_reviewed\": true,\n                \"is_top\": false,\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"nickname\": \"小王\",\n                \"open_id\": \"0da22181-d833-447f-995f-1beefea5bef3\",\n                \"sec_item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"statistics\": {\n                    \"comment_count\": \"100\",\n                    \"digg_count\": \"200\",\n                    \"download_count\": \"10\",\n                    \"forward_count\": \"10\",\n                    \"play_count\": \"300\",\n                    \"share_count\": \"10\"\n                },\n                \"title\": \"测试视频 #测试话题 @抖音小助手\"\n            }\n        ]\n    },\n    \"extra\": {\n        \"description\": \"\",\n        \"error_code\": \"0\",\n        \"logid\": \"202008121419360101980821035705926A\",\n        \"now\": \"1597213176393\",\n        \"sub_description\": \"\",\n        \"sub_error_code\": \"0\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n\t<PropertyGroup>\n\t\t<TargetFrameworks>net472; net6.0</TargetFrameworks>\n\t\t<LangVersion>latest</LangVersion>\n\t\t<Nullable>enable</Nullable>\n\t\t<NullableReferenceTypes>true</NullableReferenceTypes>\n\t\t<IsPackable>false</IsPackable>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Remove=\".gitignore\" />\n\t\t<None Remove=\"ModelSamples\\ApiAppsAuth\\AppsAuthGetOpenIdByCV1Request.json\" />\n\t\t<None Remove=\"ModelSamples\\ApiAppsAuth\\AppsAuthGetOpenIdByCV1Response.json\" />\n        <Content Include=\"appsettings.json\">\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n            <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n            <CopyToPublishDirectory>Always</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n        <Content Include=\"EventSamples/**/*.json\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.8.0\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.3.0-preview.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.6.6\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.5.6\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.DouyinOpen\\SKIT.FlurlHttpClient.ByteDance.DouyinOpen.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/TestCase_ApiExecuteOAuthTests.cs",
    "content": "using System.Threading.Tasks;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests\n{\n    public class TestCase_ApiExecuteOAuthTests\n    {\n        [Fact(DisplayName = \"测试用例：调用 API [POST] /oauth/client_token\")]\n        public async Task TestExecuteOAuthClientToken()\n        {\n            var request = new Models.OAuthClientTokenRequest();\n            var response = await TestClients.Instance.ExecuteOAuthClientTokenAsync(request);\n\n            Assert.True(response.IsSuccessful());\n            Assert.NotEmpty(response.Data.AccessToken);\n            Assert.True(response.Data.ExpiresIn > 0);\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/TestCase_DecryptionTests.cs",
    "content": "using Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests\n{\n    public class TestCase_DecryptionTests\n    {\n        [Fact(DisplayName = \"测试用例：解密手机号\")]\n        public void TestDecryptOAuthUserInfoMobileNumber()\n        {\n            string secret = \"0123456789abcdef0123456789abcdef\";\n            string enctext = \"tyUWQwYuUmVFJtElAL+D7Q==\";\n            string rawtext = new DouyinOpenClient(new DouyinOpenClientOptions() { ClientSecret = secret }).DecryptOAuthUserInfoMobileNumber(enctext);\n            Assert.Equal(\"12345678910\", rawtext);\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/TestClients.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new DouyinOpenClient(new DouyinOpenClientOptions()\n            {\n                ClientKey = TestConfigs.DouyinOpenClientKey,\n                ClientSecret = TestConfigs.DouyinOpenClientSecret\n            });\n        }\n\n        public static readonly DouyinOpenClient Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/TestConfigs.cs",
    "content": "using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfigs\");\n                DouyinOpenClientKey = config.GetProperty(\"ClientKey\").GetString()!;\n                DouyinOpenClientSecret = config.GetProperty(\"ClientSecret\").GetString()!;\n                DouyinOpenAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly string DouyinOpenClientKey;\n        public static readonly string DouyinOpenClientSecret;\n        public static readonly string DouyinOpenAccessToken;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinOpen.UnitTests/appsettings.json",
    "content": "{\n    \"TestConfigs\": {\n        \"ClientKey\": \"请在此填写用于测试的抖音开放平台应用 Key\",\n        \"ClientSecret\": \"请在此填写用于测试的抖音开放平台应用密钥\",\n        \"AccessToken\": \"请在此填写用于测试的抖音开放平台 AccessToken\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/IOPTrade/IOPTradeDistributionEvent.json",
    "content": "﻿{\n    \"tag\": \"501\",\n    \"msgId\": \"0443477XXXXXXX48874::xxx:1618990587:6837374XXXXXXX89128\",\n    \"data\": {\n        \"distr_order_id\": \"77878786688878787\",\n        \"shop_id\": 555,\n        \"user_id\": 77878786688878780\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/IOPTrade/IOPTradeStatusReturnEvent.json",
    "content": "﻿{\n    \"tag\": \"505\",\n    \"msgId\": \"0443477XXXXXXX48874::xxx:1618990587:6837374XXXXXXX89128\",\n    \"data\": {\n        \"distr_order_id\": \"77878786688878787\",\n        \"return_status\": 0,\n        \"shop_id\": 555,\n        \"user_id\": 55557775757756\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/IOPTrade/IOPTradeUpdateReceiverEvent.json",
    "content": "﻿{\n    \"tag\": \"504\",\n    \"msgId\": \"0443477XXXXXXX48874::xxx:1618990587:6837374XXXXXXX89128\",\n    \"data\": {\n        \"distr_order_id\": \"77878786688878787\",\n        \"shop_id\": 55557775757757,\n        \"user_id\": 55557775757756\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/IOPTrade/IOPTradeUpdateRemarkEvent.json",
    "content": "﻿{\n    \"tag\": \"500\",\n    \"msgId\": \"0443477XXXXXXX48874::xxx:1618990587:6837374XXXXXXX89128\",\n    \"data\": {\n        \"distr_order_id\": \"77878786688878787\",\n        \"seller_remark\": \"发xxx快递\",\n        \"shop_id\": 55557775757757,\n        \"user_id\": 55557775757756\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Product/ProductChangeEvent.json",
    "content": "﻿{\n    \"tag\": \"400\",\n    \"msgId\": \"0443477XXXXXXX48874::xxx:1618990587:6837374XXXXXXX89128\",\n    \"data\": {\n        \"check_reject_reason\": \"{\\\"audit_formatted_reason\\\":\\\"{\\\\\\\"biz_type\\\\\\\":\\\\\\\"1\\\\\\\",\\\\\\\"op_id\\\\\\\":-1,\\\\\\\"audit_status\\\\\\\":2,\\\\\\\"human_audit_status\\\\\\\":1,\\\\\\\"pass_through_extra\\\\\\\":\\\\\\\"{\\\\\\\\\\\\\\\"audit_record_id\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\\"}\\\\\\\"}\\\"}\",\n        \"event\": 5,\n        \"out_product_id\": 0,\n        \"product_id\": 3488625851803765000,\n        \"shop_id\": 95250,\n        \"update_time\": 16473829442\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Arbitrate/RefundArbitrateAppliedEvent.json",
    "content": "﻿{\n    \"tag\": 212,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 27,\n        \"aftersale_type\": 1,\n        \"arbitrate_id\": \"xxxxxxx\",\n        \"arbitrate_status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Arbitrate/RefundArbitrateAuditedEvent.json",
    "content": "﻿{\n    \"tag\": 216,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 27,\n        \"aftersale_type\": 1,\n        \"arbitrate_id\": \"xxxxxxx\",\n        \"arbitrate_status\": 255,\n        \"arbitrate_conclusion\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Arbitrate/RefundArbitrateDiscussUploadEvent.json",
    "content": "﻿{\n    \"tag\": 218,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"arbitrate_id\": \"xxxxxxxxx\",\n        \"arbitrate_status\": 5\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Arbitrate/RefundArbitrateServiceInterveneEvent.json",
    "content": "﻿{\n    \"tag\": 217,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 27,\n        \"aftersale_type\": 1,\n        \"arbitrate_id\": \"xxxxxxxxx\",\n        \"arbitrate_status\": 5\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundClosedEvent.json",
    "content": "﻿{\n    \"tag\": 207,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 78,\n        \"close_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundCreatedEvent.json",
    "content": "﻿{\n    \"tag\": 200,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 78,\n        \"apply_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundExchangeComfirmedEvent.json",
    "content": "﻿{\n    \"tag\": 211,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 15,\n        \"apply_time\": 1618991992,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundExpirationChangeEvent.json",
    "content": "﻿{\n    \"tag\": 209,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 11,\n        \"aftersale_type\": 3,\n        \"status_deadline\": 1619596830\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundModifiedEvent.json",
    "content": "﻿{\n    \"tag\": 208,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 6,\n        \"aftersale_type\": 1,\n        \"refund_amount\": 13200,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 15,\n        \"modify_time\": 1618991959,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundRefusedEvent.json",
    "content": "﻿{\n    \"tag\": 204,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 9,\n        \"refuse_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/RefundSuccessEvent.json",
    "content": "﻿{\n    \"tag\": 206,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 6,\n        \"aftersale_type\": 1,\n        \"refund_amount\": 13200,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 15,\n        \"success_time\": 1618991959,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Return/RefundBuyerReturnGoodsEvent.json",
    "content": "﻿{\n    \"tag\": 203,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 78,\n        \"return_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Return/RefundReturnAgreedEvent.json",
    "content": "﻿{\n    \"tag\": 201,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 9,\n        \"agree_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Return/RefundReturnApplyAgreedEvent.json",
    "content": "﻿{\n    \"tag\": 202,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 9,\n        \"agree_time\": 1618990587,\n        \"addr\": {\n            \"province\": \"福建省\",\n            \"province_id\": \"350000\",\n            \"city\": \"南平市\",\n            \"city_id\": \"350700\",\n            \"town\": \"建阳区\",\n            \"town_id\": \"350703\",\n            \"street\": \"\",\n            \"street_id\": \"0\",\n            \"detail\": \"潭城街道XXXX\",\n            \"name\": \"潭诚XXX\",\n            \"mobile\": \"xxxxx\"\n        },\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Refund/Return/RefundReturnApplyRefusedEvent.json",
    "content": "﻿{\n    \"tag\": 205,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"aftersale_id\": \"xxxxxx\",\n        \"aftersale_status\": 13,\n        \"aftersale_type\": 3,\n        \"refund_amount\": 0,\n        \"refund_post_amount\": 0,\n        \"reason_code\": 9,\n        \"refuse_time\": 1618990587,\n        \"refund_voucher_num\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeAddressChangeAppliedEvent.json",
    "content": "﻿{\n    \"tag\": 111,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"shop_id\": 95250,\n        \"apply_time\": 1599644408,\n        \"post_receiver_msg\": {\n            \"name\": \"周一\",\n            \"tel\": \"13678643212\",\n            \"addr\": [\n                {\n                    \"province\": {\n                        \"name\": \"浙江省\",\n                        \"id\": \"330000\"\n                    },\n                    \"city\": {\n                        \"name\": \"杭州市\",\n                        \"id\": \"330100\"\n                    },\n                    \"town\": {\n                        \"name\": \"滨江区\",\n                        \"id\": \"330108\"\n                    },\n                    \"detail\": \"松岭路888号\"\n                }\n            ]\n        },\n        \"receiver_msg\": {\n            \"name\": \"周一\",\n            \"tel\": \"13678643212\",\n            \"addr\": [\n                {\n                    \"province\": {\n                        \"name\": \"浙江省\",\n                        \"id\": \"330000\"\n                    },\n                    \"city\": {\n                        \"name\": \"杭州市\",\n                        \"id\": \"330100\"\n                    },\n                    \"town\": {\n                        \"name\": \"滨江区\",\n                        \"id\": \"330108\"\n                    },\n                    \"detail\": \"松岭路888号\"\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeAmountChangedEvent.json",
    "content": "﻿{\n    \"tag\": 109,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 12345,\n        \"s_ids\": [12345],\n        \"shop_id\": 12345,\n        \"order_status\": 1,\n        \"order_type\": 0,\n        \"biz\": 2,\n        \"modify_time\": 1618990859,\n        \"total_amount\": 53800,\n        \"post_amount\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeAppointmentEvent.json",
    "content": "﻿{\n    \"tag\": 112,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": \"4796662193920810353\",\n        \"s_ids\": [\"4796662193920810353\"],\n        \"shop_id\": 14875103,\n        \"order_status\": 2,\n        \"order_type\": 0,\n        \"exp_delivery_time\": \"2021-05-16\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeCanceledEvent.json",
    "content": "﻿{\n    \"tag\": 106,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 12345,\n        \"s_ids\": [12345],\n        \"shop_id\": 12345,\n        \"order_status\": 1,\n        \"order_type\": 0,\n        \"biz\": 2,\n        \"cancel_time\": 1618990925,\n        \"cancel_reason\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeCreateEvent.json",
    "content": "﻿{\n    \"tag\": 100,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 12345,\n        \"s_ids\": [12345],\n        \"shop_id\": 12345,\n        \"order_status\": 1,\n        \"order_type\": 0,\n        \"create_time\": 1618990587,\n        \"biz\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeMemoModifyEvent.json",
    "content": "﻿{\n    \"tag\": 113,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4805961163201956922,\n        \"remark\": \"19103926902,210608-022544395021771\",\n        \"star\": 5,\n        \"update_time\": 1623119658,\n        \"shop_id\": 12345\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradePaidEvent.json",
    "content": "﻿{\n    \"tag\": 110,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": \"xxxxxxx\",\n        \"s_ids\": [\"xxxxxxx\"],\n        \"shop_id\": 12345,\n        \"order_status\": 2,\n        \"order_type\": 0,\n        \"pay_type\": 1,\n        \"biz\": 2,\n        \"pay_time\": 1618990587,\n        \"pay_amount\": 2990\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradePartlySellerShipEvent.json",
    "content": "﻿{\n    \"tag\": 108,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": 4705288465508532862,\n        \"s_ids\": [4705288465508533000],\n        \"shop_id\": 95250,\n        \"order_status\": 101,\n        \"order_type\": 0,\n        \"biz\": 2,\n        \"update_time\": 1599644408,\n        \"receiver_msg\": {\n            \"name\": \"周一\",\n            \"tel\": \"13678643212\",\n            \"addr\": [\n                {\n                    \"province\": {\n                        \"name\": \"浙江省\",\n                        \"id\": \"330000\"\n                    },\n                    \"city\": {\n                        \"name\": \"杭州市\",\n                        \"id\": \"330100\"\n                    },\n                    \"town\": {\n                        \"name\": \"滨江区\",\n                        \"id\": \"330108\"\n                    },\n                    \"detail\": \"松岭路888号\"\n                }\n            ]\n        },\n        \"logistics_msg\": {\n            \"shipped_order_info\": [\n                {\n                    \"shipped_order_id\": \"4705288465508532862\",\n                    \"product_id\": \"2329389\",\n                    \"sku_id\": \"3373737\",\n                    \"sku_num\": \"2\",\n                    \"shipped_num\": \"1\"\n                },\n                {\n                    \"shipped_order_id\": \"4705288465508532862\",\n                    \"product_id\": \"2329389\",\n                    \"sku_id\": \"3373737\",\n                    \"sku_num\": \"2\",\n                    \"shipped_num\": \"1\"\n                }\n            ],\n            \"pack_id\": \"4705288465508532862\",\n            \"express_company_id\": \"gdkd\",\n            \"logistics_code\": \"111111111111111\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradePendingEvent.json",
    "content": "﻿{\n    \"tag\": 0,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": \"xxxxxxx\",\n        \"s_ids\": [\"xxxxxxx\"],\n        \"shop_id\": 12345,\n        \"order_status\": 2,\n        \"order_type\": 0,\n        \"biz\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/EventSamples/Trade/TradeSuccessEvent.json",
    "content": "﻿{\n    \"tag\": 103,\n    \"msgId\": \"04288XXXXXXX9348874::100:1618990587:68373744XXXXXXX9128\",\n    \"data\": {\n        \"p_id\": \"xxxxxxx\",\n        \"s_ids\": [\"xxxxxxx\"],\n        \"shop_id\": 12345,\n        \"order_status\": 5,\n        \"order_type\": 0,\n        \"complete_time\": 1618990587,\n        \"biz\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressCreateRequest.json",
    "content": "﻿{\n    \"address\": {\n        \"user_name\": \"张三\",\n        \"mobile\": \"18012345678\",\n        \"province_id\": 32,\n        \"city_id\": 330700,\n        \"town_id\": 330782,\n        \"detail\": \"xxxx\",\n        \"street_id\": 330782003,\n        \"link_type\": 0,\n        \"fixed_phone\": \"400-12345678-1234\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressCreateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"address_id\": 10000\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressGetAreasByProvinceRequest.json",
    "content": "﻿{\n    \"province_id\": 41\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressGetAreasByProvinceResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"code\": 41,\n            \"father_code\": 8,\n            \"name\": \"河南省\",\n            \"level\": \"Province\",\n            \"sub_districts\": [\n                {\n                    \"code\": 410500,\n                    \"father_code\": 41,\n                    \"name\": \"安阳市\",\n                    \"level\": \"City\",\n                    \"sub_districts\": [\n                        {\n                            \"code\": 410522,\n                            \"father_code\": 410500,\n                            \"name\": \"安阳县\",\n                            \"level\": \"District\",\n                            \"sub_districts\": [\n                                {\n                                    \"code\": 410522107,\n                                    \"father_code\": 410522,\n                                    \"level\": \"Street\",\n                                    \"name\": \"伦掌镇\"\n                                }\n                            ]\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressGetProvinceResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"province_id\": 41,\n            \"province\": \"河南省\"\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressListRequest.json",
    "content": "﻿{\n    \"shop_id\": 123,\n    \"page_size\": 10,\n    \"page_no\": 1,\n    \"order_by\": \"asc\",\n    \"order_field\": \"create_time\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 10,\n        \"page_size\": 1,\n        \"page_no\": 10,\n        \"address_list\": [\n            {\n                \"address_id\": 1,\n                \"reciever_name\": \"张三\",\n                \"is_default\": \"1\",\n                \"is_send_default\": \"1\",\n                \"create_time\": \"1622103276\",\n                \"update_time\": \"1622103276\",\n                \"receiver_provinc\": \"北京市\",\n                \"receiver_city\": \"北京\",\n                \"receiver_district\": \"海淀区\",\n                \"receiver_detail\": \"xxxx\",\n                \"receiver_street\": \"丹棱街\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Address/AddressUpdateRequest.json",
    "content": "﻿{\n    \"address\": {\n        \"id\": 10000,\n        \"user_name\": \"张三\",\n        \"mobile\": \"18012345678\",\n        \"province_id\": 32,\n        \"city_id\": 330700,\n        \"town_id\": 330782,\n        \"detail\": \"xxxx\",\n        \"street_id\": 330782003,\n        \"link_type\": 0,\n        \"fixed_phone\": \"400-12345678-1234\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleAddOrderRemarkRequest.json",
    "content": "﻿{\n    \"order_id\": \"12345\",\n    \"aftersale_id\": \"12345\",\n    \"remark\": \"客户情绪较激动，需要立即处理\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleApplyLogisticsInterceptRequest.json",
    "content": "﻿{\n    \"after_sale_id\": \"1234\",\n    \"op_from\": 1,\n    \"intercept_targets\": [\n        {\n            \"company_code\": \"yuantong\",\n            \"tracking_no\": \"YT1387990014325\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleApplyLogisticsInterceptResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"intercept_results\": [\n            {\n                \"company_code\": \"powertestexpress\",\n                \"company_name\": \"物流测试快递\",\n                \"tracking_no\": \"3213123123\",\n                \"value_amount\": 400,\n                \"can_intercept\": false,\n                \"is_success\": false,\n                \"unavailable_reason_code\": -10006,\n                \"unavailable_reason\": \"服务器开了小差，请稍后重试\",\n                \"intercept_cost\": 400,\n                \"cur_product\": {\n                    \"order_id\": 1706063166401591,\n                    \"product_image\": \"https://tosv.boe.byted.org/obj/temai/5a10d8cfc3747b2862fb72090fd976a3www660-660\",\n                    \"product_name\": \"云达人测试单裙\",\n                    \"product_spec\": \"红色系\",\n                    \"tags\": null,\n                    \"price\": 200,\n                    \"amount\": 1\n                },\n                \"other_products\": [\n                    {\n                        \"order_id\": 1706063166401575,\n                        \"product_image\": \"https://tosv.boe.byted.org/obj/temai/5a10d8cfc3747b2862fb72090fd976a3www660-660\",\n                        \"product_name\": \"云达人测试单裙\",\n                        \"product_spec\": \"白色系\",\n                        \"tags\": null,\n                        \"price\": 200,\n                        \"amount\": 1\n                    }\n                ],\n                \"other_product_amount\": 1\n            }\n        ],\n        \"success_count\": 0,\n        \"failed_count\": 1,\n        \"unavailable_reason_code\": -10006,\n        \"unavailable_reason\": \"服务器开了小差，请稍后重试\",\n        \"refund_amount\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleBuyerExchangeConfirmRequest.json",
    "content": "﻿{\n    \"logistics_code\": \"123\",\n    \"company_code\": \"1\",\n    \"aftersale_id\": 123123123123123,\n    \"action\": \"refund_agree\",\n    \"comment\": \"1\",\n    \"evidence\": [\"http://pic/pic.jpeg\"],\n    \"is_reject\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleBuyerExchangeRequest.json",
    "content": "﻿{\n    \"comment\": \"未收到货\",\n    \"aftersale_id\": \"123123123123\",\n    \"sms_id\": \"1\",\n    \"is_reject\": \"true\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleDetailRequest.json",
    "content": "﻿{\n    \"after_sale_id\": \"12345\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_info\": {},\n        \"process_info\": {}\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleListRequest.json",
    "content": "﻿{\n    \"aftersale_id\": \"6987272148133888300\",\n    \"start_time\": 1626770133,\n    \"end_time\": 1626856525,\n    \"order_by\": [\"status_deadline desc\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"has_more\": \"true\",\n        \"items\": [\n            {\n                \"aftersale_info\": {\n                    \"aftersale_id\": \"\\\"6986853269519810849\\\"\",\n                    \"aftersale_num\": \"1\",\n                    \"aftersale_order_type\": \"1\",\n                    \"aftersale_status\": \"11\",\n                    \"aftersale_type\": \"0\",\n                    \"apply_time\": 1626753592,\n                    \"arbitrate_blame\": \"1\",\n                    \"arbitrate_status\": \"0\",\n                    \"create_time\": 1626753592,\n                    \"exchange_logistics_company_name\": \"韵达快递\",\n                    \"exchange_sku_info\": {\n                        \"code\": \"\\\"10000\\\"\",\n                        \"name\": \"\\\"xxx\\\"\",\n                        \"num\": \"1\",\n                        \"out_sku_id\": \"\\\"10000\\\"\",\n                        \"out_warehouse_id\": \"\\\"10000\\\"\",\n                        \"price\": \"\\\"100\\\"\",\n                        \"sku_id\": \"\\\"1709160688834615\\\"\",\n                        \"spec_desc\": \"\\\"xx/xx/xx\\\"\",\n                        \"supplier_id\": \"\\\"10000\\\"\",\n                        \"url\": \"\\\"http://xxxxx\\\"\"\n                    },\n                    \"got_pkg\": \"1\",\n                    \"is_agree_refuse_sign\": \"1\",\n                    \"left_urge_sms_count\": \"0\",\n                    \"order_logistics\": [\n                        {\n                            \"company_code\": \"shunfeng\",\n                            \"company_name\": \"顺丰\",\n                            \"logistics_state\": \"6\",\n                            \"logistics_time\": \"1637586290\",\n                            \"tracking_no\": \"SF12345678910\"\n                        }\n                    ],\n                    \"part_type\": \"0\",\n                    \"reason_second_labels\": [\n                        {\n                            \"code\": \"1\",\n                            \"name\": \"衣服买大\"\n                        }\n                    ],\n                    \"refund_amount\": \"20\",\n                    \"refund_post_amount\": \"0\",\n                    \"refund_status\": \"1\",\n                    \"refund_tax_amount\": \"0\",\n                    \"refund_type\": \"0\",\n                    \"related_id\": \"\\\"4821780700279174718\\\"\",\n                    \"remark\": \"买家不想要了\",\n                    \"return_logistics_code\": \"\\\"XY123123123\\\"\",\n                    \"return_logistics_company_name\": \"顺丰速运\",\n                    \"return_promotion_amount\": \"0\",\n                    \"risk_decision_code\": \"0\",\n                    \"risk_decision_description\": \"\\\"\\\"\",\n                    \"risk_decision_reason\": \"\\\"\\\"\",\n                    \"status_deadline\": 1626926420,\n                    \"update_time\": 1626860666\n                },\n                \"order_info\": {\n                    \"order_flag\": \"0\",\n                    \"related_order_info\": [\n                        {\n                            \"aftersale_item_num\": \"1\",\n                            \"aftersale_pay_amount\": \"20\",\n                            \"aftersale_post_amount\": \"0\",\n                            \"aftersale_tax_amount\": \"0\",\n                            \"create_time\": 1626753467,\n                            \"given_sku_order_ids\": \"4863025593329976686\",\n                            \"is_oversea_order\": \"0\",\n                            \"item_num\": \"1\",\n                            \"logistics_code\": \"\\\"RABBIT123123\\\"\",\n                            \"logistics_company_name\": \"顺丰速运\",\n                            \"order_status\": \"3\",\n                            \"pay_amount\": \"20\",\n                            \"post_amount\": \"0\",\n                            \"price\": \"20\",\n                            \"product_id\": \"9999888777666\",\n                            \"product_image\": \"https://bytedance.com/image/rabbit.jpg\",\n                            \"product_name\": \"小兔子T恤\",\n                            \"promotion_pay_amount\": \"0\",\n                            \"shop_sku_code\": \"\\\"\\\"\",\n                            \"sku_order_id\": \"\\\"4821780700279174718\\\"\",\n                            \"sku_spec\": [\n                                {\n                                    \"name\": \"颜色\",\n                                    \"value\": \"白\"\n                                }\n                            ],\n                            \"tags\": [\n                                {\n                                    \"tag_detail\": \"超级售后\",\n                                    \"tag_detail_en\": \"super_after_sale\",\n                                    \"tag_link_url\": \"http://what_is_super_after_sale.bytedance.com/faq\"\n                                }\n                            ],\n                            \"tax_amount\": \"0\"\n                        }\n                    ],\n                    \"shop_order_id\": \"\\\"4821780700279174718\\\"\"\n                },\n                \"seller_logs\": [\n                    {\n                        \"content\": \"\\\"买家觉得小兔子太可爱了，不想要了\\\"\",\n                        \"create_time\": \"2001-01-01 03:04:05\",\n                        \"op_name\": \"\\\"兔子店铺CEO\\\"\",\n                        \"star\": \"0\"\n                    }\n                ],\n                \"text_part\": {\n                    \"aftersale_refund_type_text\": \"\\\"保证金\\\"\",\n                    \"aftersale_status_text\": \"\\\"待商家审核\\\"\",\n                    \"aftersale_type_text\": \"\\\"退货退款\\\"\",\n                    \"arbitrate_status_text\": \"\\\"\\\"\",\n                    \"bad_item_text\": \"\\\"\\\"\",\n                    \"logistics_text\": \"\\\"已发货\\\"\",\n                    \"reason_text\": \"\\\"无理由退款\\\"\",\n                    \"return_logistics_text\": \"\\\"已发货\\\"\"\n                }\n            }\n        ],\n        \"page\": \"0\",\n        \"size\": \"10\",\n        \"total\": \"1025\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\",\n    \"code\": 10000,\n    \"msg\": \"success\",\n    \"sub_code\": \"\",\n    \"sub_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleOpenAfterSaleChannelRequest.json",
    "content": "﻿{\n    \"order_id\": \"4810811637262779447\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleOpenAfterSaleChannelResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"conclusion\": {\n            \"match_conclusion\": 1,\n            \"match_message\": \"\",\n            \"can_apply_type_list\": [1, 2],\n            \"match_success\": true\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleOperateRequest.json",
    "content": "﻿{\n    \"type\": 111,\n    \"items\": [\n        {\n            \"aftersale_id\": \"6959800000297566494\",\n            \"reason\": \"商品有破损\",\n            \"remark\": \"商品有污渍，影响二次销售\",\n            \"evidence\": [],\n            \"logistics\": {\n                \"company_code\": \"yuantong\",\n                \"logistics_code\": \"YT31368712931\",\n                \"receiver_address_id\": 95251,\n                \"sender_address_id\": 95251\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleOperateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"items\": [\n            {\n                \"aftersale_id\": 6959800000297566000,\n                \"status_code\": 0,\n                \"status_msg\": \"success\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleRefundListSearchRequest.json",
    "content": "﻿{\n    \"end_time\": \"2021/05/01 15:40:59\",\n    \"is_desc\": 0,\n    \"order_by\": \"update_time\",\n    \"page\": 0,\n    \"size\": 100,\n    \"start_time\": \"2021/03/01 15:20:00\",\n    \"status\": 1,\n    \"type\": 5\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleRefundListSearchResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"aftersale_list\": [\n            {\n                \"order_id\": 4733587476763186359,\n                \"aftersale_id\": 6898662840928862468,\n                \"apply_time\": \"2020-11-24 20:16:07\",\n                \"aftersale_type\": 2,\n                \"status_deadline\": \"\",\n                \"deadline_type\": 0,\n                \"aftersale_process_desc\": \"未发货仅退款\",\n                \"aftersale_status_desc\": \"同意退款，退款成功\",\n                \"return_status_desc\": \"未发货\",\n                \"reason_desc\": \"其他\",\n                \"part_type\": 0,\n                \"pid\": 4733587476763186359,\n                \"aftersale_refund_type_desc\": \"原路退款\",\n                \"refund_status\": 3,\n                \"aftersale_status\": 12,\n                \"post_receiver\": \"小雨测试01\",\n                \"arbitrate_status\": 0,\n                \"refund_type\": 0,\n                \"urge_sms_cnt\": 3,\n                \"aftersale_items\": [\n                    {\n                        \"product_name\": \"测试商品\",\n                        \"product_id\": 3449112394213808795,\n                        \"product_img\": \"https://sf1-ttcdn-tos.pstatp.com/obj/temai/b01d3603e080606c6d0238a119094cb2www750-1039\",\n                        \"num\": 1,\n                        \"pay_amount\": 1,\n                        \"post_amount\": 0,\n                        \"refund_amount\": 1,\n                        \"refund_post_amount\": 0,\n                        \"aftersale_service\": [\"supply_7day_return\"],\n                        \"sku_spec\": [\n                            {\n                                \"name\": \"颜色\",\n                                \"value\": \"1\"\n                            },\n                            {\n                                \"name\": \"尺码\",\n                                \"value\": \"1\"\n                            }\n                        ],\n                        \"order_id\": 4733587476763186359,\n                        \"create_time\": \"2020-11-24 20:02:03\",\n                        \"part_type\": 0\n                    }\n                ],\n                \"aftersale_record_items\": [\n                    {\n                        \"aftersale_id\": 0,\n                        \"order_id\": 0,\n                        \"role\": \"user\",\n                        \"op_type\": \"apply\",\n                        \"op_name\": \"\",\n                        \"conclusion\": 0,\n                        \"op_time\": \"2020-11-24 20:16:07\",\n                        \"comment\": \"其他\",\n                        \"evidence\": [],\n                        \"remark\": \"测试\",\n                        \"got_pkg\": 0,\n                        \"logistics_code\": null,\n                        \"company_code\": null,\n                        \"company_name\": null,\n                        \"refund_type\": null,\n                        \"aftersale_order_type\": 2\n                    },\n                    {\n                        \"aftersale_id\": 0,\n                        \"order_id\": 0,\n                        \"role\": \"shop\",\n                        \"op_type\": \"audit\",\n                        \"op_name\": \"\",\n                        \"conclusion\": 1,\n                        \"op_time\": \"2020-11-24 20:16:31\",\n                        \"comment\": \"\",\n                        \"evidence\": [],\n                        \"remark\": null,\n                        \"got_pkg\": null,\n                        \"logistics_code\": null,\n                        \"company_code\": null,\n                        \"company_name\": null,\n                        \"refund_type\": null\n                    },\n                    {\n                        \"aftersale_id\": 0,\n                        \"order_id\": 0,\n                        \"role\": \"system\",\n                        \"op_type\": \"refund\",\n                        \"op_name\": \"\",\n                        \"conclusion\": 0,\n                        \"op_time\": \"2020-11-24 20:19:34\",\n                        \"comment\": \"\",\n                        \"evidence\": [],\n                        \"remark\": null,\n                        \"got_pkg\": null,\n                        \"logistics_code\": null,\n                        \"company_code\": null,\n                        \"company_name\": null,\n                        \"refund_type\": null\n                    }\n                ]\n            }\n        ],\n        \"total\": 3779\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleReturnGoodsToWareHouseSuccessRequest.json",
    "content": "﻿{\n    \"aftersale_id\": \"4810811637262779447\",\n    \"op_time\": 1627905819,\n    \"tracking_no\": \"SF12334\",\n    \"logistics_company_code\": \"shunfeng\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleSubmitEvidenceRequest.json",
    "content": "﻿{\n    \"aftersale_id\": \"123123\",\n    \"evidence\": [\"https://xxxx.jpg\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Aftersale/AftersaleTimeExtendRequest.json",
    "content": "﻿{\n    \"aftersale_id\": \"123123123123123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/AllianceGetOrderListRequest.json",
    "content": "﻿{\n    \"order_ids\": [\"id1\", \"id2\", \"id3\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/AllianceGetOrderListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": \"100000\",\n        \"code_msg\": \"success\",\n        \"datas\": [\n            {\n                \"order_id\": \"4790957107260097836\",\n                \"product_id\": \"3475285904548040556\",\n                \"author_account\": \"北三环小王子\",\n                \"short_id\": \"1068048\",\n                \"total_pay_amount\": 31000,\n                \"commission_rate\": 300,\n                \"estimated_comission\": 810,\n                \"real_comission\": 0,\n                \"order_status\": \"支付成功\",\n                \"shop_id\": \"1111115516\",\n                \"alliance_biz_type\": \"COMMON\",\n                \"phase_id\": 1\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/MaterialsProducts/AllianceMaterialsProductsDetailsRequest.json",
    "content": "﻿{\n    \"product_ids\": [1122333]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/MaterialsProducts/AllianceMaterialsProductsDetailsResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"products\": [\n            {\n                \"category_id\": \"2\",\n                \"category_name\": \"玩具乐器\",\n                \"comment_num\": \"2321\",\n                \"comment_score\": \"2\",\n                \"cos_fee\": \"10\",\n                \"cos_ratio\": \"10\",\n                \"cover\": \"https://sf1-ttcdn-tos.pstatp.com/img/temai/Fpt8famR3twTGYz09e25nz5PbTRuwww800-800~1125x1125_q50.webp\",\n                \"daily_statistics\": [\n                    {\n                        \"date\": \"20210101\",\n                        \"kol_num\": \"1\",\n                        \"order_num\": \"102\",\n                        \"view_num\": \"343\"\n                    }\n                ],\n                \"detail_url\": \"https://haohuo.jinritemai.com/views/product/item2?id=3400312511185213726\",\n                \"first_cid\": \"11\",\n                \"in_stock\": \"true\",\n                \"kol_cos_fee\": \"100\",\n                \"kol_cos_ratio\": \"10.00\",\n                \"kol_num\": \"2\",\n                \"order_num\": \"1232\",\n                \"price\": \"100\",\n                \"product_id\": \"12233112\",\n                \"reason\": \"同意\",\n                \"sales\": \"1000\",\n                \"second_cid\": \"2011\",\n                \"shop_id\": \"1234\",\n                \"shop_name\": \"测试店铺\",\n                \"status\": \"1\",\n                \"third_cid\": \"3040\",\n                \"title\": \"测试商品\",\n                \"view_num\": \"5432\"\n            }\n        ],\n        \"total\": \"10\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/MaterialsProducts/AllianceMaterialsProductsSearchRequest.json",
    "content": "﻿{\n    \"title\": \"测试商品名称\",\n    \"first_cids\": [1, 2, 3, 4],\n    \"second_cids\": [22],\n    \"third_cids\": [333],\n    \"price_min\": 1,\n    \"price_max\": 1000,\n    \"sell_num_min\": 0,\n    \"sell_num_max\": 1000,\n    \"cos_fee_min\": 1,\n    \"cos_fee_max\": 50,\n    \"cos_ratio_min\": 1,\n    \"cos_ratio_max\": 15,\n    \"page\": 1,\n    \"page_size\": 15,\n    \"search_type\": 0,\n    \"sort_type\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Alliance/MaterialsProducts/AllianceMaterialsProductsSearchResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 1000,\n        \"products\": [\n            {\n                \"product_id\": 3400312511185214000,\n                \"title\": \"测试商品\",\n                \"price\": 100,\n                \"cos_ratio\": 10,\n                \"cos_fee\": 1,\n                \"first_cid\": 1206,\n                \"second_cid\": 1402,\n                \"third_cid\": 2634,\n                \"in_stock\": 1,\n                \"sales\": 1234,\n                \"cover\": \"https://sf1-ttcdn-tos.pstatp.com/img/temai/Fpt8famR3twTGYz09e25nz5PbTRuwww800-800~1125x1125_q50.webp\",\n                \"detail_url\": \"https://haohuo.jinritemai.com/views/product/item2?id=3400312511185213726\",\n                \"shop_name\": \"maggie测试小铺\",\n                \"shop_id\": 2232\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/AntiSpam/AntiSpamUserLoginRequest.json",
    "content": "﻿{\n    \"user\": {\n        \"uid_type\": 12,\n        \"user_id\": 12345\n    },\n    \"params\": \"{\\\"account_id\\\":12345}\",\n    \"event_time\": 12345677\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/AntiSpam/AntiSpamUserLoginResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"decision\": {\n            \"decision\": \"PASS\",\n            \"decision_detail\": \"detail\",\n            \"hit_status\": \"hint\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASGetInspectionOrderRequest.json",
    "content": "﻿{\n    \"order_id\": \"4775168038676399798\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASGetInspectionOrderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_id\": \"4775168038676399798\",\n        \"product_orders\": [\n            {\n                \"product_order_id\": \"4775168038676399799\",\n                \"order_code\": [\"0123456788\", \"2526267880\"]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASGetOrderInspectionResultRequest.json",
    "content": "﻿{\n    \"order_code\": \"0123456787\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASGetOrderInspectionResultResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_id\": \"4775168038676399798\",\n        \"product_order_id\": \"4775168038676399798\",\n        \"order_code\": \"0123456787\",\n        \"inspection_result\": 1,\n        \"certification_code\": \"XXXX-2021-03T617\",\n        \"detail\": \"{\\\"id\\\":\\\"20455\\\",\\\"region\\\":\\\"6\\\",\\\"order_id\\\":\\\"0\\\",\\\"type\\\":\\\"2\\\",\\\"zsbh\\\":\\\"COIC-2021-03T617\\\"}\",\n        \"inspection_comment\": \"表盘后镶钻\",\n        \"inspection_cost\": 200,\n        \"logistics_cost\": 2000,\n        \"inspection_time\": \"1616679140\",\n        \"inspection_order_id\": \"GGEE12321\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASListBrandResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"brand_list\": [\n            {\n                \"brand_id\": 1,\n                \"brand_name\": \"aj\",\n                \"brand_category_list\": [\n                    {\n                        \"id\": 1,\n                        \"name\": \"鞋靴\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASSaveInspectionInformationRequest.json",
    "content": "﻿{\n    \"order_id\": \"4775168038676399798\",\n    \"product_order_id\": \"4775168038676399798\",\n    \"order_code\": \"0123456787\",\n    \"service_status\": 1,\n    \"base_send_logistics_code\": \"SF12345678901\",\n    \"send_type\": 0,\n    \"send_logistics_id\": \"1\",\n    \"send_logistics_company_code\": \"shunfeng\",\n    \"send_logistics_code\": \"SF12345678901\",\n    \"is_shipping_self\": 0,\n    \"shipping_logistics_type\": 1,\n    \"insurance_cost\": 200,\n    \"return_intercept_type\": 0,\n    \"return_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASSaveInspectionOnlineRequest.json",
    "content": "﻿{\n    \"order_id\": \"4775168038676399798\",\n    \"product_order_id\": \"4775168038676399799\",\n    \"order_code\": \"0123456787\",\n    \"service_status\": 1,\n    \"certification_code\": \"Q12312312312\",\n    \"is_original_info\": 1,\n    \"brand_id\": 2,\n    \"return_intercept_type\": 0,\n    \"images\": [\n        {\n            \"image_id\": 1,\n            \"image_url\": \"https://xxx.xxxx.xxxx\",\n            \"image_comment\": \"带扣\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/BTAS/BTASShippingRequest.json",
    "content": "﻿{\n    \"order_id\": \"4775168038676399798\",\n    \"product_order_id\": \"4775168038676399798\",\n    \"order_code\": \"0123456787\",\n    \"service_status\": 1,\n    \"base_shipping_logistics_code\": \"SF12345678901\",\n    \"shipping_logistics_id\": \"1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Activity/BuyinApplyActivitiesRequest.json",
    "content": "﻿{\n    \"activity_id\": 1234234123,\n    \"service_rate\": 20,\n    \"service_ratio\": 20.5,\n    \"phone_number\": \"12318726321\",\n    \"products\": [\n        {\n            \"product_id\": 3276187891830787600,\n            \"activity_price\": 200,\n            \"promotion_stock\": 100,\n            \"gift_info\": \"无赠品\",\n            \"promotion_step\": \"满减\",\n            \"product_activity_ratio\": 20.5\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Activity/BuyinApplyActivitiesResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 20,\n        \"result\": [\n            {\n                \"product_id\": 123123123123,\n                \"is_success\": true,\n                \"error_code\": 0,\n                \"error_msg\": \"success\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/BuyinInstituteOrderAdsRequest.json",
    "content": "﻿{\n    \"size\": 20,\n    \"cursor\": \"0\",\n    \"start_time\": \"2006-01-02 15:04:05\",\n    \"end_time\": \"2006-01-02 15:04:05\",\n    \"order_ids\": \"4737996432465788974,4737996432465780075\",\n    \"pid\": \"dy_1234_4567_7890\",\n    \"distribution_type\": \"Live\",\n    \"open_id\": \"dsrr34fd43fe\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/BuyinInstituteOrderAdsResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"data\": {\n            \"cursor\": \"4737996432465788974\",\n            \"orders\": [\n                {\n                    \"ads_estimated_commission\": \"100\",\n                    \"ads_real_commission\": \"100\",\n                    \"ads_split_rate\": \"0\",\n                    \"app\": \"抖音\",\n                    \"author_account\": \"我的昵称\",\n                    \"author_openid\": \"f190e172-5fd8-4b7b-babb-f32323e60f7b\",\n                    \"buyer_openid\": \"f190e172-5fd8-4b7b-babb-f32323e60f7b\",\n                    \"commission_rate\": \"2000\",\n                    \"estimated_commission\": \"165\",\n                    \"estimated_tech_service_fee\": \"12\",\n                    \"estimated_total_commission\": \"580\",\n                    \"flow_point\": \"PAY_SUCC\",\n                    \"item_num\": \"2\",\n                    \"order_id\": \"4737996432465788974\",\n                    \"pay_goods_amount\": \"1100\",\n                    \"pay_success_time\": \"2006-01-02 15:04:05\",\n                    \"pick_source_client_key\": \"jifji32rnu3jit43\",\n                    \"pid_info\": {\n                        \"external_info\": \"1222_2333\",\n                        \"media_type_name\": \"Live\",\n                        \"pid\": \"dy_1234_33_455\"\n                    },\n                    \"product_id\": \"3450632721376902816\",\n                    \"product_img\": \"https://tosv.boe.byted.org/obj/temai/7e92a281163e33cedef99d8735d1e90bwww828-708\",\n                    \"product_name\": \"测试商品\",\n                    \"real_commission\": \"165\",\n                    \"refund_time\": \"2006-01-02 15:04:05\",\n                    \"settle_time\": \"2006-01-02 15:04:05\",\n                    \"settled_goods_amount\": \"0\",\n                    \"settled_tech_service_fee\": \"12\",\n                    \"shop_id\": \"1234\",\n                    \"shop_name\": \"我的店铺\",\n                    \"total_pay_amount\": \"2100\",\n                    \"update_time\": \"2006-01-02 15:04:05\"\n                }\n            ]\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinCreateOrUpdateOrientPlanRequest.json",
    "content": "﻿{\n    \"is_create\": false,\n    \"plan\": {\n        \"orien_plan_id\": \"22432343\",\n        \"product_id\": 3482204602722574252,\n        \"cos_ratio\": 20,\n        \"apply_type\": 1,\n        \"restricted_type\": 1,\n        \"author_level\": 1,\n        \"audit_type\": 1,\n        \"end_time\": 1625480546\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinCreateOrUpdateOrientPlanResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"plan_id\": \"12312\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanAuditRequest.json",
    "content": "﻿{\n    \"audit_action\": 1,\n    \"apply_id\": 16295\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanAuthorsAddRequest.json",
    "content": "﻿{\n    \"orien_plan_id\": \"111\",\n    \"buyin_ids\": [11, 222, 333]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanAuthorsAddResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"success_ids\": [11, 22],\n        \"failed_ids\": [\n            {\n                \"buyin_id\": 333,\n                \"error_code\": 22,\n                \"error_msg\": \"不存在\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanAuthorsRequest.json",
    "content": "﻿{\n    \"orien_plan_id\": \"123321\",\n    \"page\": 1,\n    \"page_size\": 20,\n    \"audit_status\": 1,\n    \"user_name\": \"达人昵称\",\n    \"buyin_id\": 111111\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanAuthorsResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 100,\n        \"orien_plan_authors\": [\n            {\n                \"apply_id\": 1,\n                \"orien_plan_id\": \"123321\",\n                \"buyin_id\": 11111,\n                \"user_name\": \"达人昵称\",\n                \"apply_time\": 1625480546,\n                \"apply_suc_time\": 1625480546,\n                \"audit_status\": 1,\n                \"apply_info\": \"申请加入\",\n                \"contact_phone\": \"18003888888\",\n                \"end_time\": 1625480546\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanControlRequest.json",
    "content": "﻿{\n    \"orien_plan_id\": \"1111\",\n    \"action\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanListRequest.json",
    "content": "﻿{\n    \"page\": 1,\n    \"page_size\": 20,\n    \"product_id\": 3482204602722574252,\n    \"product_name\": \"测试商品\",\n    \"orien_plan_id\": \"1231\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/OrientPlan/BuyinOrientPlanListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"total\": 122,\n        \"orien_plans\": [\n            {\n                \"product_id\": 3482204602722574300,\n                \"orien_plans\": [\n                    {\n                        \"orien_plan_id\": \"111\",\n                        \"product_id\": 3482204602722574300,\n                        \"product_name\": \"测试商品\",\n                        \"cover\": \"https://tosv.boe.byted.org/obj/temai/7e92a281163e33cedef99d8735d1e90bwww828-708\",\n                        \"plan_status\": 2,\n                        \"cos_ratio\": 50,\n                        \"apply_type\": 1,\n                        \"restricted_type\": 1,\n                        \"author_level\": 1,\n                        \"audit_type\": 1,\n                        \"start_time\": 1625480546,\n                        \"end_time\": 1625480546,\n                        \"create_time\": 1625480546,\n                        \"kol_num\": 1,\n                        \"price\": 120,\n                        \"new_cos_ratio\": 0,\n                        \"new_cos_ratio_start_time\": 1625480546\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Plan/BuyinExclusivePlanRequest.json",
    "content": "﻿{\n    \"is_create\": true,\n    \"status\": 2,\n    \"products\": [\n        {\n            \"product_id\": 3276187891830787600,\n            \"cos_ratio\": 5\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Plan/BuyinExclusivePlanResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"result\": [\n            {\n                \"product_id\": 3276187891830787600,\n                \"is_success\": true,\n                \"error_code\": 0,\n                \"error_msg\": \"success\"\n            }\n        ],\n        \"total\": 10\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Plan/BuyinSimplePlanRequest.json",
    "content": "﻿{\n    \"is_create\": true,\n    \"status\": 2,\n    \"products\": [\n        {\n            \"product_id\": 3276187891830787600,\n            \"cos_ratio\": 5\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Buyin/Plan/BuyinSimplePlanResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"result\": [\n            {\n                \"product_id\": 3276187891830787600,\n                \"is_success\": true,\n                \"error_code\": 0,\n                \"error_msg\": \"success\"\n            }\n        ],\n        \"total\": 10\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Coupons/CouponsAbandonRequest.json",
    "content": "﻿{\n    \"cert_no\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Coupons/CouponsCancelVerifyRequest.json",
    "content": "﻿{\n    \"cert_no\": \"231342sdd\",\n    \"batch_no\": \"123123\",\n    \"cancel_verify_count\": 3\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Coupons/CouponsSyncV2Request.json",
    "content": "﻿{\n    \"order_id\": \"123421345\",\n    \"sku_id\": 1,\n    \"cert_list\": [\n        {\n            \"out_cert_id\": \"666\",\n            \"cert_no\": \"7136xxxasd\",\n            \"cert_key\": \"1\",\n            \"grant_time\": \"2010-01-01 12:12:12\",\n            \"can_extend_valid_count\": 1,\n            \"status\": 1,\n            \"valid_start\": \"2010-01-01 12:12:12\",\n            \"valid_end\": \"2010-01-01 12:12:12\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Coupons/CouponsVerifyV2Request.json",
    "content": "﻿{\n    \"cert_no\": \"123456\",\n    \"verify_time\": \"2021-03-04 00:00:00\",\n    \"batch_no\": \"3\",\n    \"verify_count\": 12345\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderBankAccountVerifyRequest.json",
    "content": "﻿{\n    \"currency\": \"USD\",\n    \"account_name\": \"放心购-商户结算现金户\",\n    \"bank_account_no\": \"6227000330022472421\",\n    \"bank_name\": \"中国银行总行\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderBankAccountVerifyResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"acceptance_result\": \"SUCCESS\",\n        \"verification_result\": \"CONSISTENT\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderOrderInterceptionRequest.json",
    "content": "﻿{\n    \"vendor\": \"GZJS\",\n    \"order_id\": \"1234\",\n    \"occurrence_time\": \"2021-09-07 20:00:00\",\n    \"status\": 4\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderOrderInterceptionResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": 0,\n        \"msg\": \"成功\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderOrderListRequest.json",
    "content": "﻿{\n    \"vendor\": \"ABCD\",\n    \"start_time\": \"2018-06-03 00:00:00\",\n    \"end_time\": \"2018-06-03 00:00:00\",\n    \"order_by\": \"create_time\",\n    \"is_desc\": 1,\n    \"order_list\": [\"order_id1\", \"order_id2\"],\n    \"page\": 0,\n    \"size\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderOrderListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"data\": [],\n        \"has_next\": true,\n        \"total\": 120\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderQueryBalanceRequest.json",
    "content": "﻿{\n    \"shop_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderQueryBalanceResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"balance_list\": [\n            {\n                \"balance_type\": \"UNSETTLE\",\n                \"amount\": 1,\n                \"currency\": \"CNY\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderStockTakingRequest.json",
    "content": "﻿{\n    \"vendor\": \"GZJS\",\n    \"warehouse_code\": \"JSBBC01\",\n    \"shop_id\": 4321,\n    \"taking_type\": 1,\n    \"occurrence_time\": 123456789,\n    \"remark\": \"备注\",\n    \"stock_taking_details\": [\n        {\n            \"cargo_code\": \"6543\",\n            \"quality_grade\": 1,\n            \"quantity\": 10,\n            \"reason_code\": 1,\n            \"reason_msg\": \"具体原因\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderStockTakingResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": 0,\n        \"msg\": \"success\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderStockTransformRequest.json",
    "content": "﻿{\n    \"vendor\": \"GZJS\",\n    \"warehouse_code\": \"JSBBC01\",\n    \"shop_id\": 4321,\n    \"transform_type\": 1,\n    \"occurrence_time\": 123456789,\n    \"remark\": \"备注\",\n    \"stock_transform_details\": [\n        {\n            \"cargo_code\": \"6543\",\n            \"from_grade\": 1,\n            \"to_grade\": 2,\n            \"quantity\": 10,\n            \"reason_code\": 1,\n            \"reason_msg\": \"具体原因\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderStockTransformResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": 0,\n        \"msg\": \"success\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderWarehouseInOutboundEventRequest.json",
    "content": "﻿{\n    \"vendor\": \"GZJS\",\n    \"in_outbound_event_type\": 200,\n    \"source_order_no\": \"9876\",\n    \"sp_order_no\": \"4321\",\n    \"occurrence_time\": 123456789,\n    \"error_reason\": \"异常\",\n    \"tally_report_url\": [\n        {\n            \"url\": \"https://xxx\",\n            \"name\": \"标题\"\n        }\n    ],\n    \"inbound_cargo_infos\": [\n        {\n            \"cargo_code\": \"6543\",\n            \"actual_stack_count\": 10,\n            \"good_cargo_count\": 10,\n            \"defective_cargo_count\": 0,\n            \"expiry_date\": \"2021-08-24 20:00:00\"\n        }\n    ],\n    \"outbound_cargo_infos\": [\n        {\n            \"cargo_code\": \"6543\",\n            \"quality_grade\": 1,\n            \"quantity\": 10,\n            \"extend\": {}\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/CrossBorder/CrossBorderWarehouseInOutboundEventResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": 0,\n        \"msg\": \"success\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/DutyFree/DutyFreeOrderConfirmRequest.json",
    "content": "﻿{\n    \"order_id\": \"3214321413241\",\n    \"status\": 1,\n    \"occurrence_time\": \"2018-06-03 00:00:00\",\n    \"error_info\": {\n        \"error_code\": \"ERR_100\",\n        \"error_msg\": \"库存不足\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/FreightTemplate/FreightTemplateListRequest.json",
    "content": "﻿{\n    \"name\": \"模板1\",\n    \"page\": 0,\n    \"size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/FreightTemplate/FreightTemplateListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"List\": [\n            {\n                \"template\": {\n                    \"id\": 1,\n                    \"template_name\": \"模版示例\"\n                }\n            }\n        ],\n        \"Count\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/IOPOrderInformationRequest.json",
    "content": "﻿{\n    \"user_id\": 55557775757756,\n    \"distr_order_id\": \"77878786688878787\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/IOPOrderInformationResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"distr_order_id\": \"77878786688878787\",\n        \"user_id\": 55557775757756,\n        \"user_name\": \"xxx店\",\n        \"seller_words\": \"发xxx快递\",\n        \"distr_time\": 1625628558,\n        \"distr_status\": 1,\n        \"product_name\": \"衣服\",\n        \"product_count\": 2,\n        \"product_id\": \"1142351234\",\n        \"product_price\": 990,\n        \"sku_spec\": \"绿色/小\",\n        \"out_sku_id\": \"A11\",\n        \"receiver_id\": \"4239E33B82F201A3D73D8DA2DDA21AD4\",\n        \"province\": \"上海市\",\n        \"city\": \"上海市\",\n        \"district\": \"长宁区\",\n        \"province_id\": \"110000\",\n        \"city_id\": \"110000\",\n        \"district_id\": \"110000\",\n        \"street\": \"中关村\",\n        \"street_id\": \"110000\",\n        \"distr_cancel_reason\": \"订单已取消\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/IOPOrderListRequest.json",
    "content": "﻿{\n    \"start_update_time\": 1625628558,\n    \"end_update_time\": 1625628558,\n    \"page\": 10,\n    \"size\": 80,\n    \"distr_status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/IOPOrderListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_list\": [\n            {\n                \"distr_order_id\": \"77878786688878787\",\n                \"user_id\": 55557775757756,\n                \"user_name\": \"xxx店\",\n                \"seller_words\": \"发xxx快递\",\n                \"distr_time\": 1625628558,\n                \"distr_status\": 1,\n                \"product_name\": \"衣服\",\n                \"product_count\": 2,\n                \"product_id\": \"1142351234\",\n                \"product_price\": 990,\n                \"sku_spec\": \"绿色/小\",\n                \"out_sku_id\": \"A11\",\n                \"receiver_id\": \"4239E33B82F201A3D73D8DA2DDA21AD4\",\n                \"province\": \"上海市\",\n                \"city\": \"上海市\",\n                \"district\": \"长宁区\",\n                \"street\": \"中关村\",\n                \"province_id\": \"101000\",\n                \"city_id\": \"101000\",\n                \"district_id\": \"101000\",\n                \"street_id\": \"101000\",\n                \"distr_cancel_reason\": \"订单已取消\"\n            }\n        ],\n        \"total\": 100\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/IOPRoleGetResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"role_type\": 2\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerCancelDistributeRequest.json",
    "content": "﻿{\n    \"distr_order_ids\": [\"34534534534534\", \"34535345345345\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerCancelDistributeResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"succ_distr_order_ids\": [\"4535353535\", \"3453543534535\"],\n        \"fail_distr_order_ids\": []\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerDistributeRequest.json",
    "content": "﻿{\n    \"distribute_order_list\": [\n        {\n            \"supplier_shop_id\": 77977,\n            \"distr_order_id\": \"77878786688878787\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerDistributeResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"distribute_order_reuslts\": [\n            {\n                \"supplier_shop_id\": 77977,\n                \"distr_order_id\": \"77878786688878787\",\n                \"err_no\": 0,\n                \"message\": \"succ\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerOrderInformationRequest.json",
    "content": "﻿{\n    \"distr_order_id\": \"77878786688878787\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerOrderInformationResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"distr_order_detail\": {\n            \"distr_order_id\": \"77878786688878787\",\n            \"shop_order_id\": \"77878786688878787\",\n            \"order_status\": 2,\n            \"distr_status\": 2,\n            \"distr_time\": 1630484005,\n            \"after_sale_status\": 2,\n            \"supplier_shop_id\": 77977,\n            \"supplier_shop_name\": \"测试店铺名称\",\n            \"exp_ship_time\": 1630484005,\n            \"pay_time\": 1630484005,\n            \"seller_words\": \"发货黑色\",\n            \"product_name\": \"苹果\",\n            \"product_count\": 2,\n            \"product_id\": \"77878786688878787\",\n            \"product_price\": 1000,\n            \"sku_spec\": \"褐色\",\n            \"out_sku_id\": \"213412x\",\n            \"province_id\": \"110000\",\n            \"province\": \"北京\",\n            \"city_id\": \"110000\",\n            \"city\": \"北京\",\n            \"district_id\": \"110000\",\n            \"district\": \"海淀区\",\n            \"street_id\": \"110000\",\n            \"street\": \"中关村\",\n            \"tracking_no\": \"34545455\",\n            \"company_name\": \"shunfeng\",\n            \"distr_cancel_reason\": \"订单已取消\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerOrderListRequest.json",
    "content": "﻿{\n    \"start_update_time\": 1625628558,\n    \"end_update_time\": 1625628558,\n    \"page\": 10,\n    \"size\": 80,\n    \"distr_status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerOrderListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"distr_order_list\": [\n            {\n                \"distr_order_id\": \"2222333332223\",\n                \"shop_order_id\": \"22131323322\",\n                \"order_status\": 2,\n                \"distr_status\": 1,\n                \"distr_time\": 1630484005,\n                \"after_sale_status\": 1,\n                \"supplier_shop_id\": 77977,\n                \"supplier_shop_name\": \"厂家店铺名\",\n                \"exp_ship_time\": 1630484005,\n                \"pay_time\": 1630484005,\n                \"seller_words\": \"发货黑色\",\n                \"product_name\": \"鞋子\",\n                \"product_count\": 1,\n                \"product_id\": \"2313131313\",\n                \"product_price\": 1000,\n                \"sku_spec\": \"褐色\",\n                \"out_sku_id\": \"123123\",\n                \"province_id\": \"110000\",\n                \"province\": \"北京\",\n                \"city_id\": \"110000\",\n                \"city\": \"北京\",\n                \"district_id\": \"110000\",\n                \"district\": \"海淀\",\n                \"street_id\": \"110000\",\n                \"street\": \"中关村\",\n                \"tracking_no\": \"5443445\",\n                \"company_name\": \"shunfeng\",\n                \"distr_cancel_reason\": \"订单已取消\"\n            }\n        ],\n        \"page\": 0,\n        \"size\": 20,\n        \"total\": 100\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerSupplierListRequest.json",
    "content": "﻿{\n    \"page\": 0,\n    \"page_size\": 20,\n    \"bind_status\": [1, 2]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Seller/IOPSellerSupplierListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"supplier_shop_list\": [\n            {\n                \"supplier_shop_name\": \"大白店铺二\",\n                \"supplier_shop_id\": 77977,\n                \"apply_time\": 1630484005,\n                \"band_time\": 1630484005,\n                \"refuse_time\": 1630484005,\n                \"bind_status\": 1\n            }\n        ],\n        \"page\": 0,\n        \"page_size\": 20,\n        \"total\": 100\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillCancelRequest.json",
    "content": "﻿{\n    \"user_id\": 884334435345,\n    \"company_code\": \"jtexpress\",\n    \"track_no\": \"1234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillCancelResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"return_result\": true\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillGetRequest.json",
    "content": "﻿{\n    \"sender\": {\n        \"address\": {},\n        \"contact\": {}\n    },\n    \"trade_order_list\": [\n        {\n            \"company_code\": \"jtexpress\",\n            \"order_infos\": [\n                {\n                    \"distr_order_id\": \"202011809\",\n                    \"pack_id\": \"1\",\n                    \"service_list\": [],\n                    \"product_type\": 1,\n                    \"pay_method\": 1,\n                    \"pay_amount\": 5000,\n                    \"sender_fetch_time\": \"2020-11-11 22:00:00|2020-11-11 23:00:00\",\n                    \"is_sign_back\": 0,\n                    \"remark\": \"我的包裹易碎，包严实点\",\n                    \"total_pack_count\": 2,\n                    \"total_weight\": 1,\n                    \"total_length\": 1,\n                    \"total_width\": 1,\n                    \"total_height\": 1,\n                    \"volume\": 1\n                }\n            ],\n            \"user_id\": 1,\n            \"delivery_req\": {\n                \"is_center_delivery\": true,\n                \"is_pickup_self\": true\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillGetResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"ebill_infos\": [\n            {\n                \"distr_order_id\": \"7874584357345\",\n                \"track_no\": \"202011809\",\n                \"sort_code\": \"400-W00 000\",\n                \"package_code\": \"1\",\n                \"package_code_name\": \"1\",\n                \"mark_destination_code\": \"1\",\n                \"mark_destination_code_name\": \"1\",\n                \"extra\": \"1\",\n                \"extra_resp\": \"1\",\n                \"sub_waybill_codes\": \"13,434,556\"\n            }\n        ],\n        \"err_infos\": [\n            {\n                \"distr_order_id\": \"7874584357345\",\n                \"err_code\": \"10701\",\n                \"err_msg\": \"电子面单库存不足\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillReturnRequest.json",
    "content": "﻿{\n    \"user_id\": 884334435345,\n    \"distr_order_id\": \"884334435345\",\n    \"company_code\": \"jtexpress\",\n    \"track_no\": \"1234\",\n    \"is_refund_reject\": false\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillReturnResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"return_result\": true,\n        \"delivery_id\": \"982734\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillUpdateRequest.json",
    "content": "﻿{\n    \"user_id\": 884334435345,\n    \"distr_order_id\": \"884334435345\",\n    \"company_code\": \"jtexpress\",\n    \"track_no\": \"1234\",\n    \"delivery_id\": \"32423\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/IOP/Waybill/IOPWaybillUpdateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"return_result\": true,\n        \"delivery_id\": \"982734\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsCancelOrderRequest.json",
    "content": "﻿{\n    \"logistics_code\": \"jd\",\n    \"track_no\": \"1234\",\n    \"user_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsCancelOrderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"cancel_result\": {\n            \"success\": null\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsGetCustomTemplateListRequest.json",
    "content": "﻿{\n    \"logistics_code\": \"shufeng\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsGetCustomTemplateListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"custom_template_data\": [\n            {\n                \"logistics_code\": \"shunfeng\",\n                \"custom_template_infos\": [\n                    {\n                        \"custom_template_code\": \"123\",\n                        \"custom_template_name\": \"muban\",\n                        \"parent_template_code\": \"1\",\n                        \"custom_template_url\": \"1\",\n                        \"custom_template_key_list\": [],\n                        \"custom_template_id\": 1,\n                        \"parent_template_id\": 1\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsGetOutRangeRequest.json",
    "content": "﻿{\n    \"type\": 1,\n    \"logistics_code\": \"jtexpress\",\n    \"sender_address\": {\n        \"country_code\": \"CHN\",\n        \"province_name\": \"浙江省\",\n        \"city_name\": \"杭州市\",\n        \"district_name\": \"滨江区\",\n        \"street_name\": \"长河街道\",\n        \"detail_address\": \"XX小区X幢\"\n    },\n    \"receiver_address\": {\n        \"country_code\": \"CHN\",\n        \"province_name\": \"浙江省\",\n        \"city_name\": \"杭州市\",\n        \"district_name\": \"滨江区\",\n        \"street_name\": \"长河街道\",\n        \"detail_address\": \"XX小区X幢\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsGetOutRangeResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"is_out_range\": false,\n        \"out_range_reason\": \"地址未覆盖\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsListShopNetSiteRequest.json",
    "content": "﻿{\n    \"logistics_code\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsListShopNetSiteResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"netsites\": [\n            {\n                \"netsite_code\": \"100010\",\n                \"netsite_name\": \"E世界\",\n                \"amount\": \"1\",\n                \"sender_address\": [\n                    {\n                        \"province_name\": \"北京\",\n                        \"city_name\": \"北京市\",\n                        \"district_name\": \"海淀区\",\n                        \"street_name\": \"E世界\",\n                        \"detail_address\": \"E世界\"\n                    }\n                ],\n                \"allocated_quantity\": 1,\n                \"cancelled_quantity\": 1,\n                \"recycled_quantity\": 1,\n                \"company\": \"zhongtong\",\n                \"company_type\": 1\n            }\n        ],\n        \"logistics_code\": \"zhongtong\",\n        \"company_type\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsNewCreateOrderRequest.json",
    "content": "﻿{\n    \"sender_info\": {\n        \"address\": {},\n        \"contact\": {}\n    },\n    \"logistics_code\": \"jtexpress\",\n    \"order_infos\": [\n        {\n            \"order_id\": \"202011809\",\n            \"pack_id\": \"1\",\n            \"service_list\": [],\n            \"product_type\": 1,\n            \"pay_method\": 1,\n            \"pay_amount\": 5000,\n            \"pod_model_address\": {},\n            \"receiver_info\": {\n                \"address\": {},\n                \"contact\": {}\n            },\n            \"sender_fetch_time\": \"2020-11-11 22:00:00|2020-11-11 23:00:00\",\n            \"is_sign_back\": 0,\n            \"remark\": \"我的包裹易碎，包严实点\",\n            \"total_pack_count\": 2,\n            \"total_weight\": 1,\n            \"total_length\": 1,\n            \"total_width\": 1,\n            \"total_height\": 1,\n            \"volume\": 1,\n            \"warehouse\": {\n                \"is_sum_up\": true,\n                \"wh_code\": \"1\",\n                \"wh_order_no\": \"8837383\",\n                \"delivery_type\": 2\n            },\n            \"net_info\": {\n                \"category\": \"加盟\",\n                \"net_code\": \"XS222\",\n                \"monthly_account\": \"324322432\",\n                \"secret_key\": \"ddfdfdf\"\n            },\n            \"shipping_code\": \"SF24234234234234\"\n        }\n    ],\n    \"user_id\": 1,\n    \"delivery_req\": {\n        \"is_center_delivery\": true,\n        \"is_pickup_self\": true\n    },\n    \"order_channel\": \"1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsNewCreateOrderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"ebill_infos\": [\n            {\n                \"extra_resp\": \"1\",\n                \"order_channel\": \"c\",\n                \"order_id\": \"202011809\",\n                \"pack_id\": \"1\",\n                \"package_center_code\": \"1\",\n                \"package_center_name\": \"1\",\n                \"shipping_code\": \"34343\",\n                \"short_address_code\": \"1\",\n                \"short_address_name\": \"1\",\n                \"sort_code\": \"400-W00 000\",\n                \"sub_waybill_codes\": \"13,434,556\",\n                \"track_no\": \"202011809\"\n            }\n        ],\n        \"err_infos\": [\n            {\n                \"err_code\": \"10701\",\n                \"err_msg\": \"电子面单库存不足\",\n                \"order_channel\": \"2\",\n                \"order_id\": \"1\",\n                \"pack_id\": \"1\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsTemplateListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"template_data\": [\n            {\n                \"logistics_code\": \"1\",\n                \"template_infos\": [\n                    {\n                        \"perview_url\": \"1\",\n                        \"template_code\": \"1\",\n                        \"template_id\": \"1\",\n                        \"template_name\": \"1\",\n                        \"template_type\": \"1\",\n                        \"template_url\": \"1\",\n                        \"version\": \"1\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsTrackNoRouteDetailRequest.json",
    "content": "﻿{\n    \"logistics_code\": \"shentong\",\n    \"track_no\": \"78393454\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Logistics/LogisticsTrackNoRouteDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"route_node_list\": [\n            {\n                \"content\": \"配送中\",\n                \"timestamp\": \"161324234234\",\n                \"state\": \"1\",\n                \"state_description\": \"配送\",\n                \"site_name\": \"北京\"\n            }\n        ],\n        \"track_info\": {\n            \"track_no\": \"234234234\",\n            \"express\": \"ssss\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialCreateFolderRequest.json",
    "content": "﻿{\n    \"name\": \"商品图片素材\",\n    \"parent_id\": \"7000254886243811628\",\n    \"type\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialCreateFolderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"object_id\": \"7000254886243811628\",\n        \"parent_id\": \"7000254886243746092\",\n        \"name\": \"商品图片素材\",\n        \"type\": 0\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialDeleteFolderRequest.json",
    "content": "﻿{\n    \"object_ids\": [\"123\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialDeleteFolderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"success_ids\": [\"123\"],\n        \"failed_map\": {\n            \"7001012973925941548\": {\n                \"code\": 20001,\n                \"msg\": \"文件夹id不存在\"\n            }\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialEditFolderRequest.json",
    "content": "﻿{\n    \"object_id\": \"70029608590225411001510\",\n    \"name\": \"新的文件夹名称\",\n    \"to_parent_id\": \"70029608590225411001510\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialGetFolderInformationRequest.json",
    "content": "﻿{\n    \"object_id\": \"70029608590225411001510\",\n    \"page_num\": 1,\n    \"page_size\": 50\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialGetFolderInformationResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"folder_info\": {\n            \"object_id\": \"70032596029638413241510\",\n            \"name\": \"我是文件夹\",\n            \"folder_object_type\": 0,\n            \"operate_status\": 1,\n            \"child_folder\": [\n                {\n                    \"object_id\": \"70032596029638413241510\",\n                    \"name\": \"我是文件夹\",\n                    \"folder_object_type\": 0,\n                    \"operate_status\": 1\n                }\n            ],\n            \"child_material\": [\n                {\n                    \"object_id\": \"7000291764753940780\",\n                    \"parent_id\": \"6999834643465781548\",\n                    \"origin_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n                    \"byte_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n                    \"material_name\": \"素材名\",\n                    \"material_type\": \"photo\",\n                    \"operate_status\": 1,\n                    \"audit_status\": 1,\n                    \"audit_refuse_reason\": \"不符合\",\n                    \"size\": 1234,\n                    \"create_time\": \"2021-08-12 12:00:12\",\n                    \"update_time\": \"2021-08-12 12:00:12\",\n                    \"delete_time\": \"2021-08-12 12:00:12\",\n                    \"photoInfo\": {\n                        \"height\": 123,\n                        \"width\": 123,\n                        \"format\": \"jpg\"\n                    },\n                    \"videoInfo\": {\n                        \"duration\": 1.1,\n                        \"format\": \"mp3\"\n                    }\n                }\n            ]\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialMoveFolderToRecyleBinRequest.json",
    "content": "﻿{\n    \"object_ids\": [\"70032596029638413241510\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialMoveFolderToRecyleBinResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"success_ids\": [\"70032596029638413241510\"],\n        \"failed_map\": {}\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialSearchFolderRequest.json",
    "content": "﻿{\n    \"object_id\": \"70032596029638413241510\",\n    \"operate_status\": [0, 1, 4],\n    \"create_time_start\": \"2020-09-03 18:28:01\",\n    \"create_time_end\": \"2020-09-03 18:28:01\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Folder/MaterialSearchFolderResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"folder_info_list\": [\n            {\n                \"object_id\": \"70032596029638413241510\",\n                \"parent_id\": \"70032596029638413241510\",\n                \"name\": \"我是文件夹\",\n                \"folder_object_type\": 0,\n                \"operate_status\": 1,\n                \"create_time\": \"2020-09-03 18:28:01\",\n                \"update_time\": \"2020-09-03 18:28:01\",\n                \"delete_time\": \"2020-09-03 18:28:01\"\n            }\n        ],\n        \"total\": 12\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialDeleteMaterialRequest.json",
    "content": "﻿{\n    \"object_ids\": [\"123\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialDeleteMaterialResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"success_ids\": [\"123\"],\n        \"failed_map\": {}\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialEditMaterialRequest.json",
    "content": "﻿{\n    \"object_id\": \"7000291764753940780\",\n    \"material_name\": \"素材名称\",\n    \"to_parent_id\": \"6999833978756661548\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialQueryMaterialDetailRequest.json",
    "content": "﻿{\n    \"object_id\": \"7000291764753940780\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialQueryMaterialDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"material_info\": {\n            \"object_id\": \"7000291764753940780\",\n            \"parent_id\": \"6999834643465781548\",\n            \"origin_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n            \"byte_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n            \"material_name\": \"素材名\",\n            \"material_type\": \"photo\",\n            \"operate_status\": 1,\n            \"audit_status\": 1,\n            \"audit_refuse_reason\": \"不符合\",\n            \"size\": 1234,\n            \"create_time\": \"2021-08-12 12:00:12\",\n            \"update_time\": \"2021-08-12 12:00:12\",\n            \"delete_time\": \"2021-08-12 12:00:12\",\n            \"photoInfo\": {\n                \"height\": 123,\n                \"width\": 123,\n                \"format\": \"jpg\"\n            },\n            \"videoInfo\": {\n                \"duration\": 1.1,\n                \"format\": \"mp3\"\n            }\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialSearchMaterialRequest.json",
    "content": "﻿{\n    \"object_id\": \"7000291764753940780\",\n    \"material_type\": [\"photo\"],\n    \"audit_status\": [1, 2, 3, 4],\n    \"operate_status\": [0, 1, 4],\n    \"create_time_start\": \"2012-08-12 12:00:12\",\n    \"create_time_end\": \"2012-08-12 12:00:12\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/Material/MaterialSearchMaterialResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"material_info_list\": [\n            {\n                \"object_id\": \"7000291764753940780\",\n                \"parent_id\": \"6999834643465781548\",\n                \"origin_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n                \"byte_url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n                \"material_name\": \"素材名\",\n                \"material_type\": \"photo\",\n                \"operate_status\": 1,\n                \"audit_status\": 1,\n                \"audit_refuse_reason\": \"不符合\",\n                \"size\": 1234,\n                \"create_time\": \"2021-08-12 12:00:12\",\n                \"update_time\": \"2021-08-12 12:00:12\",\n                \"delete_time\": \"2021-08-12 12:00:12\",\n                \"photoInfo\": {\n                    \"height\": 123,\n                    \"width\": 123,\n                    \"format\": \"jpg\"\n                },\n                \"videoInfo\": {\n                    \"duration\": 1.1,\n                    \"format\": \"mp3\"\n                }\n            }\n        ],\n        \"total\": 12\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/MaterialUploadImageSyncRequest.json",
    "content": "﻿{\n    \"parent_id\": \"70031975314169695161250\",\n    \"url\": \"https://img20.360buyimg.com/imgzone/jfs/t1/203175/6/4153/86338/612edd17Ea02fdaea/c02a036fd3ea62c6.jpg\",\n    \"material_name\": \"图片名称.jpg\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/MaterialUploadImageSyncResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"object_id\": \"7000254886243811628\",\n        \"parent_id\": \"0\",\n        \"is_new\": true,\n        \"audit_status\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/MaterialUploadVideoAsyncRequest.json",
    "content": "﻿{\n    \"parent_id\": \"70031975314169695161250\",\n    \"url\": \"http://tosv.byted.org/obj/ecom-shop-material/ByteSuite%E8%AF%AD%E9%9F%B3%E8%AE%B2%E8%A7%A3.mp4\",\n    \"name\": \"视频\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Material/MaterialUploadVideoAsyncResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"object_id\": \"7000254886243811628\",\n        \"parent_id\": \"0\",\n        \"is_new\": true,\n        \"audit_status\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Member/MemberBatchUpdateRequest.json",
    "content": "﻿{\n    \"app_id\": \"1\",\n    \"member_info_list\": [\n        {\n            \"open_id\": \"cb7bf7efa6d652046abd2f7d84ee18c1\",\n            \"mobile\": \"15012345678\",\n            \"level\": 1,\n            \"unbind\": true,\n            \"integral\": 100\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Member/MemberSearchListRequest.json",
    "content": "﻿{\n    \"app_id\": \"\",\n    \"page\": 0,\n    \"size\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Member/MemberSearchListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"order_list\": [\n            {\n                \"open_id\": \"\",\n                \"order_id\": \"\"\n            }\n        ],\n        \"total\": null\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OpportunityProduct/OpportunityProductApplyRequest.json",
    "content": "﻿{\n    \"clue_id\": 123,\n    \"product_ids\": [1, 2, 3],\n    \"origin\": \"ISV\",\n    \"type\": \"NEW\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OpportunityProduct/OpportunityProductClueRequest.json",
    "content": "﻿{\n    \"oppty_clue_type\": \"NEW\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OpportunityProduct/OpportunityProductClueResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"url\": \"http://aaa.csv\",\n        \"count\": 123,\n        \"update_date\": \"2021-07-29\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OpportunityProduct/OpportunityProductGetApplyProgressRequest.json",
    "content": "﻿{\n    \"product_id\": 1,\n    \"origin\": \"ISV\",\n    \"type\": \"NEW\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OpportunityProduct/OpportunityProductGetApplyProgressResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"status\": \"NEW_PRODUCT\",\n        \"status_desc\": \"新品\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/CrossBorder/OrderGetCrossBorderFulfillInformationRequest.json",
    "content": "﻿{\n    \"shop_order_id\": \"4795451507070928840\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/CrossBorder/OrderGetCrossBorderFulfillInformationResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"shop_order_id\": \"4790307922954771917\",\n        \"company\": \"顺丰\",\n        \"company_code\": \"shunfeng\",\n        \"sku_order_ids\": [\"4790307922954771917\"],\n        \"logistics_code\": \"SF12345\",\n        \"way_bill_url\": \"https://sf6-ttcdn-tos.pstatp.com/obj/temai/xxx\",\n        \"mark\": \"1\",\n        \"product_num\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchDecryptRequest.json",
    "content": "﻿{\n    \"cipher_infos\": [\n        {\n            \"auth_id\": \"123\",\n            \"cipher_text\": \"待解密密文\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchDecryptResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"decrypt_infos\": [\n            {\n                \"auth_id\": \"123\",\n                \"cipher_text\": \"密文，具体内容参考[数据安全加密对接文档](https://op.jinritemai.com/docs/guide-docs/56/589)\",\n                \"decrypt_text\": \"13117428564\",\n                \"err_no\": 0,\n                \"err_msg\": \"错误描述\"\n            }\n        ],\n        \"custom_err\": {\n            \"err_code\": 0,\n            \"err_msg\": \"错误描述\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchEncryptRequest.json",
    "content": "﻿{\n    \"batch_encrypt_list\": [\n        {\n            \"auth_id\": \"123\",\n            \"plain_text\": \"待加密明文\",\n            \"is_support_index\": true,\n            \"sensitive_type\": 3\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchEncryptResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"encrypt_infos\": [\n            {\n                \"auth_id\": \"123\",\n                \"cipher_text\": \"asdfasdfsasfdasdf\",\n                \"decrypt_text\": \"13117428564\",\n                \"err_no\": 0,\n                \"err_msg\": \"\"\n            }\n        ],\n        \"custom_err\": {\n            \"err_code\": 0,\n            \"err_msg\": \"\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchSearchIndexRequest.json",
    "content": "﻿{\n    \"plain_text_list\": [\n        {\n            \"plain_text\": \"13117428564\",\n            \"encrypt_type\": 3\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchSearchIndexResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"plain_to_encrypt_index_list\": [\n            {\n                \"plain\": \"13117428564\",\n                \"search_index\": \"asdfsadfasdfasdasf\"\n            }\n        ],\n        \"custom_err\": {\n            \"err_code\": 0,\n            \"err_msg\": \"错误描述\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchSensitiveRequest.json",
    "content": "﻿{\n    \"cipher_infos\": [\n        {\n            \"auth_id\": \"123\",\n            \"cipher_text\": \"待脱敏密文\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Encryption/OrderBatchSensitiveResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"decrypt_infos\": [\n            {\n                \"auth_id\": \"123\",\n                \"cipher_text\": \"密文，具体内容参考[数据安全加密对接文档](https://op.jinritemai.com/docs/guide-docs/56/589)\",\n                \"decrypt_text\": \"13117428564\",\n                \"err_no\": 0,\n                \"err_msg\": \"错误描述\"\n            }\n        ],\n        \"custom_err\": {\n            \"err_code\": 0,\n            \"err_msg\": \"错误描述\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Insurance/OrderInsuranceRequest.json",
    "content": "﻿{\n    \"order_id\": \"6496679971677798670\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Insurance/OrderInsuranceResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"policy_info_list\": [\n            {\n                \"ins_policy_no\": \"10202009171446081711854084111\",\n                \"approximate_return_fee\": 1200,\n                \"total_premium\": 60,\n                \"user_premium\": 0,\n                \"merchant_premium\": 60,\n                \"platform_premium\": 0,\n                \"status\": 2,\n                \"appeal_status\": 0,\n                \"claim_status\": 0,\n                \"company_name\": \"中国人民财产保险股份有限公司\",\n                \"is_allow_appeal\": false,\n                \"goods_info_list\": [\n                    {\n                        \"product_name\": \"商品名称\",\n                        \"product_id\": 3436088998672617500,\n                        \"category_id\": \"13-3004-3006\",\n                        \"show_page_url\": \"https://sf1-ttcdn-tos.pstatp.com/obj/temai/6535e88c983f735cabb99f5b00f6212awww800-800\",\n                        \"amount\": 1\n                    }\n                ],\n                \"fail_reason\": \"失败原因\",\n                \"insurance_hotline\": \"400-188-1949转1\",\n                \"premium_status\": 2,\n                \"ins_ensured_time_begin\": \"2020-09-17 14:48:08\",\n                \"ins_ensured_time_end\": \"2020-12-16 14:48:08\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Invoice/OrderInvoiceUploadRequest.json",
    "content": "﻿{\n    \"order_id\": \"4814782476258575939\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/OrderLogisticsAddRequest.json",
    "content": "﻿{\n    \"order_id\": \"4782813149182887526\",\n    \"logistics_id\": 12,\n    \"company\": \"顺丰\",\n    \"company_code\": \"shunfeng\",\n    \"logistics_code\": \"sf1231231231234\",\n    \"is_refund_reject\": false,\n    \"serial_number_list\": [\"546443524543534\", \"646443524543534\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/OrderLogisticsCompanyListResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"id\": 7,\n            \"name\": \"圆通快递\",\n            \"code\": \"yuantong\"\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/OrderLogisticsEditRequest.json",
    "content": "﻿{\n    \"order_id\": \"4782813149182887526\",\n    \"logistics_id\": 12,\n    \"company\": \"顺丰\",\n    \"company_code\": \"shunfeng\",\n    \"logistics_code\": \"sf1231231231234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/Package/OrderLogisticsAddMultiplePackageRequest.json",
    "content": "﻿{\n    \"order_id\": \"4782813149182887526\",\n    \"pack_list\": [\n        {\n            \"shipped_order_info\": [\n                {\n                    \"shipped_order_id\": \"123123\",\n                    \"shipped_num\": 1,\n                    \"shipped_item_ids\": [\"123123\"]\n                }\n            ],\n            \"logistics_id\": 12,\n            \"company\": \"顺丰\",\n            \"company_code\": \"shunfeng\",\n            \"logistics_code\": \"sf1231231231234\"\n        }\n    ],\n    \"request_id\": \"1267250f-8b9d-4d9e-9fad-0cd9629c83de\",\n    \"is_refund_reject\": false,\n    \"serial_number_list\": [\"546443524543534\", \"646443524543534\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/Package/OrderLogisticsAddMultiplePackageResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"pack_list\": [\n            {\n                \"logistics_code\": \"111111111111111\",\n                \"pack_id\": \"4705288465508532862\",\n                \"shipped_order_info\": [\n                    {\n                        \"shipped_item_ids\": [\"123123\"],\n                        \"shipped_num\": \"1\",\n                        \"shipped_order_id\": \"123123\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/Package/OrderLogisticsAddSinglePackageRequest.json",
    "content": "﻿{\n    \"order_id_list\": [\"4782813149182887526\"],\n    \"shipped_order_info\": [\n        {\n            \"shipped_order_id\": \"123123\",\n            \"shipped_num\": 1,\n            \"shipped_item_ids\": [\"123123\"]\n        }\n    ],\n    \"request_id\": \"1267250f-8b9d-4d9e-9fad-0cd9629c83de\",\n    \"logistics_id\": 12,\n    \"company\": \"顺丰\",\n    \"company_code\": \"shunfeng\",\n    \"logistics_code\": \"sf1231231231234\",\n    \"is_refund_reject\": false,\n    \"order_serial_number\": [\n        {\n            \"order_id\": \"4782813149182887526\",\n            \"serial_number_list\": [\"546443524543534\"]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/Package/OrderLogisticsAddSinglePackageResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"pack_id\": \"123123\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Logistics/Package/OrderLogisticsEditByPackageRequest.json",
    "content": "﻿{\n    \"order_id\": \"4782813149182887526\",\n    \"pack_id\": \"23123123\",\n    \"logistics_id\": 12,\n    \"company_code\": \"shunfeng\",\n    \"logistics_code\": \"sf1231231231234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddOrderRemarkRequest.json",
    "content": "﻿{\n    \"order_id\": \"6496679971677798670\",\n    \"remark\": \"这是具体的备注内容\",\n    \"is_add_star\": true,\n    \"star\": \"2\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddSerialNumberRequest.json",
    "content": "﻿{\n    \"order_id\": \"4819248074018981281\",\n    \"serial_number_list\": [\"546443524543534\", \"646443524543534\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddressAppliedSwitchRequest.json",
    "content": "﻿{\n    \"is_allowed\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddressConfirmRequest.json",
    "content": "﻿{\n    \"order_id\": \"3539925204033339668\",\n    \"is_approved\": 1005\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddressModifyRequest.json",
    "content": "﻿{\n    \"order_id\": \"4800612094963473807\",\n    \"post_receiver\": \"周五\",\n    \"post_code\": \"18224267539\",\n    \"post_addr\": {\n        \"province\": {\n            \"id\": \"2784\",\n            \"name\": \"浙江省\"\n        },\n        \"city\": {\n            \"id\": \"2841\",\n            \"name\": \"杭州市\"\n        },\n        \"town\": {\n            \"id\": \"2843\",\n            \"name\": \"西湖区\"\n        },\n        \"street\": {\n            \"id\": \"1023\",\n            \"name\": \"火炬路\"\n        },\n        \"address_detail\": \"蒋村街道双龙街239号西投创智中心1号楼西投创智中心1号楼\",\n        \"land_mark\": \"land\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderAddressSwitchConfigResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"authorized_status\": 0\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderDetailRequest.json",
    "content": "﻿{\n    \"shop_order_id\": \"4782860977949521619\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"shop_order_detail\": {\n            \"app_id\": \"43545454556\",\n            \"appointment_ship_time\": \"1617355413\",\n            \"b_type\": \"1\",\n            \"b_type_desc\": \"抖音\",\n            \"biz\": \"1\",\n            \"biz_desc\": \"鲁班\",\n            \"buyer_words\": \"要xxx\",\n            \"cancel_reason\": \"不想要\",\n            \"channel_payment_no\": \"PAY234532534534\",\n            \"create_time\": \"1617355413\",\n            \"doudian_open_id\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\",\n            \"encrypt_post_receiver\": \"张三\",\n            \"encrypt_post_tel\": \"12345678911\",\n            \"exp_ship_time\": \"1617355413\",\n            \"finish_time\": \"1617355413\",\n            \"logistics_info\": [\n                {\n                    \"added_services\": [\n                        {\n                            \"help_doc\": \"抖音大学介绍地址\",\n                            \"key\": \"VC-WBHOMEDELIVERY\",\n                            \"text\": \"音尊达\",\n                            \"url\": \"http\"\n                        }\n                    ],\n                    \"company\": \"shunfeng\",\n                    \"company_name\": \"顺丰\",\n                    \"delivery_id\": \"shunfeng_3617355413\",\n                    \"product_info\": [\n                        {\n                            \"outer_sku_id\": \"sdfa\",\n                            \"price\": \"1000\",\n                            \"product_count\": \"2\",\n                            \"product_id\": \"3473196049974326153\",\n                            \"product_id_str\": \"3473196049974326153\",\n                            \"product_name\": \"苹果\",\n                            \"sku_id\": \"3254535\",\n                            \"sku_order_id\": \"4781320682406083640\",\n                            \"sku_specs\": [\n                                {\n                                    \"name\": \"颜色\",\n                                    \"value\": \"蓝\"\n                                }\n                            ]\n                        }\n                    ],\n                    \"ship_time\": \"1617355413\",\n                    \"tracking_no\": \"3617355413\"\n                }\n            ],\n            \"main_status\": \"103\",\n            \"main_status_desc\": \"部分支付\",\n            \"modify_amount\": \"-10\",\n            \"modify_post_amount\": \"-1\",\n            \"open_id\": \"23431434\",\n            \"order_amount\": \"600\",\n            \"order_expire_time\": \"1800\",\n            \"order_id\": \"4781320682406083640\",\n            \"order_level\": \"2\",\n            \"order_phase_list\": [\n                {\n                    \"campaign_id\": \"3214324342342\",\n                    \"channel_payment_no\": \"PAY34243247134325\",\n                    \"current_phase\": \"1\",\n                    \"current_phase_status_desc\": \"已开始但未支付\",\n                    \"pay_success\": \"true\",\n                    \"phase_close_time\": \"1617355413\",\n                    \"phase_open_time\": \"1617355413\",\n                    \"phase_order_amount\": \"100\",\n                    \"phase_order_id\": \"4781320682406083640\",\n                    \"phase_pay_amount\": \"100\",\n                    \"phase_pay_time\": \"1617355413\",\n                    \"phase_pay_type\": \"1\",\n                    \"phase_payable_price\": \"100\",\n                    \"phase_post_amount\": \"100\",\n                    \"phase_promotion_amount\": \"100\",\n                    \"phase_sum_amount\": \"100\",\n                    \"sku_order_id\": \"4781320682406083640\",\n                    \"sku_price\": \"100\",\n                    \"total_phase\": \"2\"\n                }\n            ],\n            \"order_status\": \"3\",\n            \"order_status_desc\": \"待支付\",\n            \"order_type\": \"0\",\n            \"order_type_desc\": \"普通订单\",\n            \"pay_amount\": \"500\",\n            \"pay_time\": \"1617355413\",\n            \"pay_type\": \"1\",\n            \"platform_cost_amount\": \"100\",\n            \"post_addr\": {\n                \"city\": {\n                    \"id\": \"110000\",\n                    \"name\": \"市辖区\"\n                },\n                \"encrypt_detail\": \"丹棱街1号\",\n                \"province\": {\n                    \"id\": \"110000\",\n                    \"name\": \"北京市\"\n                },\n                \"street\": {\n                    \"id\": \"110000\",\n                    \"name\": \"中关村街道\"\n                },\n                \"town\": {\n                    \"id\": \"110000\",\n                    \"name\": \"海淀区\"\n                }\n            },\n            \"post_amount\": \"10\",\n            \"post_insurance_amount\": \"10\",\n            \"post_origin_amount\": \"100\",\n            \"post_promotion_amount\": \"100\",\n            \"promotion_amount\": \"1000\",\n            \"promotion_detail\": {\n                \"kol_discount_detail\": {\n                    \"coupon_amount\": \"100\",\n                    \"coupon_info\": [\n                        {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_id\": \"4781320682406\",\n                            \"coupon_meta_id\": \"43543523532\",\n                            \"coupon_name\": \"优惠券\",\n                            \"coupon_type\": \"1\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"full_discount_amount\": \"100\",\n                    \"full_discount_info\": [\n                        {\n                            \"campaign_amount\": \"200\",\n                            \"campaign_id\": \"4781320682406083640\",\n                            \"campaign_name\": \"XXX活动\",\n                            \"campaign_sub_type\": \"1\",\n                            \"campaign_type\": \"150\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"redpack_amount\": \"100\",\n                    \"redpack_info\": [\n                        {\n                            \"redpack_amount\": \"100\",\n                            \"redpack_trans_id\": \"675657456546547\"\n                        }\n                    ],\n                    \"total_amount\": \"200\"\n                },\n                \"platform_discount_detail\": {\n                    \"coupon_amount\": \"100\",\n                    \"coupon_info\": [\n                        {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_id\": \"4781320682406\",\n                            \"coupon_meta_id\": \"43543523532\",\n                            \"coupon_name\": \"优惠券\",\n                            \"coupon_type\": \"1\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"full_discount_amount\": \"100\",\n                    \"full_discount_info\": [\n                        {\n                            \"campaign_amount\": \"200\",\n                            \"campaign_id\": \"4781320682406083640\",\n                            \"campaign_name\": \"XXX活动\",\n                            \"campaign_sub_type\": \"1\",\n                            \"campaign_type\": \"150\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"redpack_amount\": \"100\",\n                    \"redpack_info\": [\n                        {\n                            \"redpack_amount\": \"100\",\n                            \"redpack_trans_id\": \"675657456546547\"\n                        }\n                    ],\n                    \"total_amount\": \"200\"\n                },\n                \"shop_discount_detail\": {\n                    \"coupon_amount\": \"100\",\n                    \"coupon_info\": [\n                        {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_id\": \"4781320682406\",\n                            \"coupon_meta_id\": \"43543523532\",\n                            \"coupon_name\": \"优惠券\",\n                            \"coupon_type\": \"1\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"full_discount_amount\": \"100\",\n                    \"full_discount_info\": [\n                        {\n                            \"campaign_amount\": \"200\",\n                            \"campaign_id\": \"4781320682406083640\",\n                            \"campaign_name\": \"XXX活动\",\n                            \"campaign_sub_type\": \"1\",\n                            \"campaign_type\": \"150\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"total_amount\": \"200\"\n                }\n            },\n            \"promotion_pay_amount\": \"10\",\n            \"promotion_platform_amount\": \"100\",\n            \"promotion_redpack_amount\": \"100\",\n            \"promotion_redpack_platform_amount\": \"100\",\n            \"promotion_redpack_talent_amount\": \"100\",\n            \"promotion_shop_amount\": \"100\",\n            \"promotion_talent_amount\": \"100\",\n            \"seller_remark_stars\": \"1\",\n            \"seller_words\": \"注意XX\",\n            \"serial_number_list\": [\"546443524543534\", \"646443524543534\"],\n            \"ship_time\": \"1617355413\",\n            \"shop_cost_amount\": \"100\",\n            \"shop_id\": \"77977\",\n            \"shop_name\": \"刘好好严选\",\n            \"shop_order_tag_ui\": [\n                {\n                    \"help_doc\": \"帮助文档\",\n                    \"key\": \"标签key\",\n                    \"text\": \"推荐音尊达\"\n                }\n            ],\n            \"sku_order_list\": [\n                {\n                    \"account_list\": {\n                        \"account_info\": [\n                            {\n                                \"account_name\": \"测试\",\n                                \"account_type\": \"1\",\n                                \"encrypt_account_id\": \"15678909876\"\n                            }\n                        ]\n                    },\n                    \"ad_env_type\": \"live\",\n                    \"after_sale_info\": {\n                        \"after_sale_status\": \"6\",\n                        \"after_sale_type\": \"1\",\n                        \"refund_status\": \"1\"\n                    },\n                    \"app_id\": \"43545454556\",\n                    \"appointment_ship_time\": \"1617355413\",\n                    \"author_id\": \"341234\",\n                    \"author_name\": \"XXXX\",\n                    \"b_type\": \"1\",\n                    \"b_type_desc\": \"抖音\",\n                    \"biz\": \"1\",\n                    \"biz_desc\": \"鲁班\",\n                    \"bundle_sku_info\": [\n                        {\n                            \"code\": \"M8-1234-101\",\n                            \"item_num\": \"1\",\n                            \"picture_url\": \"https://tosv.boe.byted.org/obj/temai/ffef8099084aeb514b028ec8357d9b4awww640-640\",\n                            \"product_id\": \"3520562294461467753\",\n                            \"product_name\": \"测试非卖品创建商品\",\n                            \"sku_id\": \"1719024557525047\"\n                        }\n                    ],\n                    \"c_biz\": \"1\",\n                    \"c_biz_desc\": \"小店自卖\",\n                    \"campaign_info\": [\n                        {\n                            \"campaign_amount\": \"200\",\n                            \"campaign_id\": \"4781320682406083640\",\n                            \"campaign_name\": \"XXX活动\",\n                            \"campaign_sub_type\": \"1\",\n                            \"campaign_type\": \"7\",\n                            \"share_discount_cost\": {\n                                \"platform_cost\": \"100\",\n                                \"shop_cost\": \"100\"\n                            }\n                        }\n                    ],\n                    \"cancel_reason\": \"不想要\",\n                    \"card_voucher\": {\n                        \"valid_days\": \"15\",\n                        \"valid_end\": \"1646063999\",\n                        \"valid_start\": \"1641312000\"\n                    },\n                    \"channel_payment_no\": \"PAY234532534534\",\n                    \"cid\": \"43545454556\",\n                    \"code\": \"ahgldjj\",\n                    \"confirm_receipt_time\": \"1617355413\",\n                    \"content_id\": \"43545454556\",\n                    \"create_time\": \"1617355413\",\n                    \"encrypt_post_receiver\": \"张三\",\n                    \"encrypt_post_tel\": \"12345678911\",\n                    \"exp_ship_time\": \"1617355413\",\n                    \"finish_time\": \"1617355413\",\n                    \"first_cid\": \"20005\",\n                    \"fourth_cid\": \"20174\",\n                    \"given_product_type\": \"FREE\",\n                    \"goods_type\": \"1\",\n                    \"has_tax\": \"true\",\n                    \"inventory_list\": [\n                        {\n                            \"count\": \"2\",\n                            \"inventory_type\": \"1\",\n                            \"inventory_type_desc\": \"普通库存\",\n                            \"out_warehouse_id\": \"2343243245\",\n                            \"warehouse_id\": \"32434243432\"\n                        }\n                    ],\n                    \"inventory_type\": \"2\",\n                    \"inventory_type_desc\": \"普通库存\",\n                    \"is_comment\": \"1\",\n                    \"item_num\": \"2\",\n                    \"logistics_receipt_time\": \"1617355413\",\n                    \"main_status\": \"103\",\n                    \"main_status_desc\": \"部分支付\",\n                    \"master_sku_order_id\": \"1\",\n                    \"modify_amount\": \"-10\",\n                    \"modify_post_amount\": \"-1\",\n                    \"need_serial_number\": \"true\",\n                    \"order_amount\": \"600\",\n                    \"order_expire_time\": \"1800\",\n                    \"order_id\": \"4781320682406083640\",\n                    \"order_level\": \"3\",\n                    \"order_status\": \"3\",\n                    \"order_status_desc\": \"待支付\",\n                    \"order_type\": \"0\",\n                    \"order_type_desc\": \"普通订单\",\n                    \"origin_amount\": \"100\",\n                    \"origin_id\": \"43545454556\",\n                    \"out_product_id\": \"432655662343\",\n                    \"out_sku_id\": \"43564553\",\n                    \"out_warehouse_ids\": \"[\\\"49574835439\\\",\\\"954764056\\\"]\",\n                    \"page_id\": \"43545454556\",\n                    \"parent_order_id\": \"4781320682406083640\",\n                    \"pay_amount\": \"500\",\n                    \"pay_time\": \"1617355413\",\n                    \"pay_type\": \"1\",\n                    \"platform_cost_amount\": \"100\",\n                    \"post_addr\": {\n                        \"city\": {\n                            \"id\": \"110000\",\n                            \"name\": \"市辖区\"\n                        },\n                        \"encrypt_detail\": \"丹棱街1号\",\n                        \"province\": {\n                            \"id\": \"110000\",\n                            \"name\": \"北京市\"\n                        },\n                        \"street\": {\n                            \"id\": \"110000\",\n                            \"name\": \"中关村街道\"\n                        },\n                        \"town\": {\n                            \"id\": \"110000\",\n                            \"name\": \"海淀区\"\n                        }\n                    },\n                    \"post_amount\": \"10\",\n                    \"post_insurance_amount\": \"10\",\n                    \"pre_sale_type\": \"1\",\n                    \"product_id\": \"3473196049974326153\",\n                    \"product_id_str\": \"3473196049974326153\",\n                    \"product_name\": \"XX鞋子\",\n                    \"product_pic\": \"https:xxxx\",\n                    \"promotion_amount\": \"1000\",\n                    \"promotion_detail\": {\n                        \"kol_discount_detail\": {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_info\": [\n                                {\n                                    \"coupon_amount\": \"100\",\n                                    \"coupon_id\": \"4781320682406\",\n                                    \"coupon_meta_id\": \"43543523532\",\n                                    \"coupon_name\": \"优惠券\",\n                                    \"coupon_type\": \"1\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"full_discount_amount\": \"100\",\n                            \"full_discount_info\": [\n                                {\n                                    \"campaign_amount\": \"200\",\n                                    \"campaign_id\": \"4781320682406083640\",\n                                    \"campaign_name\": \"XXX活动\",\n                                    \"campaign_sub_type\": \"1\",\n                                    \"campaign_type\": \"150\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"redpack_amount\": \"100\",\n                            \"redpack_info\": [\n                                {\n                                    \"redpack_amount\": \"100\",\n                                    \"redpack_trans_id\": \"675657456546547\"\n                                }\n                            ],\n                            \"total_amount\": \"200\"\n                        },\n                        \"platform_discount_detail\": {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_info\": [\n                                {\n                                    \"coupon_amount\": \"100\",\n                                    \"coupon_id\": \"4781320682406\",\n                                    \"coupon_meta_id\": \"43543523532\",\n                                    \"coupon_name\": \"优惠券\",\n                                    \"coupon_type\": \"1\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"full_discount_amount\": \"100\",\n                            \"full_discount_info\": [\n                                {\n                                    \"campaign_amount\": \"200\",\n                                    \"campaign_id\": \"4781320682406083640\",\n                                    \"campaign_name\": \"XXX活动\",\n                                    \"campaign_sub_type\": \"1\",\n                                    \"campaign_type\": \"150\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"redpack_amount\": \"100\",\n                            \"redpack_info\": [\n                                {\n                                    \"redpack_amount\": \"100\",\n                                    \"redpack_trans_id\": \"675657456546547\"\n                                }\n                            ],\n                            \"total_amount\": \"200\"\n                        },\n                        \"shop_discount_detail\": {\n                            \"coupon_amount\": \"100\",\n                            \"coupon_info\": [\n                                {\n                                    \"coupon_amount\": \"100\",\n                                    \"coupon_id\": \"4781320682406\",\n                                    \"coupon_meta_id\": \"43543523532\",\n                                    \"coupon_name\": \"优惠券\",\n                                    \"coupon_type\": \"1\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"full_discount_amount\": \"100\",\n                            \"full_discount_info\": [\n                                {\n                                    \"campaign_amount\": \"200\",\n                                    \"campaign_id\": \"4781320682406083640\",\n                                    \"campaign_name\": \"XXX活动\",\n                                    \"campaign_sub_type\": \"1\",\n                                    \"campaign_type\": \"150\",\n                                    \"share_discount_cost\": {\n                                        \"platform_cost\": \"100\",\n                                        \"shop_cost\": \"100\"\n                                    }\n                                }\n                            ],\n                            \"total_amount\": \"200\"\n                        }\n                    },\n                    \"promotion_pay_amount\": \"10\",\n                    \"promotion_platform_amount\": \"100\",\n                    \"promotion_redpack_amount\": \"100\",\n                    \"promotion_redpack_platform_amount\": \"100\",\n                    \"promotion_redpack_talent_amount\": \"100\",\n                    \"promotion_shop_amount\": \"100\",\n                    \"promotion_talent_amount\": \"100\",\n                    \"receive_type\": \"1\",\n                    \"reduce_stock_type\": \"1\",\n                    \"reduce_stock_type_desc\": \"下单减库存\",\n                    \"relation_order\": {\n                        \"relation_order_id\": \"1234567\",\n                        \"write_off_no\": \"xxxx\"\n                    },\n                    \"room_id\": \"435454545\",\n                    \"room_id_str\": \"1473196049974326153\",\n                    \"second_cid\": \"20174\",\n                    \"send_pay\": \"1\",\n                    \"send_pay_desc\": \"鲁班广告\",\n                    \"ship_time\": \"1617355413\",\n                    \"shop_cost_amount\": \"100\",\n                    \"sku_id\": \"3254535\",\n                    \"sku_order_tag_ui\": [\n                        {\n                            \"extra\": \"{\\\"key\\\":\\\"value\\\"}\",\n                            \"help_doc\": \"https://school.jinritemai.com/doudian/web/article/101835?from=shop_article\",\n                            \"hover_text\": \"该商品需要送到质检中心，质检完成后发给用户\",\n                            \"key\": \"pre_sale_label\",\n                            \"sort\": \"1\",\n                            \"tag_type\": \"orange\",\n                            \"text\": \"全款预售\"\n                        }\n                    ],\n                    \"source_platform\": \"XXX\",\n                    \"spec\": [\n                        {\n                            \"name\": \"颜色\",\n                            \"value\": \"蓝\"\n                        }\n                    ],\n                    \"sub_b_type\": \"1\",\n                    \"sub_b_type_desc\": \"app\",\n                    \"sum_amount\": \"200\",\n                    \"supplier_id\": \"fsgfgsdg\",\n                    \"theme_type\": \"1\",\n                    \"theme_type_desc\": \"直播间\",\n                    \"third_cid\": \"20174\",\n                    \"trade_type\": \"1\",\n                    \"trade_type_desc\": \"拼团\",\n                    \"update_time\": \"1617355413\",\n                    \"video_id\": \"43545454556\",\n                    \"warehouse_ids\": \"[\\\"49574835439\\\",\\\"954764056\\\"]\",\n                    \"writeoff_info\": [\n                        {\n                            \"verify_order_id\": \"1234567\",\n                            \"writeoff_expire_time\": \"1617355413\",\n                            \"writeoff_no\": \"xxxx\",\n                            \"writeoff_no_mask\": \"Te****1168\",\n                            \"writeoff_start_time\": \"1617355413\",\n                            \"writeoff_status\": \"3\",\n                            \"writeoff_status_desc\": \"已使用\",\n                            \"writeoff_total_count\": \"2\",\n                            \"writtenoff_count\": \"1\"\n                        }\n                    ]\n                }\n            ],\n            \"sub_b_type\": \"1\",\n            \"sub_b_type_desc\": \"小程序\",\n            \"total_promotion_amount\": \"100\",\n            \"trade_type\": \"1\",\n            \"trade_type_desc\": \"拼团\",\n            \"update_time\": \"1617355413\",\n            \"user_id_info\": {\n                \"encrypt_id_card_name\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\",\n                \"encrypt_id_card_no\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\"\n            }\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\",\n    \"code\": 10000,\n    \"msg\": \"success\",\n    \"sub_code\": \"\",\n    \"sub_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderSearchListRequest.json",
    "content": "﻿{\n    \"combine_status\": {\n        \"order_status\": \"1,2\",\n        \"main_status\": \"1,103\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderSearchListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"page\": 0,\n        \"total\": 1000,\n        \"size\": 20,\n        \"shop_order_list\": [\n            {\n                \"shop_id\": 77977,\n                \"shop_name\": \"刘好好严选\",\n                \"open_id\": \"23431434\",\n                \"order_id\": \"4781320682406083640\",\n                \"order_level\": 2,\n                \"biz\": 1,\n                \"biz_desc\": \"鲁班\",\n                \"order_type\": 0,\n                \"order_type_desc\": \"普通订单\",\n                \"trade_type\": 1,\n                \"trade_type_desc\": \"拼团\",\n                \"order_status\": 3,\n                \"order_status_desc\": \"待支付\",\n                \"main_status\": 103,\n                \"main_status_desc\": \"部分支付\",\n                \"pay_time\": 1617355413,\n                \"order_expire_time\": 1800,\n                \"finish_time\": 1617355413,\n                \"create_time\": 1617355413,\n                \"update_time\": 1617355413,\n                \"cancel_reason\": \"不想要\",\n                \"buyer_words\": \"要xxx\",\n                \"seller_words\": \"注意XX\",\n                \"b_type\": 1,\n                \"b_type_desc\": \"抖音\",\n                \"sub_b_type\": 1,\n                \"sub_b_type_desc\": \"小程序\",\n                \"app_id\": \"43545454556\",\n                \"pay_type\": 1,\n                \"channel_payment_no\": \"PAY234532534534\",\n                \"order_amount\": 600,\n                \"pay_amount\": 500,\n                \"post_amount\": 10,\n                \"post_insurance_amount\": 10,\n                \"modify_amount\": -10,\n                \"modify_post_amount\": -1,\n                \"promotion_amount\": 1000,\n                \"promotion_shop_amount\": 100,\n                \"promotion_platform_amount\": 100,\n                \"shop_cost_amount\": 100,\n                \"platform_cost_amount\": 100,\n                \"promotion_talent_amount\": 100,\n                \"promotion_pay_amount\": 10,\n                \"encrypt_post_tel\": \"12345678911\",\n                \"encrypt_post_receiver\": \"张三\",\n                \"post_addr\": {\n                    \"province\": {\n                        \"name\": \"北京市\",\n                        \"id\": \"110000\"\n                    },\n                    \"city\": {\n                        \"name\": \"市辖区\",\n                        \"id\": \"110000\"\n                    },\n                    \"town\": {\n                        \"name\": \"海淀区\",\n                        \"id\": \"110000\"\n                    },\n                    \"street\": {\n                        \"name\": \"中关村街道\",\n                        \"id\": \"110000\"\n                    },\n                    \"encrypt_detail\": \"丹棱街1号\"\n                },\n                \"exp_ship_time\": 1617355413,\n                \"ship_time\": 1617355413,\n                \"logistics_info\": [\n                    {\n                        \"tracking_no\": \"3617355413\",\n                        \"company\": \"shunfeng\",\n                        \"ship_time\": 1617355413,\n                        \"delivery_id\": \"shunfeng_3617355413\",\n                        \"company_name\": \"顺丰\",\n                        \"product_info\": [\n                            {\n                                \"product_name\": \"苹果\",\n                                \"price\": 1000,\n                                \"outer_sku_id\": \"sdfa\",\n                                \"sku_id\": 3254535,\n                                \"sku_specs\": [\n                                    {\n                                        \"name\": \"颜色\",\n                                        \"value\": \"蓝\"\n                                    }\n                                ],\n                                \"product_count\": 2,\n                                \"product_id\": 3473196049974326300,\n                                \"sku_order_id\": \"4781320682406083640\"\n                            }\n                        ]\n                    }\n                ],\n                \"sku_order_list\": [\n                    {\n                        \"order_id\": \"4781320682406083640\",\n                        \"parent_order_id\": \"4781320682406083640\",\n                        \"order_level\": 3,\n                        \"biz\": 1,\n                        \"biz_desc\": \"鲁班\",\n                        \"order_type\": 0,\n                        \"order_type_desc\": \"普通订单\",\n                        \"trade_type\": 1,\n                        \"trade_type_desc\": \"拼团\",\n                        \"order_status\": 3,\n                        \"order_status_desc\": \"待支付\",\n                        \"main_status\": 103,\n                        \"main_status_desc\": \"部分支付\",\n                        \"pay_time\": 1617355413,\n                        \"order_expire_time\": 1800,\n                        \"finish_time\": 1617355413,\n                        \"create_time\": 1617355413,\n                        \"update_time\": 1617355413,\n                        \"cancel_reason\": \"不想要\",\n                        \"b_type\": 1,\n                        \"b_type_desc\": \"抖音\",\n                        \"sub_b_type\": 1,\n                        \"sub_b_type_desc\": \"小程序\",\n                        \"send_pay\": 1,\n                        \"send_pay_desc\": \"鲁班广告\",\n                        \"author_id\": 324234453,\n                        \"author_name\": \"XXXX\",\n                        \"theme_type\": \"1\",\n                        \"theme_type_desc\": \"直播间\",\n                        \"app_id\": \"43545454556\",\n                        \"room_id\": 43545454556,\n                        \"content_id\": \"43545454556\",\n                        \"video_id\": \"43545454556\",\n                        \"origin_id\": \"43545454556\",\n                        \"cid\": 43545454556,\n                        \"c_biz\": 1,\n                        \"c_biz_desc\": \"鲁班广告\",\n                        \"page_id\": 43545454556,\n                        \"pay_type\": 1,\n                        \"channel_payment_no\": \"PAY234532534534\",\n                        \"order_amount\": 600,\n                        \"pay_amount\": 500,\n                        \"post_insurance_amount\": 10,\n                        \"modify_amount\": -10,\n                        \"modify_post_amount\": -1,\n                        \"promotion_amount\": 1000,\n                        \"promotion_shop_amount\": 100,\n                        \"promotion_platform_amount\": 100,\n                        \"shop_cost_amount\": 100,\n                        \"platform_cost_amount\": 100,\n                        \"promotion_talent_amount\": 100,\n                        \"promotion_pay_amount\": 10,\n                        \"code\": \"djfafj\",\n                        \"encrypt_post_tel\": \"12345678911\",\n                        \"encrypt_post_receiver\": \"张三\",\n                        \"post_addr\": {\n                            \"province\": {\n                                \"name\": \"北京市\",\n                                \"id\": \"110000\"\n                            },\n                            \"city\": {\n                                \"name\": \"市辖区\",\n                                \"id\": \"110000\"\n                            },\n                            \"town\": {\n                                \"name\": \"海淀区\",\n                                \"id\": \"110000\"\n                            },\n                            \"street\": {\n                                \"name\": \"中关村街道\",\n                                \"id\": \"110000\"\n                            },\n                            \"encrypt_detail\": \"丹棱街1号\"\n                        },\n                        \"exp_ship_time\": 1617355413,\n                        \"ship_time\": 1617355413,\n                        \"logistics_receipt_time\": 1617355413,\n                        \"confirm_receipt_time\": 1617355413,\n                        \"goods_type\": 1,\n                        \"product_id\": 3473196049974326300,\n                        \"sku_id\": 3254535,\n                        \"spec\": [\n                            {\n                                \"name\": \"颜色\",\n                                \"value\": \"蓝\"\n                            }\n                        ],\n                        \"first_cid\": 20005,\n                        \"second_cid\": 20174,\n                        \"third_cid\": 20174,\n                        \"fourth_cid\": 20174,\n                        \"out_sku_id\": \"43564553\",\n                        \"supplier_id\": \"fsgfgsdg\",\n                        \"out_product_id\": \"432655662343\",\n                        \"origin_amount\": 100,\n                        \"has_tax\": true,\n                        \"item_num\": 2,\n                        \"sum_amount\": 200,\n                        \"source_platform\": \"XXX\",\n                        \"product_pic\": \"https:xxxxx\",\n                        \"is_comment\": 1,\n                        \"product_name\": \"衣服\",\n                        \"inventory_list\": [\n                            {\n                                \"warehouse_id\": \"3141234234324\",\n                                \"out_warehouse_id\": \"3254234234234\",\n                                \"inventory_type\": 1,\n                                \"inventory_type_desc\": \"普通库存\",\n                                \"count\": 2\n                            }\n                        ],\n                        \"post_amount\": 1,\n                        \"pre_sale_type\": 1,\n                        \"after_sale_info\": {\n                            \"after_sale_status\": 6,\n                            \"after_sale_type\": 1,\n                            \"refund_status\": 1\n                        },\n                        \"promotion_redpack_amount\": 100,\n                        \"promotion_redpack_platform_amount\": 100,\n                        \"promotion_redpack_talent_amount\": 100,\n                        \"receive_type\": 1\n                    }\n                ],\n                \"seller_remark_stars\": 1,\n                \"order_phase_list\": [\n                    {\n                        \"phase_order_id\": \"4781320682406083640\",\n                        \"total_phase\": 2,\n                        \"current_phase\": 1,\n                        \"pay_success\": true,\n                        \"sku_order_id\": \"4781320682406083640\",\n                        \"campaign_id\": 3214324342342,\n                        \"phase_payable_price\": 100,\n                        \"phase_pay_type\": 1,\n                        \"phase_open_time\": 1617355413,\n                        \"phase_pay_time\": 1617355413,\n                        \"phase_close_time\": 1617355413,\n                        \"channel_payment_no\": \"PAY34243247134325\",\n                        \"phase_order_amount\": 100,\n                        \"phase_sum_amount\": 100,\n                        \"phase_post_amount\": 100,\n                        \"phase_pay_amount\": 100,\n                        \"phase_promotion_amount\": 100,\n                        \"current_phase_status_desc\": \"已开始但未支付\",\n                        \"sku_price\": 100\n                    }\n                ],\n                \"doudian_open_id\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\",\n                \"serial_number_list\": [\"546443524543534\", \"646443524543534\"],\n                \"promotion_redpack_amount\": 100,\n                \"promotion_redpack_platform_amount\": 100,\n                \"promotion_redpack_talent_amount\": 100,\n                \"user_id_info\": {\n                    \"encrypt_id_card_no\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\",\n                    \"encrypt_id_card_name\": \"#zuLyd4U4J3p+czzXkwg+ZQ673h7KTcrKOddb5iPGAAE0K3MYJmgXEXof9LDtoScAfMKvdVRqpAL4CEI3SrLwYATIzTF9Qw==\"\n                }\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderUpdateOrderAmountRequest.json",
    "content": "﻿{\n    \"pid\": \"6496679971677798670\",\n    \"update_detail\": {\n        \"list\": [\n            {\n                \"order_id\": \"241321431243214321\",\n                \"discount_amount\": \"2\"\n            },\n            {\n                \"order_id\": \"241321431243214321\",\n                \"discount_amount\": \"2\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/OrderUpdatePostAmountRequest.json",
    "content": "﻿{\n    \"pid\": \"6496679971677798670\",\n    \"post_amount\": 200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Service/OrderGetServiceListRequest.json",
    "content": "﻿{\n    \"status\": 0,\n    \"order\": \"ASC\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Service/OrderGetServiceListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"list\": [\n            {\n                \"create_time\": \"2020-12-08 17:01:05\",\n                \"detail\": \"服务测试2-商家回复前\\n\",\n                \"id\": 10884357,\n                \"operate_status\": 100,\n                \"operate_status_desc\": \"已关闭\",\n                \"order_id\": \"4738008402565375458\",\n                \"reply\": \"我再来狡辩一次\",\n                \"reply_time\": \"2020-12-09 13:34:55\",\n                \"service_type\": 3,\n                \"shop_id\": 77977,\n                \"update_time\": \"2020-12-09 13:34:55\"\n            },\n            {\n                \"create_time\": \"2020-12-08 17:00:54\",\n                \"detail\": \"服务测试\",\n                \"id\": 10884339,\n                \"operate_status\": 100,\n                \"operate_status_desc\": \"已关闭\",\n                \"order_id\": 4738008402565375458,\n                \"reply\": \"啦啦啦啦\",\n                \"reply_time\": \"2020-12-08 17:05:43\",\n                \"service_type\": 3,\n                \"shop_id\": 77977,\n                \"update_time\": \"2020-12-08 17:05:43\"\n            }\n        ],\n        \"total\": 2\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Service/OrderReplyServiceRequest.json",
    "content": "﻿{\n    \"id\": 123,\n    \"reply\": \"哈哈哈\",\n    \"evidence\": \"img_url1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Service/OrderServiceDetailRequest.json",
    "content": "﻿{\n    \"service_id\": \"123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Service/OrderServiceDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"detail\": {\n            \"close_detail\": \"\",\n            \"close_time\": \"\",\n            \"create_time\": \"2020-11-24 17:57:51\",\n            \"detail\": \"阿迪锅还是个打瞌睡肯德基萨德好久撒1\",\n            \"evidence_required\": 0,\n            \"expiration_time\": \"2020-11-25 17:57:51\",\n            \"first_reply_time\": \"2020-11-26 14:10:53\",\n            \"id\": 10057242,\n            \"img_list\": [],\n            \"is_reject\": 0,\n            \"operate_status\": 10,\n            \"operate_status_desc\": \"审核中\",\n            \"order_id\": 4733127198026678040,\n            \"proof_demo\": \"\",\n            \"reject_detail\": \"\",\n            \"reject_time\": \"\",\n            \"reply\": \"283883\",\n            \"reply_time\": \"2020-11-26 14:10:53\",\n            \"service_type\": 3,\n            \"shop_id\": 77977,\n            \"update_time\": \"2020-11-26 14:10:53\"\n        },\n        \"logs\": [\n            {\n                \"close_detail\": \"\",\n                \"content\": \"回复内容：283883\",\n                \"deal_time\": \"24小时\",\n                \"img_list\": [],\n                \"operate_name\": \"商家\",\n                \"reject_detail\": \"\",\n                \"reply_detail\": \"283883\",\n                \"service_detail\": \"阿迪锅还是个打瞌睡肯德基萨德好久撒1\",\n                \"service_log_type\": 2\n            },\n            {\n                \"close_detail\": \"\",\n                \"content\": \"关联订单号：4733127198026678040\\n服务单类型:售后服务\\n服务说明:阿迪锅还是个打瞌睡肯德基萨德好久撒1\\n商家处理时长:24小时\",\n                \"deal_time\": \"24小时\",\n                \"img_list\": [],\n                \"operate_name\": \"平台客服\",\n                \"reject_detail\": \"\",\n                \"reply_detail\": \"\",\n                \"service_detail\": \"阿迪锅还是个打瞌睡肯德基萨德好久撒1\",\n                \"service_log_type\": 1\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderDownloadSettleItemToShopRequest.json",
    "content": "﻿{\n    \"start_time\": \"2021-02-01 17:06:49\",\n    \"end_time\": \"2021-03-21 17:06:49\",\n    \"time_type\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderDownloadSettleItemToShopResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": \"100000\",\n        \"code_msg\": \"success\",\n        \"download_id\": \"DL202108191056192174226975\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderDownloadToShopRequest.json",
    "content": "﻿{\n    \"download_id\": \"DL202108191056192174226975\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderDownloadToShopResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": \"100000\",\n        \"code_msg\": \"success\",\n        \"url\": \"https://lf6-tos-bill-center-sign.bytetos.com/ecom-paysettleinfo/data/download/item/DL202108191056192174226975.csv?x-expires=1629345425&x-signature=iaiLmiwJbc%2FMNKFrS6RaHzbdNwU%3D\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderGetSettleBillDetailRequest.json",
    "content": "﻿{\n    \"time_type\": 1,\n    \"start_time\": \"2020-08-21 00:00:00\",\n    \"end_time\": \"2020-09-10 00:00:00\",\n    \"order_id\": \"4698288501112512351\",\n    \"product_id\": 3430924117862311167,\n    \"pay_type\": 0,\n    \"flow_type\": 0,\n    \"page\": 0,\n    \"size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderGetSettleBillDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"code\": \"100000\",\n        \"code_msg\": \"SUCCESS\",\n        \"data\": [\n            {\n                \"actual_author_coupon\": \"0\",\n                \"actual_pay_promotion\": \"0\",\n                \"actual_platform_coupon\": \"0\",\n                \"actual_subsidy_amount\": \"0\",\n                \"author_coupon\": \"0\",\n                \"colonel_service_fee\": \"0\",\n                \"commission\": \"0\",\n                \"flow_type\": \"1\",\n                \"flow_type_desc\": \"广告\",\n                \"good_learn_channel_fee\": \"0\",\n                \"goods_count\": \"10\",\n                \"order_id\": \"4778345176320227200\",\n                \"order_time\": \"2021-04-07 11:05:56\",\n                \"pay_promotion\": \"0\",\n                \"pay_type\": \"1\",\n                \"pay_type_desc\": \"支付宝\",\n                \"phase_cnt\": \"2\",\n                \"phase_id\": \"1\",\n                \"phase_order_no\": \"1232\",\n                \"platform_coupon\": \"0\",\n                \"platform_service_fee\": \"950\",\n                \"post_amount\": \"0\",\n                \"product_id\": \"3461567267249244016\",\n                \"profit\": \"950\",\n                \"real_pay_amount\": \"0\",\n                \"refund\": \"0\",\n                \"request_no\": \"6945807072718045454\",\n                \"settle_amount\": \"950\",\n                \"settle_time\": \"2021-05-17 11:05:56\",\n                \"settled_pay_amount\": \"0\",\n                \"shop_coupon\": \"0\",\n                \"shop_id\": \"12345\",\n                \"shop_order_id\": \"4778345176320227200\",\n                \"shop_refund_loss\": \"0\",\n                \"total_amount\": \"0\",\n                \"total_goods_amount\": \"0\",\n                \"total_income\": \"950\",\n                \"total_outcome\": \"0\",\n                \"trade_type\": \"0\",\n                \"trade_type_desc\": \"已结算\"\n            }\n        ],\n        \"page\": \"0\",\n        \"size\": \"0\",\n        \"total_cnt\": \"0\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderSettleRequest.json",
    "content": "﻿{\n    \"time_type\": 1,\n    \"start_time\": \"2020-08-21 00:00:00\",\n    \"end_time\": \"2020-09-10 00:00:00\",\n    \"order_id\": \"4698288501112512351\",\n    \"product_id\": 3430924117862311167,\n    \"pay_type\": 0,\n    \"flow_type\": 0,\n    \"page\": 0,\n    \"size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Order/Settle/OrderSettleResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"data\": [\n            {\n                \"order_info\": {\n                    \"shop_order_id\": \"4787693795403838870\",\n                    \"order_id\": \"4707186553290011111\",\n                    \"create_time\": \"2020-08-21 12:23:21\",\n                    \"product_id\": \"3435006789295412728\",\n                    \"phase_order_no\": \"\",\n                    \"phase_cnt\": 1,\n                    \"phase_id\": 1\n                },\n                \"settle_info\": {\n                    \"settle_time\": \"2020-08-21 15:23:21\",\n                    \"pay_type\": \"1\",\n                    \"flow_type\": \"1\",\n                    \"settle_amount\": 97\n                },\n                \"income_info\": {\n                    \"pay_amount\": 102,\n                    \"platform_coupon\": 0,\n                    \"pay_promotion_amount\": 0\n                },\n                \"outcome_info\": {\n                    \"order_refund\": 0,\n                    \"platform_service_fee\": 5,\n                    \"author_commission\": 0,\n                    \"good_learn_channel_fee\": 0\n                }\n            }\n        ],\n        \"total\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OrderCode/OrderCodeBatchGetOrderCodeByShopRequest.json",
    "content": "﻿{\n    \"order_ids\": [4652554264337710006, 4652998694668485077]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OrderCode/OrderCodeBatchGetOrderCodeByShopResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"batch_data\": [\n            {\n                \"order_id\": 4817027636051905000,\n                \"order_code\": \"0067108864\"\n            }\n        ],\n        \"delivery_type\": 0,\n        \"ship_type\": 3\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OrderCode/OrderCodeDownloadOrderCodeByShopRequest.json",
    "content": "﻿{\n    \"order_id\": 4652554264338243781\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OrderCode/OrderCodeDownloadOrderCodeByShopResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"is_success\": \"SUCCESS\",\n        \"error_desc\": \"找不到对应订单\",\n        \"delivery_type\": 0,\n        \"ship_type\": 1,\n        \"order_code\": \"0704798730\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/OrderCode/OrderCodeERPShopBindOrderCodeRequest.json",
    "content": "﻿{\n    \"shop_package_id\": 6941730766905180453,\n    \"delivery_type\": 0,\n    \"ship_type\": 1,\n    \"order_list\": [\n        {\n            \"order_id\": 4782860977949521619,\n            \"order_code\": \"0822597409\",\n            \"logistics_code\": \"9595123123\",\n            \"logistics_id\": 12,\n            \"order_detail\": [\n                {\n                    \"combo_id\": 1696289587496995,\n                    \"shop_qty\": 1\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductAddV2Request.json",
    "content": "﻿{\n    \"assoc_ids\": \"3467491139145|34674875632616437|3467474172717417|3468558997446718|346855801779188\",\n    \"brand_id\": \"158470710\",\n    \"category_leaf_id\": \"22226\",\n    \"class_quality\": \"http://img.alicdn.com/imgextra/i3/7298*****055/TB2*****kHFJHXXaatVXa-729863055.jpg\",\n    \"commit\": \"true\",\n    \"delivery_delay_day\": \"2\",\n    \"description\": \"http://img.alicdn.com/imgextra/i3/729*****3055/TB2BR*****kHFJHXXaatVXa-729863055.jpg\",\n    \"discount_price\": \"100\",\n    \"first_cid\": \"1\",\n    \"freight_id\": \"0\",\n    \"market_price\": \"200\",\n    \"mobile\": \"18888888888\",\n    \"name\": \"抖店开放平台自动化测试专用，勿动谢谢123\",\n    \"out_product_id\": \"4655\",\n    \"outer_product_id\": \"atrtrt\",\n    \"pay_type\": \"1\",\n    \"pic\": \"http://img.alicdn.com/imgextra/i1/7298*****55/TB2FG*****FdXXbDnVXa_!!729*****3055.jpg\",\n    \"presell_delay\": \"3\",\n    \"presell_end_time\": \"2020-11-21 18:54:27\",\n    \"presell_type\": \"0\",\n    \"product_format\": \"货号|8888^|2018年秋季^\",\n    \"product_type\": \"0\",\n    \"quality_list\": \"[{\\\"quality_key\\\":\\\"1\\\",\\\"quality_name\\\":\\\"进货凭证1\\\",\\\"quality_attachments\\\":[{\\\"media_type\\\":1,\\\"url\\\":\\\"http://img.alicdn.com/imgextra/i1/729*****3055/TB2FG*****uNjy0FdXXbDnVXa_!!729*****3055.jpg\\\"},{\\\"media_type\\\":1,\\\"url\\\":\\\"http://img.alicdn.com/imgextra/i1/72*****63055/TB2FG*****dXXbDnVXa_!!72*****3055.jpg\\\"}]},{\\\"quality_key\\\":\\\"2\\\",\\\"quality_name\\\":\\\"进货凭证2\\\",\\\"quality_attachments\\\":[{\\\"media_type\\\":1,\\\"url\\\":\\\"http://img.alicdn.com/imgextra/i1/72*****863055/TB2FG49iuO*****0FdXXbDnVXa_!!7298*****3055.jpg\\\"}]}]\",\n    \"recommend_remark\": \"remark...\",\n    \"reduce_type\": \"1\",\n    \"remark\": \"商家备注\",\n    \"second_cid\": \"18\",\n    \"specs\": \"颜色|红色,黄色,蓝色\",\n    \"spec_pic\": \"http://img.alicdn.com/imgextra/i2/72986*****055/TB2mdV0cDXYBeN*****uVXa_!!729*****3055.jpg,http://img.alicdn.com/imgextra/i2/72*****863055/TB2mdV0c*****FrdXXciuVXa_!!729*****3055.jpg,http://img.alicdn.com/imgextra/i2/72*****63055/TB2mdV0cD*****NkHFrdXXciuVXa_!!72986*****055.jpg\",\n    \"spec_prices\": \"[{\\\"code\\\":\\\"16076589515\\\",\\\"out_sku_id\\\":16076590154,\\\"price\\\":110,\\\"spec_detail_name1\\\":\\\"红色\\\",\\\"spec_detail_name2\\\":\\\"\\\",\\\"spec_detail_name3\\\":\\\"\\\",\\\"stock_num\\\":11,\\\"supplier_id\\\":\\\"\\\"},{\\\"spec_detail_name1\\\": \\\"黄色\\\",\\\"stock_num\\\": 11,\\\"price\\\": 100},{\\\"spec_detail_name1\\\": \\\"蓝色\\\",\\\"stock_num\\\": 11,\\\"price\\\": 100}]\",\n    \"spec_name\": \"颜色\",\n    \"supply_7day_return\": \"2\",\n    \"third_cid\": \"258\",\n    \"weight\": \"10\",\n    \"weight_unit\": \"1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductAddV2Response.json",
    "content": "﻿{\n    \"data\": {\n        \"product_id\": 3472490447010721067,\n        \"out_product_id\": 1617004369,\n        \"outer_product_id\": \"1617004369\",\n        \"create_time\": \"2021-03-29 15:52:53\",\n        \"sku\": [\n            {\n                \"sku_id\": 1695459998495774,\n                \"out_sku_id\": 0,\n                \"outer_sku_id\": \"\",\n                \"code\": \"\",\n                \"spec_detail_id1\": 1695459998494734,\n                \"spec_detail_id2\": 1695459998494766,\n                \"spec_detail_id3\": 0\n            },\n            {\n                \"sku_id\": 1695459998495758,\n                \"out_sku_id\": 0,\n                \"outer_sku_id\": \"\",\n                \"code\": \"\",\n                \"spec_detail_id1\": 1695459998447672,\n                \"spec_detail_id2\": 1695459998494766,\n                \"spec_detail_id3\": 0\n            },\n            {\n                \"sku_id\": 1695459998494782,\n                \"out_sku_id\": 123456788,\n                \"outer_sku_id\": \"123456788\",\n                \"code\": \"16076589507w\",\n                \"spec_detail_id1\": 1695459998447656,\n                \"spec_detail_id2\": 1695459998494766,\n                \"spec_detail_id3\": 0\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductDeleteRequest.json",
    "content": "﻿{\n    \"product_id\": \"3539925204033339668\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductDetailRequest.json",
    "content": "﻿{\n    \"product_id\": \"3539925204033339668\",\n    \"show_draft\": \"true\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"product_id\": 3472490447010721067,\n        \"product_id_str\": \"3472490447010721067\",\n        \"out_product_id\": 1617004369,\n        \"outer_product_id\": \"1617004369\",\n        \"name\": \"抖店开放平台自动化测试专用，勿动谢谢\",\n        \"description\": \"<img src=\\\"https://sf6-ttcdn-tos.pstatp.com/obj/temai/93addf0cd27c5ac835767731e33aa1dfe02c5854www750-1336\\\" style=\\\"width:100%;\\\">\",\n        \"market_price\": 200,\n        \"discount_price\": 100,\n        \"status\": 0,\n        \"spec_id\": 1695459998447624,\n        \"check_status\": 2,\n        \"mobile\": \"18888888888\",\n        \"first_cid\": 1305,\n        \"second_cid\": 1399,\n        \"third_cid\": 2523,\n        \"category_detail\": {\n            \"first_cid\": 20077,\n            \"second_cid\": 21129,\n            \"third_cid\": 0,\n            \"fourth_cid\": 0,\n            \"first_cname\": \"教育培训\",\n            \"second_cname\": \"学习卡\",\n            \"third_cname\": \"\",\n            \"fourth_cname\": \"\"\n        },\n        \"pay_type\": 1,\n        \"recommend_remark\": \"remark...\",\n        \"extra\": \"{\\\"category_detail\\\":{\\\"first_cid\\\":20077,\\\"first_cname\\\":\\\"教育培训\\\",\\\"fourth_cid\\\":0,\\\"fourth_cname\\\":\\\"\\\",\\\"is_leaf\\\":true,\\\"second_cid\\\":21129,\\\"second_cname\\\":\\\"学习卡\\\",\\\"third_cid\\\":0,\\\"third_cname\\\":\\\"\\\"},\\\"class_quality\\\":\\\"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800,https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\\\",\\\"is_publish\\\":1,\\\"quality_list\\\":[{\\\"quality_key\\\":\\\"1\\\",\\\"quality_name\\\":\\\"进货凭证1\\\",\\\"quality_attachments\\\":[{\\\"media_type\\\":1,\\\"url\\\":\\\"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\\\"},{\\\"media_type\\\":1,\\\"url\\\":\\\"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\\\"}]},{\\\"quality_key\\\":\\\"2\\\",\\\"quality_name\\\":\\\"进货凭证2\\\",\\\"quality_attachments\\\":[{\\\"media_type\\\":1,\\\"url\\\":\\\"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\\\"}]}],\\\"quality_report\\\":\\\"\\\",\\\"stone\\\":{\\\"remark\\\":\\\"商家备注\\\"}}\",\n        \"create_time\": \"2021-03-29 15:52:52\",\n        \"update_time\": \"2021-03-29T15:52:52+08:00\",\n        \"pic\": [\n            \"https://sf6-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\"\n        ],\n        \"product_format\": \"{\\\"货号\\\":\\\"8888\\\"}\",\n        \"spec_pics\": [\n            {\n                \"spec_detail_id\": 1695459998447656,\n                \"pic\": \"temai/b637513c50b994f4c89de56a17886caca5d6569awww800-800\"\n            }\n        ],\n        \"spec_prices\": [\n            {\n                \"sku_id\": 1695459998495774,\n                \"out_sku_id\": 0,\n                \"outer_sku_id\": \"\",\n                \"spec_detail_ids\": [1695459998494734, 1695459998494766],\n                \"stock_num\": 13,\n                \"price\": 102,\n                \"code\": \"\",\n                \"settlement_price\": 102,\n                \"step_stock_num\": 0,\n                \"prom_stock_num\": 0,\n                \"prom_step_stock_num\": 0,\n                \"spec_detail_id1\": 1695459998494734,\n                \"spec_detail_id2\": 1695459998494766,\n                \"spec_detail_id3\": 0,\n                \"sku_type\": 0,\n                \"supplier_id\": \"\",\n                \"lock_stock_num\": 0,\n                \"lock_step_stock_num\": 0,\n                \"stock_num_map\": null\n            }\n        ],\n        \"specs\": [\n            {\n                \"id\": 1695459998447640,\n                \"spec_id\": 1695459998447624,\n                \"name\": \"颜色\",\n                \"pid\": 0,\n                \"is_leaf\": 0,\n                \"values\": [\n                    {\n                        \"id\": 1695459998447656,\n                        \"spec_id\": 1695459998447624,\n                        \"name\": \"红色\",\n                        \"pid\": 1695459998447640,\n                        \"is_leaf\": 1,\n                        \"status\": 0\n                    },\n                    {\n                        \"id\": 1695459998447672,\n                        \"spec_id\": 1695459998447624,\n                        \"name\": \"黄色\",\n                        \"pid\": 1695459998447640,\n                        \"is_leaf\": 1,\n                        \"status\": 0\n                    },\n                    {\n                        \"id\": 1695459998494734,\n                        \"spec_id\": 1695459998447624,\n                        \"name\": \"蓝色\",\n                        \"pid\": 1695459998447640,\n                        \"is_leaf\": 1,\n                        \"status\": 0\n                    }\n                ]\n            },\n            {\n                \"id\": 1695459998494750,\n                \"spec_id\": 1695459998447624,\n                \"name\": \"尺寸\",\n                \"pid\": 0,\n                \"is_leaf\": 0,\n                \"values\": [\n                    {\n                        \"id\": 1695459998494766,\n                        \"spec_id\": 1695459998447624,\n                        \"name\": \"S\",\n                        \"pid\": 1695459998494750,\n                        \"is_leaf\": 1,\n                        \"status\": 0\n                    }\n                ]\n            }\n        ],\n        \"img\": \"https://sf6-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\",\n        \"presell_type\": 0,\n        \"maximum_per_order\": 0,\n        \"limit_per_buyer\": 0,\n        \"minimum_per_order\": 1,\n        \"quality_list\": [\n            {\n                \"quality_key\": \"1\",\n                \"quality_name\": \"进货凭证1\",\n                \"quality_attachments\": [\n                    {\n                        \"media_type\": 1,\n                        \"url\": \"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\"\n                    },\n                    {\n                        \"media_type\": 1,\n                        \"url\": \"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\"\n                    }\n                ]\n            },\n            {\n                \"quality_key\": \"2\",\n                \"quality_name\": \"进货凭证2\",\n                \"quality_attachments\": [\n                    {\n                        \"media_type\": 1,\n                        \"url\": \"https://sf1-ttcdn-tos.pstatp.com/obj/temai/0c71ce6acb4e3b508e0d30042b1a94262818ab41www800-800\"\n                    }\n                ]\n            }\n        ],\n        \"logistics_info\": {\n            \"customs_clear_type\": 0,\n            \"origin_region_id\": 0,\n            \"source_region_id\": 0,\n            \"brand_region_id\": 0,\n            \"tax_payer\": 0,\n            \"net_weight_qty\": 0\n        },\n        \"after_sale_service\": \"{\\\"supply_7day_return\\\":\\\"2\\\"}\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductEditBuyerLimitRequest.json",
    "content": "﻿{\n    \"product_id\": \"41231241241\",\n    \"maximum_per_order\": 200,\n    \"limit_per_buyer\": 1,\n    \"minimum_per_order\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductGetCategoryPropertyRequest.json",
    "content": "﻿{\n    \"category_leaf_id\": \"1342353245\",\n    \"version\": \"0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductGetCategoryPropertyResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"property_id\": 0,\n            \"property_name\": \"品牌\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"ON:THE BODY/安宝笛\",\n                    \"value\": \"1062254699\"\n                },\n                {\n                    \"name\": \"糖小蜂\",\n                    \"value\": \"1939652452\"\n                },\n                {\n                    \"name\": \"Sony/索尼\",\n                    \"value\": \"679903018\"\n                },\n                {\n                    \"name\": \"ChaCheer/洽洽\",\n                    \"value\": \"70355890\"\n                },\n                {\n                    \"name\": \"lan/测试品牌\",\n                    \"value\": \"459328772\"\n                },\n                {\n                    \"name\": \"15MINS/15分钟\",\n                    \"value\": \"560560669\"\n                },\n                {\n                    \"name\": \"哈哈龙\",\n                    \"value\": \"340239287\"\n                },\n                {\n                    \"name\": \"中茶\",\n                    \"value\": \"1514387954\"\n                },\n                {\n                    \"name\": \"大小\",\n                    \"value\": \"1525687123\"\n                },\n                {\n                    \"name\": \"AOLAIWEN/澳·莱文\",\n                    \"value\": \"1756077704\"\n                },\n                {\n                    \"name\": \"1+1=3\",\n                    \"value\": \"1068989229\"\n                },\n                {\n                    \"name\": \"Apple/苹果\",\n                    \"value\": \"359833403\"\n                },\n                {\n                    \"name\": \"美特斯⸱邦威\",\n                    \"value\": \"752153247\"\n                },\n                {\n                    \"name\": \"其他\",\n                    \"value\": \"283604817\"\n                },\n                {\n                    \"name\": \"48H AFTER/后天\",\n                    \"value\": \"1941153109\"\n                },\n                {\n                    \"name\": \"422\",\n                    \"value\": \"512462293\"\n                },\n                {\n                    \"name\": \"斌工场BGC\",\n                    \"value\": \"461597452\"\n                },\n                {\n                    \"name\": \"12121212/11111\",\n                    \"value\": \"1826644684\"\n                },\n                {\n                    \"name\": \"韵の堂\",\n                    \"value\": \"1509558059\"\n                },\n                {\n                    \"name\": \"111111\",\n                    \"value\": \"2046099318\"\n                },\n                {\n                    \"name\": \"哈哈哈哈哈耶\",\n                    \"value\": \"1686431476\"\n                },\n                {\n                    \"name\": \"おはよう/啊发SV风神\",\n                    \"value\": \"1390315676\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828231,\n            \"property_name\": \"屏幕材质\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"TFT\",\n                    \"value\": \"TFT\"\n                },\n                {\n                    \"name\": \"LCD\",\n                    \"value\": \"LCD\"\n                },\n                {\n                    \"name\": \"SUPER Amoled\",\n                    \"value\": \"SUPER Amoled\"\n                },\n                {\n                    \"name\": \"OLED\",\n                    \"value\": \"OLED\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                },\n                {\n                    \"name\": \"超视网膜XDR显示屏\",\n                    \"value\": \"超视网膜XDR显示屏\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828232,\n            \"property_name\": \"电池容量\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828233,\n            \"property_name\": \"蓝牙版本\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"4.0\",\n                    \"value\": \"4.0\"\n                },\n                {\n                    \"name\": \"5.0\",\n                    \"value\": \"5.0\"\n                },\n                {\n                    \"name\": \"4.2\",\n                    \"value\": \"4.2\"\n                },\n                {\n                    \"name\": \"4.1\",\n                    \"value\": \"4.1\"\n                },\n                {\n                    \"name\": \"无\",\n                    \"value\": \"无\"\n                },\n                {\n                    \"name\": \"BT5.1\",\n                    \"value\": \"BT5.1\"\n                },\n                {\n                    \"name\": \"支持蓝牙\",\n                    \"value\": \"支持蓝牙\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828234,\n            \"property_name\": \"耳机接口类型\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"无\",\n                    \"value\": \"无\"\n                },\n                {\n                    \"name\": \"蓝牙\",\n                    \"value\": \"蓝牙\"\n                },\n                {\n                    \"name\": \"3.5mm\",\n                    \"value\": \"3.5mm\"\n                },\n                {\n                    \"name\": \"TYPE-C\",\n                    \"value\": \"TYPE-C\"\n                },\n                {\n                    \"name\": \"以官网为准\",\n                    \"value\": \"以官网为准\"\n                },\n                {\n                    \"name\": \"Micro USB\",\n                    \"value\": \"Micro USB\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                },\n                {\n                    \"name\": \"Lightning\",\n                    \"value\": \"Lightning\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828235,\n            \"property_name\": \"网络类型\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"全网通5G\",\n                    \"value\": \"全网通5G\"\n                },\n                {\n                    \"name\": \"SA/NSA双模(5G)\",\n                    \"value\": \"SA/NSA双模(5G)\"\n                },\n                {\n                    \"name\": \"无需合约版\",\n                    \"value\": \"无需合约版\"\n                },\n                {\n                    \"name\": \"公开版\",\n                    \"value\": \"公开版\"\n                },\n                {\n                    \"name\": \"电信2G\",\n                    \"value\": \"电信2G\"\n                },\n                {\n                    \"name\": \"电信3G\",\n                    \"value\": \"电信3G\"\n                },\n                {\n                    \"name\": \"电信4G\",\n                    \"value\": \"电信4G\"\n                },\n                {\n                    \"name\": \"电信4G+\",\n                    \"value\": \"电信4G+\"\n                },\n                {\n                    \"name\": \"电信联通4G\",\n                    \"value\": \"电信联通4G\"\n                },\n                {\n                    \"name\": \"联通2G\",\n                    \"value\": \"联通2G\"\n                },\n                {\n                    \"name\": \"联通3G\",\n                    \"value\": \"联通3G\"\n                },\n                {\n                    \"name\": \"联通4G\",\n                    \"value\": \"联通4G\"\n                },\n                {\n                    \"name\": \"全网通3G\",\n                    \"value\": \"全网通3G\"\n                },\n                {\n                    \"name\": \"全网通4G\",\n                    \"value\": \"全网通4G\"\n                },\n                {\n                    \"name\": \"移动2G\",\n                    \"value\": \"移动2G\"\n                },\n                {\n                    \"name\": \"移动3G\",\n                    \"value\": \"移动3G\"\n                },\n                {\n                    \"name\": \"移动4G\",\n                    \"value\": \"移动4G\"\n                },\n                {\n                    \"name\": \"移动4G+\",\n                    \"value\": \"移动4G+\"\n                },\n                {\n                    \"name\": \"移动联通2G\",\n                    \"value\": \"移动联通2G\"\n                },\n                {\n                    \"name\": \"移动联通3G\",\n                    \"value\": \"移动联通3G\"\n                },\n                {\n                    \"name\": \"移动联通4G\",\n                    \"value\": \"移动联通4G\"\n                },\n                {\n                    \"name\": \"\",\n                    \"value\": \"\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828236,\n            \"property_name\": \"屏幕刷新率\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828237,\n            \"property_name\": \"CPU型号\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"Exynos 8895\",\n                    \"value\": \"Exynos 8895\"\n                },\n                {\n                    \"name\": \"Helio A22\",\n                    \"value\": \"Helio A22\"\n                },\n                {\n                    \"name\": \"Helio P22(MT6762)\",\n                    \"value\": \"Helio P22(MT6762)\"\n                },\n                {\n                    \"name\": \"Helio P60\",\n                    \"value\": \"Helio P60\"\n                },\n                {\n                    \"name\": \"helio P70\",\n                    \"value\": \"helio P70\"\n                },\n                {\n                    \"name\": \" Helio X25(MT6797T）\",\n                    \"value\": \" Helio X25(MT6797T）\"\n                },\n                {\n                    \"name\": \"Helio X27（MT6797X）\",\n                    \"value\": \"Helio X27（MT6797X）\"\n                },\n                {\n                    \"name\": \"Helio X30(MT6799）\",\n                    \"value\": \"Helio X30(MT6799）\"\n                },\n                {\n                    \"name\": \"MT6739\",\n                    \"value\": \"MT6739\"\n                },\n                {\n                    \"name\": \"MT6750\",\n                    \"value\": \"MT6750\"\n                },\n                {\n                    \"name\": \"MT6763T\",\n                    \"value\": \"MT6763T\"\n                },\n                {\n                    \"name\": \"高通骁龙660\",\n                    \"value\": \"高通骁龙660\"\n                },\n                {\n                    \"name\": \"高通骁龙660(AIE)\",\n                    \"value\": \"高通骁龙660(AIE)\"\n                },\n                {\n                    \"name\": \"苹果 A10\",\n                    \"value\": \"苹果 A10\"\n                },\n                {\n                    \"name\": \"苹果 A11\",\n                    \"value\": \"苹果 A11\"\n                },\n                {\n                    \"name\": \"苹果 A12\",\n                    \"value\": \"苹果 A12\"\n                },\n                {\n                    \"name\": \"苹果 A13\",\n                    \"value\": \"苹果 A13\"\n                },\n                {\n                    \"name\": \"苹果 A14\",\n                    \"value\": \"苹果 A14\"\n                },\n                {\n                    \"name\": \"苹果 A9\",\n                    \"value\": \"苹果 A9\"\n                },\n                {\n                    \"name\": \"其它\",\n                    \"value\": \"其它\"\n                },\n                {\n                    \"name\": \"麒麟659\",\n                    \"value\": \"麒麟659\"\n                },\n                {\n                    \"name\": \"麒麟710\",\n                    \"value\": \"麒麟710\"\n                },\n                {\n                    \"name\": \"麒麟960\",\n                    \"value\": \"麒麟960\"\n                },\n                {\n                    \"name\": \"麒麟970\",\n                    \"value\": \"麒麟970\"\n                },\n                {\n                    \"name\": \"麒麟980\",\n                    \"value\": \"麒麟980\"\n                },\n                {\n                    \"name\": \"麒麟990\",\n                    \"value\": \"麒麟990\"\n                },\n                {\n                    \"name\": \"麒麟990 5G\",\n                    \"value\": \"麒麟990 5G\"\n                },\n                {\n                    \"name\": \"骁龙430\",\n                    \"value\": \"骁龙430\"\n                },\n                {\n                    \"name\": \"骁龙450\",\n                    \"value\": \"骁龙450\"\n                },\n                {\n                    \"name\": \"骁龙625\",\n                    \"value\": \"骁龙625\"\n                },\n                {\n                    \"name\": \"骁龙626\",\n                    \"value\": \"骁龙626\"\n                },\n                {\n                    \"name\": \"骁龙632\",\n                    \"value\": \"骁龙632\"\n                },\n                {\n                    \"name\": \"骁龙636\",\n                    \"value\": \"骁龙636\"\n                },\n                {\n                    \"name\": \"骁龙652\",\n                    \"value\": \"骁龙652\"\n                },\n                {\n                    \"name\": \"骁龙660\",\n                    \"value\": \"骁龙660\"\n                },\n                {\n                    \"name\": \"骁龙660(AIE)\",\n                    \"value\": \"骁龙660(AIE)\"\n                },\n                {\n                    \"name\": \"骁龙670\",\n                    \"value\": \"骁龙670\"\n                },\n                {\n                    \"name\": \"骁龙670(AIE)\",\n                    \"value\": \"骁龙670(AIE)\"\n                },\n                {\n                    \"name\": \"骁龙710\",\n                    \"value\": \"骁龙710\"\n                },\n                {\n                    \"name\": \"骁龙710(AIE)\",\n                    \"value\": \"骁龙710(AIE)\"\n                },\n                {\n                    \"name\": \"骁龙835\",\n                    \"value\": \"骁龙835\"\n                },\n                {\n                    \"name\": \"骁龙845\",\n                    \"value\": \"骁龙845\"\n                },\n                {\n                    \"name\": \"骁龙845(AIE)\",\n                    \"value\": \"骁龙845(AIE)\"\n                },\n                {\n                    \"name\": \"骁龙855\",\n                    \"value\": \"骁龙855\"\n                },\n                {\n                    \"name\": \"展讯 9850K\",\n                    \"value\": \"展讯 9850K\"\n                },\n                {\n                    \"name\": \"骁龙888\",\n                    \"value\": \"骁龙888\"\n                },\n                {\n                    \"name\": \"骁龙870\",\n                    \"value\": \"骁龙870\"\n                },\n                {\n                    \"name\": \"天玑1000\",\n                    \"value\": \"天玑1000\"\n                },\n                {\n                    \"name\": \"天玑1000+\",\n                    \"value\": \"天玑1000+\"\n                },\n                {\n                    \"name\": \"天玑1000 L\",\n                    \"value\": \"天玑1000 L\"\n                },\n                {\n                    \"name\": \"天玑820\",\n                    \"value\": \"天玑820\"\n                },\n                {\n                    \"name\": \"骁龙675\",\n                    \"value\": \"骁龙675\"\n                },\n                {\n                    \"name\": \"骁龙712\",\n                    \"value\": \"骁龙712\"\n                },\n                {\n                    \"name\": \"骁龙439\",\n                    \"value\": \"骁龙439\"\n                },\n                {\n                    \"name\": \"MT6765\",\n                    \"value\": \"MT6765\"\n                },\n                {\n                    \"name\": \"骁龙730\",\n                    \"value\": \"骁龙730\"\n                },\n                {\n                    \"name\": \"麒麟810\",\n                    \"value\": \"麒麟810\"\n                },\n                {\n                    \"name\": \"骁龙665\",\n                    \"value\": \"骁龙665\"\n                },\n                {\n                    \"name\": \"MT6761 \",\n                    \"value\": \"MT6761 \"\n                },\n                {\n                    \"name\": \"骁龙855 Plus\",\n                    \"value\": \"骁龙855 Plus\"\n                },\n                {\n                    \"name\": \"Helio G90T\",\n                    \"value\": \"Helio G90T\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828238,\n            \"property_name\": \"有线充电功率\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"10V/2.25A\",\n                    \"value\": \"10V/2.25A\"\n                },\n                {\n                    \"name\": \"10V/4A\",\n                    \"value\": \"10V/4A\"\n                },\n                {\n                    \"name\": \"10V/5A\",\n                    \"value\": \"10V/5A\"\n                },\n                {\n                    \"name\": \"5V/1A\",\n                    \"value\": \"5V/1A\"\n                },\n                {\n                    \"name\": \"5V/2A\",\n                    \"value\": \"5V/2A\"\n                },\n                {\n                    \"name\": \"5V/4.5A\",\n                    \"value\": \"5V/4.5A\"\n                },\n                {\n                    \"name\": \"5V/4A\",\n                    \"value\": \"5V/4A\"\n                },\n                {\n                    \"name\": \"9V/2A\",\n                    \"value\": \"9V/2A\"\n                },\n                {\n                    \"name\": \"其它\",\n                    \"value\": \"其它\"\n                },\n                {\n                    \"name\": \"5V/3.6A\",\n                    \"value\": \"5V/3.6A\"\n                },\n                {\n                    \"name\": \"5V/3.2A\",\n                    \"value\": \"5V/3.2A\"\n                },\n                {\n                    \"name\": \"5V/3A\",\n                    \"value\": \"5V/3A\"\n                },\n                {\n                    \"name\": \"4.5V/5A\",\n                    \"value\": \"4.5V/5A\"\n                },\n                {\n                    \"name\": \"5V/6A\",\n                    \"value\": \"5V/6A\"\n                },\n                {\n                    \"name\": \"18W\",\n                    \"value\": \"18W\"\n                },\n                {\n                    \"name\": \"20W\",\n                    \"value\": \"20W\"\n                },\n                {\n                    \"name\": \"22.5W\",\n                    \"value\": \"22.5W\"\n                },\n                {\n                    \"name\": \"40W\",\n                    \"value\": \"40W\"\n                },\n                {\n                    \"name\": \"50W\",\n                    \"value\": \"50W\"\n                },\n                {\n                    \"name\": \"10W\",\n                    \"value\": \"10W\"\n                },\n                {\n                    \"name\": \"66W\",\n                    \"value\": \"66W\"\n                },\n                {\n                    \"name\": \"55W\",\n                    \"value\": \"55W\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828239,\n            \"property_name\": \"内存扩展容量\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"不支持\",\n                    \"value\": \"不支持\"\n                },\n                {\n                    \"name\": \"2GB\",\n                    \"value\": \"2GB\"\n                },\n                {\n                    \"name\": \"4GB\",\n                    \"value\": \"4GB\"\n                },\n                {\n                    \"name\": \"8GB\",\n                    \"value\": \"8GB\"\n                },\n                {\n                    \"name\": \"16GB\",\n                    \"value\": \"16GB\"\n                },\n                {\n                    \"name\": \"32GB\",\n                    \"value\": \"32GB\"\n                },\n                {\n                    \"name\": \"64GB\",\n                    \"value\": \"64GB\"\n                },\n                {\n                    \"name\": \"128GB\",\n                    \"value\": \"128GB\"\n                },\n                {\n                    \"name\": \"256GB\",\n                    \"value\": \"256GB\"\n                },\n                {\n                    \"name\": \"512GB\",\n                    \"value\": \"512GB\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828240,\n            \"property_name\": \"机身颜色\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828241,\n            \"property_name\": \"型号\",\n            \"required\": true,\n            \"options\": [\n                {\n                    \"name\": \"iPhone 12\",\n                    \"value\": \"iPhone 12\"\n                },\n                {\n                    \"name\": \"iPhone 12 Pro\",\n                    \"value\": \"iPhone 12 Pro\"\n                },\n                {\n                    \"name\": \"iPhone 12 Pro Max\",\n                    \"value\": \"iPhone 12 Pro Max\"\n                },\n                {\n                    \"name\": \"iPhone 12 mini\",\n                    \"value\": \"iPhone 12 mini\"\n                },\n                {\n                    \"name\": \"iPhone 11\",\n                    \"value\": \"iPhone 11\"\n                },\n                {\n                    \"name\": \"iPhone 11 Pro\",\n                    \"value\": \"iPhone 11 Pro\"\n                },\n                {\n                    \"name\": \"iPhone 11 Pro Max\",\n                    \"value\": \"iPhone 11 Pro Max\"\n                },\n                {\n                    \"name\": \"iPhone Xs\",\n                    \"value\": \"iPhone Xs\"\n                },\n                {\n                    \"name\": \"iPhone Xs Max\",\n                    \"value\": \"iPhone Xs Max\"\n                },\n                {\n                    \"name\": \"iPhone X\",\n                    \"value\": \"iPhone X\"\n                },\n                {\n                    \"name\": \"iPhone XR\",\n                    \"value\": \"iPhone XR\"\n                },\n                {\n                    \"name\": \"iPhone SE\",\n                    \"value\": \"iPhone SE\"\n                },\n                {\n                    \"name\": \"华为 Mate 40\",\n                    \"value\": \"华为 Mate 40\"\n                },\n                {\n                    \"name\": \"华为 Mate 40 Pro\",\n                    \"value\": \"华为 Mate 40 Pro\"\n                },\n                {\n                    \"name\": \"华为 Mate 40 Pro+\",\n                    \"value\": \"华为 Mate 40 Pro+\"\n                },\n                {\n                    \"name\": \"华为 Mate 40 RS保时捷设计\",\n                    \"value\": \"华为 Mate 40 RS保时捷设计\"\n                },\n                {\n                    \"name\": \"华为 Mate 40E\",\n                    \"value\": \"华为 Mate 40E\"\n                },\n                {\n                    \"name\": \"华为 nova 8\",\n                    \"value\": \"华为 nova 8\"\n                },\n                {\n                    \"name\": \"华为 nova 8 Pro\",\n                    \"value\": \"华为 nova 8 Pro\"\n                },\n                {\n                    \"name\": \"华为 nova 8 SE\",\n                    \"value\": \"华为 nova 8 SE\"\n                },\n                {\n                    \"name\": \"华为 Mate X2\",\n                    \"value\": \"华为 Mate X2\"\n                },\n                {\n                    \"name\": \"华为 P40\",\n                    \"value\": \"华为 P40\"\n                },\n                {\n                    \"name\": \"华为 P40 Pro\",\n                    \"value\": \"华为 P40 Pro\"\n                },\n                {\n                    \"name\": \"华为 P40 Pro+\",\n                    \"value\": \"华为 P40 Pro+\"\n                },\n                {\n                    \"name\": \"华为 畅享7\",\n                    \"value\": \"华为 畅享7\"\n                },\n                {\n                    \"name\": \"华为 畅享9s\",\n                    \"value\": \"华为 畅享9s\"\n                },\n                {\n                    \"name\": \"华为 畅享Z\",\n                    \"value\": \"华为 畅享Z\"\n                },\n                {\n                    \"name\": \"华为 畅享20 Plus\",\n                    \"value\": \"华为 畅享20 Plus\"\n                },\n                {\n                    \"name\": \"华为 畅享20\",\n                    \"value\": \"华为 畅享20\"\n                },\n                {\n                    \"name\": \"华为 nova 7\",\n                    \"value\": \"华为 nova 7\"\n                },\n                {\n                    \"name\": \"华为 nova 7 Pro\",\n                    \"value\": \"华为 nova 7 Pro\"\n                },\n                {\n                    \"name\": \"华为 nova 7 SE\",\n                    \"value\": \"华为 nova 7 SE\"\n                },\n                {\n                    \"name\": \"vivo S9e\",\n                    \"value\": \"vivo S9e\"\n                },\n                {\n                    \"name\": \"vivo S9 \",\n                    \"value\": \"vivo S9 \"\n                },\n                {\n                    \"name\": \"vivo Y30g\",\n                    \"value\": \"vivo Y30g\"\n                },\n                {\n                    \"name\": \"vivo Y31s标准版\",\n                    \"value\": \"vivo Y31s标准版\"\n                },\n                {\n                    \"name\": \"vivo Y31S\",\n                    \"value\": \"vivo Y31S\"\n                },\n                {\n                    \"name\": \"vivo S7t\",\n                    \"value\": \"vivo S7t\"\n                },\n                {\n                    \"name\": \"vivo Y3s \",\n                    \"value\": \"vivo Y3s \"\n                },\n                {\n                    \"name\": \"vivo Y51s\",\n                    \"value\": \"vivo Y51s\"\n                },\n                {\n                    \"name\": \"vivo Y73s\",\n                    \"value\": \"vivo Y73s\"\n                },\n                {\n                    \"name\": \"vivo Y52s\",\n                    \"value\": \"vivo Y52s\"\n                },\n                {\n                    \"name\": \"vivo X60 \",\n                    \"value\": \"vivo X60 \"\n                },\n                {\n                    \"name\": \"vivo X60Pro \",\n                    \"value\": \"vivo X60Pro \"\n                },\n                {\n                    \"name\": \"vivo X60Pro+\",\n                    \"value\": \"vivo X60Pro+\"\n                },\n                {\n                    \"name\": \"vivo S7e活力版\",\n                    \"value\": \"vivo S7e活力版\"\n                },\n                {\n                    \"name\": \"荣耀V40轻奢版\",\n                    \"value\": \"荣耀V40轻奢版\"\n                },\n                {\n                    \"name\": \"荣耀V40 \",\n                    \"value\": \"荣耀V40 \"\n                },\n                {\n                    \"name\": \"荣耀X10\",\n                    \"value\": \"荣耀X10\"\n                },\n                {\n                    \"name\": \"荣耀 Play4T Pro\",\n                    \"value\": \"荣耀 Play4T Pro\"\n                },\n                {\n                    \"name\": \"荣耀30\",\n                    \"value\": \"荣耀30\"\n                },\n                {\n                    \"name\": \"荣耀30 Pro\",\n                    \"value\": \"荣耀30 Pro\"\n                },\n                {\n                    \"name\": \"荣耀 30Pro+\",\n                    \"value\": \"荣耀 30Pro+\"\n                },\n                {\n                    \"name\": \"荣耀 X10 Max\",\n                    \"value\": \"荣耀 X10 Max\"\n                },\n                {\n                    \"name\": \"荣耀20青春版\",\n                    \"value\": \"荣耀20青春版\"\n                },\n                {\n                    \"name\": \"荣耀30青春版\",\n                    \"value\": \"荣耀30青春版\"\n                },\n                {\n                    \"name\": \"荣耀畅玩9A\",\n                    \"value\": \"荣耀畅玩9A\"\n                },\n                {\n                    \"name\": \"荣耀Play4T\",\n                    \"value\": \"荣耀Play4T\"\n                },\n                {\n                    \"name\": \"iQOO Z3\",\n                    \"value\": \"iQOO Z3\"\n                },\n                {\n                    \"name\": \"iQOO U3x\",\n                    \"value\": \"iQOO U3x\"\n                },\n                {\n                    \"name\": \"iQOO Neo5\",\n                    \"value\": \"iQOO Neo5\"\n                },\n                {\n                    \"name\": \"iQOO5 \",\n                    \"value\": \"iQOO5 \"\n                },\n                {\n                    \"name\": \"iQOO Z1x \",\n                    \"value\": \"iQOO Z1x \"\n                },\n                {\n                    \"name\": \"iQOO 5 Pro\",\n                    \"value\": \"iQOO 5 Pro\"\n                },\n                {\n                    \"name\": \"iQOO U1x \",\n                    \"value\": \"iQOO U1x \"\n                },\n                {\n                    \"name\": \"iQOO 7 \",\n                    \"value\": \"iQOO 7 \"\n                },\n                {\n                    \"name\": \"iQOO U3\",\n                    \"value\": \"iQOO U3\"\n                },\n                {\n                    \"name\": \"iQOO Neo3\",\n                    \"value\": \"iQOO Neo3\"\n                },\n                {\n                    \"name\": \"一加8T\",\n                    \"value\": \"一加8T\"\n                },\n                {\n                    \"name\": \"一加8 Pro\",\n                    \"value\": \"一加8 Pro\"\n                },\n                {\n                    \"name\": \"一加8\",\n                    \"value\": \"一加8\"\n                },\n                {\n                    \"name\": \"一加9\",\n                    \"value\": \"一加9\"\n                },\n                {\n                    \"name\": \"一加9 Pro\",\n                    \"value\": \"一加9 Pro\"\n                },\n                {\n                    \"name\": \"OPPO Findx3Pro\",\n                    \"value\": \"OPPO Findx3Pro\"\n                },\n                {\n                    \"name\": \"OPPO Findx3\",\n                    \"value\": \"OPPO Findx3\"\n                },\n                {\n                    \"name\": \"OPPO Reno5\",\n                    \"value\": \"OPPO Reno5\"\n                },\n                {\n                    \"name\": \"OPPO Reno4 Se\",\n                    \"value\": \"OPPO Reno4 Se\"\n                },\n                {\n                    \"name\": \"OPPO K7\",\n                    \"value\": \"OPPO K7\"\n                },\n                {\n                    \"name\": \"OPPO A93\",\n                    \"value\": \"OPPO A93\"\n                },\n                {\n                    \"name\": \"OPPO Reno5 Pro\",\n                    \"value\": \"OPPO Reno5 Pro\"\n                },\n                {\n                    \"name\": \"OPPO Reno5 Pro+\",\n                    \"value\": \"OPPO Reno5 Pro+\"\n                },\n                {\n                    \"name\": \"OPPO Reno5 K \",\n                    \"value\": \"OPPO Reno5 K \"\n                },\n                {\n                    \"name\": \"OPPO K7x\",\n                    \"value\": \"OPPO K7x\"\n                },\n                {\n                    \"name\": \"OPPO Ace2\",\n                    \"value\": \"OPPO Ace2\"\n                },\n                {\n                    \"name\": \"OPPO A72\",\n                    \"value\": \"OPPO A72\"\n                },\n                {\n                    \"name\": \"OPPO Findx2\",\n                    \"value\": \"OPPO Findx2\"\n                },\n                {\n                    \"name\": \"OPPO A32\",\n                    \"value\": \"OPPO A32\"\n                },\n                {\n                    \"name\": \"OPPO A53\",\n                    \"value\": \"OPPO A53\"\n                },\n                {\n                    \"name\": \"OPPO A8\",\n                    \"value\": \"OPPO A8\"\n                },\n                {\n                    \"name\": \"OPPO A55\",\n                    \"value\": \"OPPO A55\"\n                },\n                {\n                    \"name\": \"OPPO A93s\",\n                    \"value\": \"OPPO A93s\"\n                },\n                {\n                    \"name\": \"OPPO A93\",\n                    \"value\": \"OPPO A93\"\n                },\n                {\n                    \"name\": \"OPPO A35\",\n                    \"value\": \"OPPO A35\"\n                },\n                {\n                    \"name\": \"Realme GT\",\n                    \"value\": \"Realme GT\"\n                },\n                {\n                    \"name\": \"Realme X7 Pro\",\n                    \"value\": \"Realme X7 Pro\"\n                },\n                {\n                    \"name\": \"Realme Q2 Pro\",\n                    \"value\": \"Realme Q2 Pro\"\n                },\n                {\n                    \"name\": \"Realme GT Neo\",\n                    \"value\": \"Realme GT Neo\"\n                },\n                {\n                    \"name\": \"Realme X50 Pro\",\n                    \"value\": \"Realme X50 Pro\"\n                },\n                {\n                    \"name\": \"Realme V15\",\n                    \"value\": \"Realme V15\"\n                },\n                {\n                    \"name\": \"Realme Q2\",\n                    \"value\": \"Realme Q2\"\n                },\n                {\n                    \"name\": \"Realme X50\",\n                    \"value\": \"Realme X50\"\n                },\n                {\n                    \"name\": \"Realme Q2i\",\n                    \"value\": \"Realme Q2i\"\n                },\n                {\n                    \"name\": \"Realme Q2 Pro\",\n                    \"value\": \"Realme Q2 Pro\"\n                },\n                {\n                    \"name\": \"Realme V11\",\n                    \"value\": \"Realme V11\"\n                },\n                {\n                    \"name\": \"Realme X7\",\n                    \"value\": \"Realme X7\"\n                },\n                {\n                    \"name\": \"Realme X7 Pro\",\n                    \"value\": \"Realme X7 Pro\"\n                },\n                {\n                    \"name\": \"Realme V5\",\n                    \"value\": \"Realme V5\"\n                },\n                {\n                    \"name\": \"Realme V3\",\n                    \"value\": \"Realme V3\"\n                },\n                {\n                    \"name\": \"小米11\",\n                    \"value\": \"小米11\"\n                },\n                {\n                    \"name\": \"小米10青春版\",\n                    \"value\": \"小米10青春版\"\n                },\n                {\n                    \"name\": \"小米 10S\",\n                    \"value\": \"小米 10S\"\n                },\n                {\n                    \"name\": \"Redmi 10X\",\n                    \"value\": \"Redmi 10X\"\n                },\n                {\n                    \"name\": \"Redmi K40\",\n                    \"value\": \"Redmi K40\"\n                },\n                {\n                    \"name\": \"Redmi K40pro\",\n                    \"value\": \"Redmi K40pro\"\n                },\n                {\n                    \"name\": \"Redmi Note9 pro\",\n                    \"value\": \"Redmi Note9 pro\"\n                },\n                {\n                    \"name\": \"Redmi Note9\",\n                    \"value\": \"Redmi Note9\"\n                },\n                {\n                    \"name\": \"K30至尊纪念版\",\n                    \"value\": \"K30至尊纪念版\"\n                },\n                {\n                    \"name\": \"Redmi 9A\",\n                    \"value\": \"Redmi 9A\"\n                },\n                {\n                    \"name\": \"Redmi 9\",\n                    \"value\": \"Redmi 9\"\n                },\n                {\n                    \"name\": \"Redmi K30\",\n                    \"value\": \"Redmi K30\"\n                },\n                {\n                    \"name\": \"Redmi Note8 pro\",\n                    \"value\": \"Redmi Note8 pro\"\n                },\n                {\n                    \"name\": \"Redmi Note8\",\n                    \"value\": \"Redmi Note8\"\n                },\n                {\n                    \"name\": \"Redmi 8A\",\n                    \"value\": \"Redmi 8A\"\n                },\n                {\n                    \"name\": \"Redmi 8\",\n                    \"value\": \"Redmi 8\"\n                },\n                {\n                    \"name\": \"Galaxy S21 Ultra\",\n                    \"value\": \"Galaxy S21 Ultra\"\n                },\n                {\n                    \"name\": \"Galaxy S21 \",\n                    \"value\": \"Galaxy S21 \"\n                },\n                {\n                    \"name\": \"Galaxy S20\",\n                    \"value\": \"Galaxy S20\"\n                },\n                {\n                    \"name\": \"Galaxy S20 Ultra\",\n                    \"value\": \"Galaxy S20 Ultra\"\n                },\n                {\n                    \"name\": \"Galaxy Note20 Ultra \",\n                    \"value\": \"Galaxy Note20 Ultra \"\n                },\n                {\n                    \"name\": \"Galaxy A71\",\n                    \"value\": \"Galaxy A71\"\n                },\n                {\n                    \"name\": \"Galaxy Z Flip\",\n                    \"value\": \"Galaxy Z Flip\"\n                },\n                {\n                    \"name\": \"Galaxy Z Fold2\",\n                    \"value\": \"Galaxy Z Fold2\"\n                },\n                {\n                    \"name\": \"W21 5G \",\n                    \"value\": \"W21 5G \"\n                },\n                {\n                    \"name\": \"W21 5G \",\n                    \"value\": \"W21 5G \"\n                },\n                {\n                    \"name\": \"Galaxy Z Fold2 5G \",\n                    \"value\": \"Galaxy Z Fold2 5G \"\n                },\n                {\n                    \"name\": \"联想拯救者电竞手机Pro\",\n                    \"value\": \"联想拯救者电竞手机Pro\"\n                },\n                {\n                    \"name\": \"联想乐檬K12Pro\",\n                    \"value\": \"联想乐檬K12Pro\"\n                },\n                {\n                    \"name\": \"联想乐檬K12\",\n                    \"value\": \"联想乐檬K12\"\n                },\n                {\n                    \"name\": \"联想乐檬K12Pro\",\n                    \"value\": \"联想乐檬K12Pro\"\n                },\n                {\n                    \"name\": \"摩托罗拉 edge s \",\n                    \"value\": \"摩托罗拉 edge s \"\n                },\n                {\n                    \"name\": \"努比亚play\",\n                    \"value\": \"努比亚play\"\n                },\n                {\n                    \"name\": \"努比亚红魔6 Pro\",\n                    \"value\": \"努比亚红魔6 Pro\"\n                },\n                {\n                    \"name\": \"努比亚红魔6\",\n                    \"value\": \"努比亚红魔6\"\n                },\n                {\n                    \"name\": \"游戏手机5\",\n                    \"value\": \"游戏手机5\"\n                },\n                {\n                    \"name\": \"游戏手机3\",\n                    \"value\": \"游戏手机3\"\n                },\n                {\n                    \"name\": \"游戏手机2\",\n                    \"value\": \"游戏手机2\"\n                },\n                {\n                    \"name\": \"黑鲨4\",\n                    \"value\": \"黑鲨4\"\n                },\n                {\n                    \"name\": \"黑鲨4 Pro\",\n                    \"value\": \"黑鲨4 Pro\"\n                },\n                {\n                    \"name\": \"黑鲨3s\",\n                    \"value\": \"黑鲨3s\"\n                },\n                {\n                    \"name\": \"黑鲨3 Pro\",\n                    \"value\": \"黑鲨3 Pro\"\n                },\n                {\n                    \"name\": \"黑鲨3\",\n                    \"value\": \"黑鲨3\"\n                },\n                {\n                    \"name\": \"魅族17\",\n                    \"value\": \"魅族17\"\n                },\n                {\n                    \"name\": \"魅族17 Pro\",\n                    \"value\": \"魅族17 Pro\"\n                },\n                {\n                    \"name\": \"魅族18\",\n                    \"value\": \"魅族18\"\n                },\n                {\n                    \"name\": \"魅族18 Pro\",\n                    \"value\": \"魅族18 Pro\"\n                },\n                {\n                    \"name\": \"D19pro Max\",\n                    \"value\": \"D19pro Max\"\n                },\n                {\n                    \"name\": \"M12Pro\",\n                    \"value\": \"M12Pro\"\n                },\n                {\n                    \"name\": \"华为 Mate 30E Pro\",\n                    \"value\": \"华为 Mate 30E Pro\"\n                },\n                {\n                    \"name\": \"华为 畅享20 SE\",\n                    \"value\": \"华为 畅享20 SE\"\n                },\n                {\n                    \"name\": \"一加9R\",\n                    \"value\": \"一加9R\"\n                },\n                {\n                    \"name\": \"小米11 Pro\",\n                    \"value\": \"小米11 Pro\"\n                },\n                {\n                    \"name\": \"小米 MIX FOLD\",\n                    \"value\": \"小米 MIX FOLD\"\n                },\n                {\n                    \"name\": \"小米11 Ultra\",\n                    \"value\": \"小米11 Ultra\"\n                },\n                {\n                    \"name\": \"小米11 青春版\",\n                    \"value\": \"小米11 青春版\"\n                },\n                {\n                    \"name\": \"Redmi K30S 至尊纪念版\",\n                    \"value\": \"Redmi K30S 至尊纪念版\"\n                },\n                {\n                    \"name\": \"联想拯救者电竞手机2 Pro\",\n                    \"value\": \"联想拯救者电竞手机2 Pro\"\n                },\n                {\n                    \"name\": \"天语E2\",\n                    \"value\": \"天语E2\"\n                },\n                {\n                    \"name\": \"天语N1\",\n                    \"value\": \"天语N1\"\n                },\n                {\n                    \"name\": \"天语N2\",\n                    \"value\": \"天语N2\"\n                },\n                {\n                    \"name\": \"天语X71\",\n                    \"value\": \"天语X71\"\n                },\n                {\n                    \"name\": \"天语Q21\",\n                    \"value\": \"天语Q21\"\n                },\n                {\n                    \"name\": \"天语Q21C\",\n                    \"value\": \"天语Q21C\"\n                },\n                {\n                    \"name\": \"天语Q31\",\n                    \"value\": \"天语Q31\"\n                },\n                {\n                    \"name\": \"天语Q31C\",\n                    \"value\": \"天语Q31C\"\n                },\n                {\n                    \"name\": \"天语Q7\",\n                    \"value\": \"天语Q7\"\n                },\n                {\n                    \"name\": \"天语Q7C\",\n                    \"value\": \"天语Q7C\"\n                },\n                {\n                    \"name\": \"天语T15\",\n                    \"value\": \"天语T15\"\n                },\n                {\n                    \"name\": \"天语S8\",\n                    \"value\": \"天语S8\"\n                },\n                {\n                    \"name\": \"天语S6\",\n                    \"value\": \"天语S6\"\n                },\n                {\n                    \"name\": \"天语Q8\",\n                    \"value\": \"天语Q8\"\n                },\n                {\n                    \"name\": \"天语N1S\",\n                    \"value\": \"天语N1S\"\n                },\n                {\n                    \"name\": \"天语N1 4G\",\n                    \"value\": \"天语N1 4G\"\n                },\n                {\n                    \"name\": \"天语K10\",\n                    \"value\": \"天语K10\"\n                },\n                {\n                    \"name\": \"天语S9 Pro\",\n                    \"value\": \"天语S9 Pro\"\n                },\n                {\n                    \"name\": \"天语T15 Pro\",\n                    \"value\": \"天语T15 Pro\"\n                },\n                {\n                    \"name\": \"天语T9\",\n                    \"value\": \"天语T9\"\n                },\n                {\n                    \"name\": \"天语T9S\",\n                    \"value\": \"天语T9S\"\n                },\n                {\n                    \"name\": \"天语L660+\",\n                    \"value\": \"天语L660+\"\n                },\n                {\n                    \"name\": \"天语V9\",\n                    \"value\": \"天语V9\"\n                },\n                {\n                    \"name\": \"天语V9C\",\n                    \"value\": \"天语V9C\"\n                },\n                {\n                    \"name\": \"天语V9S\",\n                    \"value\": \"天语V9S\"\n                },\n                {\n                    \"name\": \"天语T11\",\n                    \"value\": \"天语T11\"\n                },\n                {\n                    \"name\": \"天语V3\",\n                    \"value\": \"天语V3\"\n                },\n                {\n                    \"name\": \"天语V3S\",\n                    \"value\": \"天语V3S\"\n                },\n                {\n                    \"name\": \"天语V1\",\n                    \"value\": \"天语V1\"\n                },\n                {\n                    \"name\": \"X60 pro\",\n                    \"value\": \"X60 pro\"\n                },\n                {\n                    \"name\": \"M40\",\n                    \"value\": \"M40\"\n                },\n                {\n                    \"name\": \"F30 PRO\",\n                    \"value\": \"F30 PRO\"\n                },\n                {\n                    \"name\": \"Mate 40 Pro\",\n                    \"value\": \"Mate 40 Pro\"\n                },\n                {\n                    \"name\": \"X50pro\",\n                    \"value\": \"X50pro\"\n                },\n                {\n                    \"name\": \"OPPO A52\",\n                    \"value\": \"OPPO A52\"\n                },\n                {\n                    \"name\": \"OPPO Reno4 Pro\",\n                    \"value\": \"OPPO Reno4 Pro\"\n                },\n                {\n                    \"name\": \"OPPO A92s\",\n                    \"value\": \"OPPO A92s\"\n                },\n                {\n                    \"name\": \"OPPO A95\",\n                    \"value\": \"OPPO A95\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828242,\n            \"property_name\": \"摄像头类型\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"双摄像头(前后)\",\n                    \"value\": \"双摄像头(前后)\"\n                },\n                {\n                    \"name\": \"前置\",\n                    \"value\": \"前置\"\n                },\n                {\n                    \"name\": \"双摄像头（后双）\",\n                    \"value\": \"双摄像头（后双）\"\n                },\n                {\n                    \"name\": \"三摄像头\",\n                    \"value\": \"三摄像头\"\n                },\n                {\n                    \"name\": \"单摄像头\",\n                    \"value\": \"单摄像头\"\n                },\n                {\n                    \"name\": \"无摄像头\",\n                    \"value\": \"无摄像头\"\n                },\n                {\n                    \"name\": \"双摄像头（前后）\",\n                    \"value\": \"双摄像头（前后）\"\n                },\n                {\n                    \"name\": \"不详\",\n                    \"value\": \"不详\"\n                },\n                {\n                    \"name\": \"三摄像头（后双）\",\n                    \"value\": \"三摄像头（后双）\"\n                },\n                {\n                    \"name\": \"四摄像头（前双后双）\",\n                    \"value\": \"四摄像头（前双后双）\"\n                },\n                {\n                    \"name\": \"四摄像头（前一后三）\",\n                    \"value\": \"四摄像头（前一后三）\"\n                },\n                {\n                    \"name\": \"后置五摄像头\",\n                    \"value\": \"后置五摄像头\"\n                },\n                {\n                    \"name\": \"后置七摄像头\",\n                    \"value\": \"后置七摄像头\"\n                },\n                {\n                    \"name\": \"后置四摄像头\",\n                    \"value\": \"后置四摄像头\"\n                },\n                {\n                    \"name\": \"四摄像头（后三） \",\n                    \"value\": \"四摄像头（后三） \"\n                },\n                {\n                    \"name\": \"五摄像头（后四） \",\n                    \"value\": \"五摄像头（后四） \"\n                },\n                {\n                    \"name\": \"四摄像头（前双+后双） \",\n                    \"value\": \"四摄像头（前双+后双） \"\n                },\n                {\n                    \"name\": \"三摄像头（前双） \",\n                    \"value\": \"三摄像头（前双） \"\n                },\n                {\n                    \"name\": \"四摄像头 \",\n                    \"value\": \"四摄像头 \"\n                },\n                {\n                    \"name\": \"六摄像头（后四） \",\n                    \"value\": \"六摄像头（后四） \"\n                },\n                {\n                    \"name\": \"五摄像头（后三） \",\n                    \"value\": \"五摄像头（后三） \"\n                },\n                {\n                    \"name\": \"双摄像头 \",\n                    \"value\": \"双摄像头 \"\n                },\n                {\n                    \"name\": \"六摄像头（前双+后四） \",\n                    \"value\": \"六摄像头（前双+后四） \"\n                },\n                {\n                    \"name\": \"单摄像头（后） \",\n                    \"value\": \"单摄像头（后） \"\n                },\n                {\n                    \"name\": \"六摄像头（后五） \",\n                    \"value\": \"六摄像头（后五） \"\n                },\n                {\n                    \"name\": \"六摄像头（前三+后三） \",\n                    \"value\": \"六摄像头（前三+后三） \"\n                },\n                {\n                    \"name\": \"五摄像头（前双+后三） \",\n                    \"value\": \"五摄像头（前双+后三） \"\n                },\n                {\n                    \"name\": \"五摄像头（前二后三） \",\n                    \"value\": \"五摄像头（前二后三） \"\n                },\n                {\n                    \"name\": \"三摄像头（后三） \",\n                    \"value\": \"三摄像头（后三） \"\n                },\n                {\n                    \"name\": \"七摄像头（后五） \",\n                    \"value\": \"七摄像头（后五） \"\n                },\n                {\n                    \"name\": \"三摄像头（后二） \",\n                    \"value\": \"三摄像头（后二） \"\n                },\n                {\n                    \"name\": \"单摄像头（后置） \",\n                    \"value\": \"单摄像头（后置） \"\n                },\n                {\n                    \"name\": \"五摄像头（后三+前双） \",\n                    \"value\": \"五摄像头（后三+前双） \"\n                },\n                {\n                    \"name\": \"五摄像头（前三+后双） \",\n                    \"value\": \"五摄像头（前三+后双） \"\n                },\n                {\n                    \"name\": \"双摄像头（前双） \",\n                    \"value\": \"双摄像头（前双） \"\n                },\n                {\n                    \"name\": \"双摄像头（旋转） \",\n                    \"value\": \"双摄像头（旋转） \"\n                },\n                {\n                    \"name\": \"两摄像头（后一） \",\n                    \"value\": \"两摄像头（后一） \"\n                },\n                {\n                    \"name\": \"前置摄像头+后置摄像头 \",\n                    \"value\": \"前置摄像头+后置摄像头 \"\n                },\n                {\n                    \"name\": \"三摄像头（升降式可旋转三摄） \",\n                    \"value\": \"三摄像头（升降式可旋转三摄） \"\n                },\n                {\n                    \"name\": \"三摄像头（前摄） \",\n                    \"value\": \"三摄像头（前摄） \"\n                },\n                {\n                    \"name\": \"单摄像头（前后翻转）  \",\n                    \"value\": \"单摄像头（前后翻转）  \"\n                },\n                {\n                    \"name\": \"双摄像头（180度翻转相机） \",\n                    \"value\": \"双摄像头（180度翻转相机） \"\n                },\n                {\n                    \"name\": \"四摄像头（后双）\",\n                    \"value\": \"四摄像头（后双）\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828243,\n            \"property_name\": \"套餐类型\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828244,\n            \"property_name\": \"CPU频率\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"1.3 GHz\",\n                    \"value\": \"1.3 GHz\"\n                },\n                {\n                    \"name\": \"1.4 GHz\",\n                    \"value\": \"1.4 GHz\"\n                },\n                {\n                    \"name\": \"1.5 GHz\",\n                    \"value\": \"1.5 GHz\"\n                },\n                {\n                    \"name\": \"1.8 GHz\",\n                    \"value\": \"1.8 GHz\"\n                },\n                {\n                    \"name\": \"1.95 GHz\",\n                    \"value\": \"1.95 GHz\"\n                },\n                {\n                    \"name\": \"2.0 GHz\",\n                    \"value\": \"2.0 GHz\"\n                },\n                {\n                    \"name\": \"2.2 GHz\",\n                    \"value\": \"2.2 GHz\"\n                },\n                {\n                    \"name\": \"2.36 GHz\",\n                    \"value\": \"2.36 GHz\"\n                },\n                {\n                    \"name\": \"2.3 GHz\",\n                    \"value\": \"2.3 GHz\"\n                },\n                {\n                    \"name\": \"2.45 GHz\",\n                    \"value\": \"2.45 GHz\"\n                },\n                {\n                    \"name\": \"2.4 GHz\",\n                    \"value\": \"2.4 GHz\"\n                },\n                {\n                    \"name\": \"2.5 GHz\",\n                    \"value\": \"2.5 GHz\"\n                },\n                {\n                    \"name\": \"2.6 GHz\",\n                    \"value\": \"2.6 GHz\"\n                },\n                {\n                    \"name\": \"2.84 GHz\",\n                    \"value\": \"2.84 GHz\"\n                },\n                {\n                    \"name\": \"2.8 GHz\",\n                    \"value\": \"2.8 GHz\"\n                },\n                {\n                    \"name\": \"4*Cortex A73 2.2 GHz + 4*Cortex A53 1.7 GHz\",\n                    \"value\": \"4*Cortex A73 2.2 GHz + 4*Cortex A53 1.7 GHz\"\n                },\n                {\n                    \"name\": \"4*Cortex A53 2.36 GHz + 4*Cortex-A53 1.7 GHz\",\n                    \"value\": \"4*Cortex A53 2.36 GHz + 4*Cortex-A53 1.7 GHz\"\n                },\n                {\n                    \"name\": \"4*Cortex A73 2.4 GHz + 4*Cortex A53 1.8 GHz\",\n                    \"value\": \"4*Cortex A73 2.4 GHz + 4*Cortex A53 1.8 GHz\"\n                },\n                {\n                    \"name\": \"4*Cortex A73 2.36 GHz + 4*Cortex A53 1.8 GHz\",\n                    \"value\": \"4*Cortex A73 2.36 GHz + 4*Cortex A53 1.8 GHz\"\n                },\n                {\n                    \"name\": \"2*Cortex A76 2.6 GHz+ 2*Cortex A76 1.92 GHz + 4*Cortex A55 1.8 GHz\",\n                    \"value\": \"2*Cortex A76 2.6 GHz+ 2*Cortex A76 1.92 GHz + 4*Cortex A55 1.8 GHz\"\n                },\n                {\n                    \"name\": \"其它\",\n                    \"value\": \"其它\"\n                },\n                {\n                    \"name\": \"2.35 GHz\",\n                    \"value\": \"2.35 GHz\"\n                },\n                {\n                    \"name\": \"2.1 GHz\",\n                    \"value\": \"2.1 GHz\"\n                },\n                {\n                    \"name\": \"2.96 GHz\",\n                    \"value\": \"2.96 GHz\"\n                },\n                {\n                    \"name\": \"2*Cortex A76 2.86 GHz + 2*Cortex A76 2.09 GHz + 4*Cortex A55 1.86 GHz\",\n                    \"value\": \"2*Cortex A76 2.86 GHz + 2*Cortex A76 2.09 GHz + 4*Cortex A55 1.86 GHz\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828245,\n            \"property_name\": \"机身厚度\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828246,\n            \"property_name\": \"屏幕尺寸\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828247,\n            \"property_name\": \"屏幕分辨率\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828248,\n            \"property_name\": \"前置摄像头像素\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"1200万+500万像素\",\n                    \"value\": \"1200万+500万像素\"\n                },\n                {\n                    \"name\": \"1200万像素\",\n                    \"value\": \"1200万像素\"\n                },\n                {\n                    \"name\": \"1300万+200万像素\",\n                    \"value\": \"1300万+200万像素\"\n                },\n                {\n                    \"name\": \"1300万像素\",\n                    \"value\": \"1300万像素\"\n                },\n                {\n                    \"name\": \"1600万+200万像素\",\n                    \"value\": \"1600万+200万像素\"\n                },\n                {\n                    \"name\": \"1600万+200万像素+200万像素\",\n                    \"value\": \"1600万+200万像素+200万像素\"\n                },\n                {\n                    \"name\": \"1600万+500万像素\",\n                    \"value\": \"1600万+500万像素\"\n                },\n                {\n                    \"name\": \"1600万+800万像素\",\n                    \"value\": \"1600万+800万像素\"\n                },\n                {\n                    \"name\": \"1600万像素\",\n                    \"value\": \"1600万像素\"\n                },\n                {\n                    \"name\": \"2000万+200万像素\",\n                    \"value\": \"2000万+200万像素\"\n                },\n                {\n                    \"name\": \"2000万像素\",\n                    \"value\": \"2000万像素\"\n                },\n                {\n                    \"name\": \"200万像素\",\n                    \"value\": \"200万像素\"\n                },\n                {\n                    \"name\": \"2400万+200万像素\",\n                    \"value\": \"2400万+200万像素\"\n                },\n                {\n                    \"name\": \"2400万像素\",\n                    \"value\": \"2400万像素\"\n                },\n                {\n                    \"name\": \"2480万像素\",\n                    \"value\": \"2480万像素\"\n                },\n                {\n                    \"name\": \"2500万像素\",\n                    \"value\": \"2500万像素\"\n                },\n                {\n                    \"name\": \"500万像素\",\n                    \"value\": \"500万像素\"\n                },\n                {\n                    \"name\": \"700万像素\",\n                    \"value\": \"700万像素\"\n                },\n                {\n                    \"name\": \"800万像素\",\n                    \"value\": \"800万像素\"\n                },\n                {\n                    \"name\": \"120万像素\",\n                    \"value\": \"120万像素\"\n                },\n                {\n                    \"name\": \"1200万+2000万+800万像素\",\n                    \"value\": \"1200万+2000万+800万像素\"\n                },\n                {\n                    \"name\": \"1000万像素\",\n                    \"value\": \"1000万像素\"\n                },\n                {\n                    \"name\": \"1000万+800万像素\",\n                    \"value\": \"1000万+800万像素\"\n                },\n                {\n                    \"name\": \"2480万像素\",\n                    \"value\": \"2480万像素\"\n                },\n                {\n                    \"name\": \"3200万像素\",\n                    \"value\": \"3200万像素\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828249,\n            \"property_name\": \"充电接口类型\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"Mini USB\",\n                    \"value\": \"Mini USB\"\n                },\n                {\n                    \"name\": \"TYPE-C\",\n                    \"value\": \"TYPE-C\"\n                },\n                {\n                    \"name\": \"Lightning\",\n                    \"value\": \"Lightning\"\n                },\n                {\n                    \"name\": \"无\",\n                    \"value\": \"无\"\n                },\n                {\n                    \"name\": \"MIC 5PIN\",\n                    \"value\": \"MIC 5PIN\"\n                },\n                {\n                    \"name\": \"Micro USB\",\n                    \"value\": \"Micro USB\"\n                },\n                {\n                    \"name\": \"以官网为准\",\n                    \"value\": \"以官网为准\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828250,\n            \"property_name\": \"存储容量\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"32GB\",\n                    \"value\": \"32GB\"\n                },\n                {\n                    \"name\": \"64GB\",\n                    \"value\": \"64GB\"\n                },\n                {\n                    \"name\": \"128GB\",\n                    \"value\": \"128GB\"\n                },\n                {\n                    \"name\": \"256GB\",\n                    \"value\": \"256GB\"\n                },\n                {\n                    \"name\": \"512GB\",\n                    \"value\": \"512GB\"\n                },\n                {\n                    \"name\": \"1TB\",\n                    \"value\": \"1TB\"\n                },\n                {\n                    \"name\": \"4GB+32GB\",\n                    \"value\": \"4GB+32GB\"\n                },\n                {\n                    \"name\": \"4GB+64GB\",\n                    \"value\": \"4GB+64GB\"\n                },\n                {\n                    \"name\": \"4GB+128GB\",\n                    \"value\": \"4GB+128GB\"\n                },\n                {\n                    \"name\": \"6GB+64GB\",\n                    \"value\": \"6GB+64GB\"\n                },\n                {\n                    \"name\": \"6GB+128GB\",\n                    \"value\": \"6GB+128GB\"\n                },\n                {\n                    \"name\": \"8GB+128GB\",\n                    \"value\": \"8GB+128GB\"\n                },\n                {\n                    \"name\": \"12GB+128GB\",\n                    \"value\": \"12GB+128GB\"\n                },\n                {\n                    \"name\": \"8GB+256GB\",\n                    \"value\": \"8GB+256GB\"\n                },\n                {\n                    \"name\": \"12GB+256GB\",\n                    \"value\": \"12GB+256GB\"\n                },\n                {\n                    \"name\": \"12GB+512GB\",\n                    \"value\": \"12GB+512GB\"\n                },\n                {\n                    \"name\": \"16GB+512GB\",\n                    \"value\": \"16GB+512GB\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828251,\n            \"property_name\": \"CCC证书编号\",\n            \"required\": true\n        },\n        {\n            \"property_id\": 828252,\n            \"property_name\": \"是否支持无线充电\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"是\",\n                    \"value\": \"是\"\n                },\n                {\n                    \"name\": \"否\",\n                    \"value\": \"否\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828253,\n            \"property_name\": \"指纹识别方式\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"屏下指纹\",\n                    \"value\": \"屏下指纹\"\n                },\n                {\n                    \"name\": \"侧边指纹\",\n                    \"value\": \"侧边指纹\"\n                },\n                {\n                    \"name\": \"背部指纹\",\n                    \"value\": \"背部指纹\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                },\n                {\n                    \"name\": \"无\",\n                    \"value\": \"无\"\n                },\n                {\n                    \"name\": \"前置指纹\",\n                    \"value\": \"前置指纹\"\n                },\n                {\n                    \"name\": \"屏幕光学指纹\",\n                    \"value\": \"屏幕光学指纹\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828254,\n            \"property_name\": \"网络模式\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"单卡双模\",\n                    \"value\": \"单卡双模\"\n                },\n                {\n                    \"name\": \"双卡双模\",\n                    \"value\": \"双卡双模\"\n                },\n                {\n                    \"name\": \"双卡多模\",\n                    \"value\": \"双卡多模\"\n                },\n                {\n                    \"name\": \"单卡单模\",\n                    \"value\": \"单卡单模\"\n                },\n                {\n                    \"name\": \"单卡多模\",\n                    \"value\": \"单卡多模\"\n                },\n                {\n                    \"name\": \"双卡单模\",\n                    \"value\": \"双卡单模\"\n                },\n                {\n                    \"name\": \"双卡双待\",\n                    \"value\": \"双卡双待\"\n                },\n                {\n                    \"name\": \"不详\",\n                    \"value\": \"不详\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828255,\n            \"property_name\": \"电信设备进网许可证编号\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828256,\n            \"property_name\": \"机身重量\",\n            \"required\": false\n        },\n        {\n            \"property_id\": 828257,\n            \"property_name\": \"后置摄像头像素\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"1亿像素\",\n                    \"value\": \"1亿像素\"\n                },\n                {\n                    \"name\": \"1200万+800万后置AF摄像头\",\n                    \"value\": \"1200万+800万后置AF摄像头\"\n                },\n                {\n                    \"name\": \"800万像素\",\n                    \"value\": \"800万像素\"\n                },\n                {\n                    \"name\": \"1300万像素\",\n                    \"value\": \"1300万像素\"\n                },\n                {\n                    \"name\": \"双1300万\",\n                    \"value\": \"双1300万\"\n                },\n                {\n                    \"name\": \"双1200万\",\n                    \"value\": \"双1200万\"\n                },\n                {\n                    \"name\": \"1278万\",\n                    \"value\": \"1278万\"\n                },\n                {\n                    \"name\": \"2000万\",\n                    \"value\": \"2000万\"\n                },\n                {\n                    \"name\": \"2070万\",\n                    \"value\": \"2070万\"\n                },\n                {\n                    \"name\": \"2020万\",\n                    \"value\": \"2020万\"\n                },\n                {\n                    \"name\": \"1310万\",\n                    \"value\": \"1310万\"\n                },\n                {\n                    \"name\": \"1600万\",\n                    \"value\": \"1600万\"\n                },\n                {\n                    \"name\": \"8万\",\n                    \"value\": \"8万\"\n                },\n                {\n                    \"name\": \"800-1300万\",\n                    \"value\": \"800-1300万\"\n                },\n                {\n                    \"name\": \"800-1600万\",\n                    \"value\": \"800-1600万\"\n                },\n                {\n                    \"name\": \"670万\",\n                    \"value\": \"670万\"\n                },\n                {\n                    \"name\": \"870万\",\n                    \"value\": \"870万\"\n                },\n                {\n                    \"name\": \"4100万\",\n                    \"value\": \"4100万\"\n                },\n                {\n                    \"name\": \"1300万\",\n                    \"value\": \"1300万\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                },\n                {\n                    \"name\": \"1400万\",\n                    \"value\": \"1400万\"\n                },\n                {\n                    \"name\": \"1210万\",\n                    \"value\": \"1210万\"\n                },\n                {\n                    \"name\": \"800万\",\n                    \"value\": \"800万\"\n                },\n                {\n                    \"name\": \"700万\",\n                    \"value\": \"700万\"\n                },\n                {\n                    \"name\": \"600万\",\n                    \"value\": \"600万\"\n                },\n                {\n                    \"name\": \"500万\",\n                    \"value\": \"500万\"\n                },\n                {\n                    \"name\": \"400万\",\n                    \"value\": \"400万\"\n                },\n                {\n                    \"name\": \"320万\",\n                    \"value\": \"320万\"\n                },\n                {\n                    \"name\": \"300万\",\n                    \"value\": \"300万\"\n                },\n                {\n                    \"name\": \"200万\",\n                    \"value\": \"200万\"\n                },\n                {\n                    \"name\": \"130万\",\n                    \"value\": \"130万\"\n                },\n                {\n                    \"name\": \"100万\",\n                    \"value\": \"100万\"\n                },\n                {\n                    \"name\": \"50万\",\n                    \"value\": \"50万\"\n                },\n                {\n                    \"name\": \"30万\",\n                    \"value\": \"30万\"\n                },\n                {\n                    \"name\": \"10万\",\n                    \"value\": \"10万\"\n                },\n                {\n                    \"name\": \"无摄像头\",\n                    \"value\": \"无摄像头\"\n                },\n                {\n                    \"name\": \"810万\",\n                    \"value\": \"810万\"\n                },\n                {\n                    \"name\": \"310万\",\n                    \"value\": \"310万\"\n                },\n                {\n                    \"name\": \"1900万\",\n                    \"value\": \"1900万\"\n                },\n                {\n                    \"name\": \"1800万\",\n                    \"value\": \"1800万\"\n                },\n                {\n                    \"name\": \"1230万\",\n                    \"value\": \"1230万\"\n                },\n                {\n                    \"name\": \"1200万\",\n                    \"value\": \"1200万\"\n                },\n                {\n                    \"name\": \"2300万\",\n                    \"value\": \"2300万\"\n                },\n                {\n                    \"name\": \"2100万\",\n                    \"value\": \"2100万\"\n                },\n                {\n                    \"name\": \"1000万\",\n                    \"value\": \"1000万\"\n                },\n                {\n                    \"name\": \"4800万+500万\",\n                    \"value\": \"4800万+500万\"\n                },\n                {\n                    \"name\": \"4000万\",\n                    \"value\": \"4000万\"\n                },\n                {\n                    \"name\": \"2400万\",\n                    \"value\": \"2400万\"\n                },\n                {\n                    \"name\": \"1600万像素\",\n                    \"value\": \"1600万像素\"\n                },\n                {\n                    \"name\": \"4800万\",\n                    \"value\": \"4800万\"\n                },\n                {\n                    \"name\": \"其他/others\",\n                    \"value\": \"其他/others\"\n                },\n                {\n                    \"name\": \"1200万+1200万像素\",\n                    \"value\": \"1200万+1200万像素\"\n                },\n                {\n                    \"name\": \"1200万+1300万像素\",\n                    \"value\": \"1200万+1300万像素\"\n                },\n                {\n                    \"name\": \"1200万+1600万+800万像素\",\n                    \"value\": \"1200万+1600万+800万像素\"\n                },\n                {\n                    \"name\": \"1200万+2000万像素\",\n                    \"value\": \"1200万+2000万像素\"\n                },\n                {\n                    \"name\": \"1200万+200万像素\",\n                    \"value\": \"1200万+200万像素\"\n                },\n                {\n                    \"name\": \"1200万+500万像素\",\n                    \"value\": \"1200万+500万像素\"\n                },\n                {\n                    \"name\": \"1200万+800万像素\",\n                    \"value\": \"1200万+800万像素\"\n                },\n                {\n                    \"name\": \"1200万像素\",\n                    \"value\": \"1200万像素\"\n                },\n                {\n                    \"name\": \"1300万+1300万像素\",\n                    \"value\": \"1300万+1300万像素\"\n                },\n                {\n                    \"name\": \"1300万+200万像素\",\n                    \"value\": \"1300万+200万像素\"\n                },\n                {\n                    \"name\": \"1300万+30万像素\",\n                    \"value\": \"1300万+30万像素\"\n                },\n                {\n                    \"name\": \"1300万像素\",\n                    \"value\": \"1300万像素\"\n                },\n                {\n                    \"name\": \"1600万+200万像素\",\n                    \"value\": \"1600万+200万像素\"\n                },\n                {\n                    \"name\": \"1600万+2400万+1600万像素\",\n                    \"value\": \"1600万+2400万+1600万像素\"\n                },\n                {\n                    \"name\": \"1600万+500万像素\",\n                    \"value\": \"1600万+500万像素\"\n                },\n                {\n                    \"name\": \"1600万+800万像素\",\n                    \"value\": \"1600万+800万像素\"\n                },\n                {\n                    \"name\": \"1600万像素\",\n                    \"value\": \"1600万像素\"\n                },\n                {\n                    \"name\": \"2000万+1600万+200万像素\",\n                    \"value\": \"2000万+1600万+200万像素\"\n                },\n                {\n                    \"name\": \"2000万+1600万像素\",\n                    \"value\": \"2000万+1600万像素\"\n                },\n                {\n                    \"name\": \"2000万+200万像素\",\n                    \"value\": \"2000万+200万像素\"\n                },\n                {\n                    \"name\": \"200万像素\",\n                    \"value\": \"200万像素\"\n                },\n                {\n                    \"name\": \"2100万像素\",\n                    \"value\": \"2100万像素\"\n                },\n                {\n                    \"name\": \"2400万+1000万+800万+500万像素\",\n                    \"value\": \"2400万+1000万+800万+500万像素\"\n                },\n                {\n                    \"name\": \"2400万+1600万像素\",\n                    \"value\": \"2400万+1600万像素\"\n                },\n                {\n                    \"name\": \"4000万+2000万+800万像素\",\n                    \"value\": \"4000万+2000万+800万像素\"\n                },\n                {\n                    \"name\": \"4800万+1600万+200万像素\",\n                    \"value\": \"4800万+1600万+200万像素\"\n                },\n                {\n                    \"name\": \"500万像素\",\n                    \"value\": \"500万像素\"\n                },\n                {\n                    \"name\": \"800万+200万像素\",\n                    \"value\": \"800万+200万像素\"\n                },\n                {\n                    \"name\": \"800万像素\",\n                    \"value\": \"800万像素\"\n                },\n                {\n                    \"name\": \"4800万像素\",\n                    \"value\": \"4800万像素\"\n                },\n                {\n                    \"name\": \"2400万像素\",\n                    \"value\": \"2400万像素\"\n                },\n                {\n                    \"name\": \"1600万+800万+500万像素\",\n                    \"value\": \"1600万+800万+500万像素\"\n                },\n                {\n                    \"name\": \"4800万+500万像素\",\n                    \"value\": \"4800万+500万像素\"\n                },\n                {\n                    \"name\": \"1200万+1300万+200万像素\",\n                    \"value\": \"1200万+1300万+200万像素\"\n                },\n                {\n                    \"name\": \"1200万+1200万+1200万+1200万+1200万像素\",\n                    \"value\": \"1200万+1200万+1200万+1200万+1200万像素\"\n                },\n                {\n                    \"name\": \"1600万+1200万像素\",\n                    \"value\": \"1600万+1200万像素\"\n                },\n                {\n                    \"name\": \"1600万+1200万+1200万像素\",\n                    \"value\": \"1600万+1200万+1200万像素\"\n                },\n                {\n                    \"name\": \"4800万+1600万+1200万像素\",\n                    \"value\": \"4800万+1600万+1200万像素\"\n                },\n                {\n                    \"name\": \"4800万+1300万+800万像素\",\n                    \"value\": \"4800万+1300万+800万像素\"\n                },\n                {\n                    \"name\": \"4800万+1200万像素\",\n                    \"value\": \"4800万+1200万像素\"\n                },\n                {\n                    \"name\": \"4800万+1300万+500万像素\",\n                    \"value\": \"4800万+1300万+500万像素\"\n                },\n                {\n                    \"name\": \"2400万+1600万+200万像素\",\n                    \"value\": \"2400万+1600万+200万像素\"\n                },\n                {\n                    \"name\": \"1200万+800万+500万像素\",\n                    \"value\": \"1200万+800万+500万像素\"\n                },\n                {\n                    \"name\": \"4000万+1600万+800万像素\",\n                    \"value\": \"4000万+1600万+800万像素\"\n                },\n                {\n                    \"name\": \"2400万+800万+200万像素\",\n                    \"value\": \"2400万+800万+200万像素\"\n                },\n                {\n                    \"name\": \"4800万+2000万像素\",\n                    \"value\": \"4800万+2000万像素\"\n                },\n                {\n                    \"name\": \"4800万+1600万+800万+200万像素\",\n                    \"value\": \"4800万+1600万+800万+200万像素\"\n                },\n                {\n                    \"name\": \"3200万+800万+500万像素\",\n                    \"value\": \"3200万+800万+500万像素\"\n                },\n                {\n                    \"name\": \" 4800万+1600万+200万+200万像素\",\n                    \"value\": \" 4800万+1600万+200万+200万像素\"\n                },\n                {\n                    \"name\": \"2400万+800万+200万+200万像素\",\n                    \"value\": \"2400万+800万+200万+200万像素\"\n                },\n                {\n                    \"name\": \"4800万+800万+200万像素\",\n                    \"value\": \"4800万+800万+200万像素\"\n                },\n                {\n                    \"name\": \"4800万+1300万像素\",\n                    \"value\": \"4800万+1300万像素\"\n                },\n                {\n                    \"name\": \"4800万+2000万+800万像素\",\n                    \"value\": \"4800万+2000万+800万像素\"\n                },\n                {\n                    \"name\": \"4800万+200万像素\",\n                    \"value\": \"4800万+200万像素\"\n                },\n                {\n                    \"name\": \"4800万+2000万+1600万像素\",\n                    \"value\": \"4800万+2000万+1600万像素\"\n                },\n                {\n                    \"name\": \"4800万+1300万+200万像素\",\n                    \"value\": \"4800万+1300万+200万像素\"\n                },\n                {\n                    \"name\": \"4800万+800万+200万+200万像素\",\n                    \"value\": \"4800万+800万+200万+200万像素\"\n                },\n                {\n                    \"name\": \" 6400万+800万+200万+200万像素\",\n                    \"value\": \" 6400万+800万+200万+200万像素\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828258,\n            \"property_name\": \"是否支持NFC\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"是\",\n                    \"value\": \"是\"\n                },\n                {\n                    \"name\": \"否\",\n                    \"value\": \"否\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828259,\n            \"property_name\": \"是否支持红外\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"是\",\n                    \"value\": \"是\"\n                },\n                {\n                    \"name\": \"否\",\n                    \"value\": \"否\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828260,\n            \"property_name\": \"电池类型\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"不可拆卸式电池\",\n                    \"value\": \"不可拆卸式电池\"\n                },\n                {\n                    \"name\": \"可拆卸式电池\",\n                    \"value\": \"可拆卸式电池\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828261,\n            \"property_name\": \"运行内存RAM\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"1GB\",\n                    \"value\": \"1GB\"\n                },\n                {\n                    \"name\": \"2GB\",\n                    \"value\": \"2GB\"\n                },\n                {\n                    \"name\": \"3GB\",\n                    \"value\": \"3GB\"\n                },\n                {\n                    \"name\": \"4GB\",\n                    \"value\": \"4GB\"\n                },\n                {\n                    \"name\": \"6GB\",\n                    \"value\": \"6GB\"\n                },\n                {\n                    \"name\": \"8GB\",\n                    \"value\": \"8GB\"\n                },\n                {\n                    \"name\": \"10GB\",\n                    \"value\": \"10GB\"\n                },\n                {\n                    \"name\": \"12GB\",\n                    \"value\": \"12GB\"\n                },\n                {\n                    \"name\": \"16GB\",\n                    \"value\": \"16GB\"\n                },\n                {\n                    \"name\": \"32MB\",\n                    \"value\": \"32MB\"\n                },\n                {\n                    \"name\": \"64MB\",\n                    \"value\": \"64MB\"\n                },\n                {\n                    \"name\": \"128MB\",\n                    \"value\": \"128MB\"\n                },\n                {\n                    \"name\": \"256MB\",\n                    \"value\": \"256MB\"\n                },\n                {\n                    \"name\": \"512MB\",\n                    \"value\": \"512MB\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828262,\n            \"property_name\": \"机身材质\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"玻璃后盖\",\n                    \"value\": \"玻璃后盖\"\n                },\n                {\n                    \"name\": \"塑料后盖\",\n                    \"value\": \"塑料后盖\"\n                },\n                {\n                    \"name\": \"金属后盖\",\n                    \"value\": \"金属后盖\"\n                },\n                {\n                    \"name\": \"塑料边框\",\n                    \"value\": \"塑料边框\"\n                },\n                {\n                    \"name\": \"金属边框\",\n                    \"value\": \"金属边框\"\n                },\n                {\n                    \"name\": \"不锈钢边框\",\n                    \"value\": \"不锈钢边框\"\n                },\n                {\n                    \"name\": \"超瓷晶面板\",\n                    \"value\": \"超瓷晶面板\"\n                },\n                {\n                    \"name\": \"玻璃机身\",\n                    \"value\": \"玻璃机身\"\n                },\n                {\n                    \"name\": \"铝金属边框\",\n                    \"value\": \"铝金属边框\"\n                },\n                {\n                    \"name\": \"亚光质感玻璃背板\",\n                    \"value\": \"亚光质感玻璃背板\"\n                },\n                {\n                    \"name\": \"\",\n                    \"value\": \"\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828263,\n            \"property_name\": \"CPU品牌\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"海思（Hisilicon)\",\n                    \"value\": \"海思（Hisilicon)\"\n                },\n                {\n                    \"name\": \"联发科（MTK）\",\n                    \"value\": \"联发科（MTK）\"\n                },\n                {\n                    \"name\": \"苹果(Apple）\",\n                    \"value\": \"苹果(Apple）\"\n                },\n                {\n                    \"name\": \"其它\",\n                    \"value\": \"其它\"\n                },\n                {\n                    \"name\": \"三星（Exynos）\",\n                    \"value\": \"三星（Exynos）\"\n                },\n                {\n                    \"name\": \"高通骁龙（Snapdragon)\",\n                    \"value\": \"高通骁龙（Snapdragon)\"\n                },\n                {\n                    \"name\": \"展讯\",\n                    \"value\": \"展讯\"\n                }\n            ]\n        },\n        {\n            \"property_id\": 828264,\n            \"property_name\": \"CPU核心数\",\n            \"required\": false,\n            \"options\": [\n                {\n                    \"name\": \"八核\",\n                    \"value\": \"八核\"\n                },\n                {\n                    \"name\": \"六核\",\n                    \"value\": \"六核\"\n                },\n                {\n                    \"name\": \"十核\",\n                    \"value\": \"十核\"\n                },\n                {\n                    \"name\": \"双核\",\n                    \"value\": \"双核\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductSetOfflineRequest.json",
    "content": "﻿{\n    \"product_id\": \"3539925204033339668\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/ProductSetOnlineRequest.json",
    "content": "﻿{\n    \"product_id\": \"3539925204033339668\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityDetailRequest.json",
    "content": "﻿{\n    \"product_id\": \"3502384918913228300\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityDetailResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"field_problem\": [\n            {\n                \"field_key\": \"product_name\",\n                \"field_name\": \"标题\",\n                \"problem_key\": 501,\n                \"problem_name\": \"详情页图片较少\",\n                \"suggestion\": \"商品素材缺少，详情页的图片说明较少。促进商品购买的决策性信息过少，影响购买，建议丰富商品信息，上传不少于5张详情图片，将商品优势展示出来\",\n                \"problem_type\": 1\n            }\n        ],\n        \"product_id\": 3469673915587121000,\n        \"product_name\": \"奈克牌大皮鞋\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityListRequest.json",
    "content": "﻿{\n    \"product_id\": 3502373827210525080,\n    \"product_name\": \"奈克牌皮鞋\",\n    \"order_by\": \"desc\",\n    \"status\": 1,\n    \"page\": 1,\n    \"page_size\": 20,\n    \"task_id\": 11013491\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"quality_list\": [\n            {\n                \"product_id\": 3502373827210525000,\n                \"product_name\": \"奈克牌皮鞋\",\n                \"problem_num_to_improve\": 2,\n                \"problem_type_distribution\": [\n                    {\n                        \"type_name\": \"关键信息需优化\",\n                        \"num\": 1\n                    }\n                ],\n                \"meet_standard\": 2,\n                \"base_score\": 20\n            }\n        ],\n        \"total\": 50\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityTaskRequest.json",
    "content": "﻿{\n    \"brief_only\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Product/Quality/ProductQualityTaskResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"product_num_total\": 10,\n        \"product_num_finished\": 10,\n        \"task_status\": 2,\n        \"product_num_to_improve_total\": 10,\n        \"problem_num_total\": 10,\n        \"problem_num_to_improve\": 10,\n        \"task_finish_time\": \"2021-09-07 01:21:46\",\n        \"problem_type_distribution\": [\n            {\n                \"type_key\": 1,\n                \"type_name\": \"商品信息不规范\",\n                \"num\": 2\n            }\n        ],\n        \"task_id\": 15293,\n        \"standard_rate\": 10,\n        \"is_standard\": true,\n        \"meet_standard_num\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleApplyChangePriceRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"123\",\n    \"price\": 123\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleApplyChangePriceResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"message\": \"ok\",\n        \"err_no\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleChangePriceRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"4782813149182887526\",\n    \"recycle_price\": 4000,\n    \"consignment_price\": 3000\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleConfirmReceiveRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleCreatePriceRequest.json",
    "content": "﻿{\n    \"is_agree\": true,\n    \"clue_order_id\": \"4782813149182887526\",\n    \"recycle_price\": 4000,\n    \"consignment_price\": 3000,\n    \"refuse_reason\": 1,\n    \"remark\": \"测试\",\n    \"address_id\": 1111\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleLogisticsBackRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"6995829284321640492\",\n    \"company\": \"顺丰\",\n    \"company_code\": \"shunfeng\",\n    \"logistics_code\": \"SF00000003\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleLogisticsBackResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"success\": \"true\",\n        \"err_no\": \"10002\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleQualityTestingResultRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"4782813149182887526\",\n    \"recycle_price\": 4000,\n    \"consignment_price\": 3000,\n    \"is_passed\": true,\n    \"failed_reason\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Recycle/RecycleSellSucceedRequest.json",
    "content": "﻿{\n    \"clue_order_id\": \"123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUEditCodeRequest.json",
    "content": "﻿{\n    \"sku_id\": \"123\",\n    \"code\": \"abc\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUEditPriceRequest.json",
    "content": "﻿{\n    \"sku_id\": \"123\",\n    \"price\": 2100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUListRequest.json",
    "content": "﻿{\n    \"product_id\": \"3539925204033339668\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUListResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"id\": 1445163,\n            \"out_sku_id\": 0,\n            \"product_id\": 3306028663170020210,\n            \"product_id_str\": \"3306028663170020210\",\n            \"spec_detail_id1\": 3153838,\n            \"spec_detail_id2\": 3153843,\n            \"spec_detail_id3\": 0,\n            \"spec_detail_name1\": \"白色\",\n            \"spec_detail_name2\": \"大\",\n            \"spec_detail_name3\": \"\",\n            \"stock_num\": 84,\n            \"price\": 1280,\n            \"spec_id\": 1515634,\n            \"create_time\": 0,\n            \"code\": \"\",\n            \"sku_type\": 0,\n            \"stock_map\": {}\n        },\n        {\n            \"id\": 1445164,\n            \"out_sku_id\": 0,\n            \"product_id\": 3306028663170020210,\n            \"product_id_str\": \"3306028663170020210\",\n            \"spec_detail_id1\": 3153838,\n            \"spec_detail_id2\": 3153844,\n            \"spec_detail_id3\": 0,\n            \"spec_detail_name1\": \"37/38适合35-37\",\n            \"spec_detail_name2\": \"红格子\",\n            \"spec_detail_name3\": \"\",\n            \"stock_num\": 0,\n            \"price\": 1280,\n            \"spec_id\": 1515634,\n            \"create_time\": 0,\n            \"code\": \"\",\n            \"sku_type\": 1,\n            \"stock_map\": {\n                \"123\": 10,\n                \"1234\": 30,\n                \"12345\": 105\n            },\n            \"supplier_id\": 123\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUStockNumberRequest.json",
    "content": "﻿{\n    \"sku_id\": 12345,\n    \"code\": \"abc\",\n    \"out_warehouse_id\": \"AN871\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUStockNumberResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"sku_id\": 12345,\n        \"out_sku_id\": 12345,\n        \"code\": \"abc\",\n        \"sku_type\": 0,\n        \"stock_num\": 12,\n        \"prehold_stock_num\": 12,\n        \"prom_stock_num\": 12,\n        \"step_stock_num\": 12,\n        \"prehold_step_stock_num\": 12,\n        \"prom_step_stock_num\": 12,\n        \"stock_num_map\": {},\n        \"prehold_stock_map\": {},\n        \"ship_rule_map\": {},\n        \"normal_stock_num\": 1,\n        \"channel_stock_num\": 1\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SKU/SKUSyncStockRequest.json",
    "content": "﻿{\n    \"product_id\": \"123456\",\n    \"sku_id\": \"123\",\n    \"incremental\": false,\n    \"out_warehouse_id\": \"123\",\n    \"idempotent_id\": \"2\",\n    \"stock_num\": 300\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUAddShopSPURequest.json",
    "content": "﻿{\n    \"spu_name\": \"Apple/Iphone11\",\n    \"upc_code\": \"A1101\",\n    \"category_id\": 31860,\n    \"brand_id\": 1001,\n    \"property_infos\": [\n        {\n            \"property_id\": 1493,\n            \"value_id\": 10001,\n            \"parent_value_id\": 0,\n            \"level\": 1,\n            \"value_name\": \"\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUAddShopSPUResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"spu_id\": \"6950545601998242092\"\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetKeyPropertyByCategoryIdRequest.json",
    "content": "﻿{\n    \"category_id\": 123,\n    \"page\": 0,\n    \"size\": 20\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetKeyPropertyByCategoryIdResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"property_info\": [\n            {\n                \"rel_value_id\": 1001,\n                \"property_id\": 1487,\n                \"property_name\": \"型号\",\n                \"value_id\": 1001,\n                \"value_name\": \"iphone11\"\n            }\n        ],\n        \"brand_info\": [\n            {\n                \"rel_value_id\": 0,\n                \"property_id\": 1493,\n                \"property_name\": \"品牌\",\n                \"value_id\": 1001,\n                \"value_name\": \"苹果\"\n            }\n        ],\n        \"total\": 30\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetSPUInformationBySPUIdRequest.json",
    "content": "﻿{\n    \"spu_id\": 6950545601998242092\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetSPUInformationBySPUIdResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"spu_property_infos\": [\n            {\n                \"property_id\": 1493,\n                \"property_name\": \"品牌\",\n                \"type\": 0,\n                \"property_alias\": \"品牌别名\",\n                \"spu_property_value_info\": [\n                    {\n                        \"value_id\": 1001,\n                        \"value_name\": \"苹果\",\n                        \"value_alias\": \"苹果别名\"\n                    }\n                ]\n            }\n        ],\n        \"spu_info\": {\n            \"spu_name\": \"苹果/iphone11\",\n            \"upc_code\": \"A1001\",\n            \"category_id\": 31860,\n            \"brand_id\": 1001,\n            \"status\": 1,\n            \"update_time\": \"2020-11-11 11:00:00\",\n            \"create_time\": \"2020-11-11 11:00:00\",\n            \"spu_id\": \"6950545601998242092\",\n            \"op_status\": 0,\n            \"audit_time\": \"2020-11-11 11:00:00\"\n        }\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetSPUTemplateRequest.json",
    "content": "﻿{\n    \"category_id\": 123\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/SPU/SPUGetSPUTemplateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"product_format\": [\n            {\n                \"name\": \"后置摄像头像素\",\n                \"options\": [\n                    {\n                        \"name\": \"1300万像素\",\n                        \"value_id\": 26219,\n                        \"sequence\": 1\n                    }\n                ],\n                \"require\": 1,\n                \"type\": \"select\",\n                \"category_id\": 31860,\n                \"multi_select_max\": 5,\n                \"property_type\": 0,\n                \"property_id\": 1001,\n                \"sequence\": 1\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Shop/ShopBandListResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"id\": 14133,\n            \"brand_chinese_name\": \"品牌名\",\n            \"brand_english_name\": \"brand_name\",\n            \"brand_reg_num\": \"12363569\"\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Shop/ShopGetShopCategoryResponse.json",
    "content": "﻿{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"类目名称\",\n            \"level\": 1,\n            \"parent_id\": 1,\n            \"is_leaf\": true,\n            \"enable\": true\n        }\n    ],\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Storage/StorageNotifySaleReturnStatusRequest.json",
    "content": "﻿{\n    \"logistics_no\": \"LB00001\",\n    \"vendor\": \"Vendor1\",\n    \"status\": 1,\n    \"occurrence_time\": 1620647951,\n    \"reason\": \"{\\\"error_code\\\": \\\"\\\",\\\"error_message\\\": \\\"\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Token/TokenCreateRequest.json",
    "content": "﻿{\n    \"code\": \"your_code\",\n    \"grant_type\": \"authorization_code\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Token/TokenCreateResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"access_token\": \"ACCESS_TOKEN\",\n        \"expires_in\": 530808,\n        \"refresh_token\": \"REFRESH_TOKEN\",\n        \"scope\": \"SCOPE\",\n        \"shop_id\": 12345,\n        \"shop_name\": \"SHOPNAME\"\n    },\n    \"err_no\": 0,\n    \"log_id\": \"202106081408160101311300265F00266E\",\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseCreateBatchRequest.json",
    "content": "﻿{\n    \"out_warehouse_list\": [\n        {\n            \"out_warehouse_id\": \"abc\",\n            \"name\": \"test\",\n            \"intro\": \"test\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseCreateBatchResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"qwb\": true\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseCreateRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\",\n    \"name\": \"test\",\n    \"intro\": \"test\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseCreateResponse.json",
    "content": "﻿{\n    \"data\": 6853386941874864000,\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseEditRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\",\n    \"name\": \"test\",\n    \"intro\": \"test\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseInformationRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseInformationResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"warehouse_id\": 6152361283123,\n        \"out_warehouse_id\": \"ABC\",\n        \"name\": \"名称测试\",\n        \"intro\": \"介绍测试\",\n        \"addr\": [\n            {\n                \"addr_id1\": 1,\n                \"addr_id2\": 2,\n                \"addr_id3\": 3,\n                \"addr_id4\": 4,\n                \"update_time\": 1624245280,\n                \"create_time\": 1624245280\n            }\n        ],\n        \"update_time\": 1624245280,\n        \"create_time\": 1624245280,\n        \"shop_id\": 95250\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseListRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\",\n    \"page\": 0,\n    \"size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseListResponse.json",
    "content": "﻿{\n    \"data\": {\n        \"warehouses\": [\n            {\n                \"warehouse_id\": 6853386941874864000,\n                \"name\": \"名字\",\n                \"intro\": \"介绍\",\n                \"update_time\": 1623918481,\n                \"create_time\": 1623918481,\n                \"out_warehouse_id\": \"ABC\",\n                \"addr\": [\n                    {\n                        \"addr_id1\": 100,\n                        \"addr_id2\": 100100,\n                        \"addr_id3\": 100110,\n                        \"addr_id4\": 100111,\n                        \"update_time\": 1623918481,\n                        \"create_time\": 1623918481\n                    }\n                ],\n                \"shop_id\": 123456\n            }\n        ],\n        \"total\": 3\n    },\n    \"err_no\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseRemoveAddressRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\",\n    \"addr\": {\n        \"addr_id1\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseSetAddressRequest.json",
    "content": "﻿{\n    \"out_warehouse_id\": \"abc\",\n    \"addr\": {\n        \"addr_id1\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/ModelSamples/Warehouse/WarehouseSetPriorityRequest.json",
    "content": "﻿{\n    \"addr\": {\n        \"addr_id1\": 0\n    },\n    \"priorities\": {\n        \"123213\": 0,\n        \"123214\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n\t<PropertyGroup>\n\t\t<TargetFrameworks>net472; net6.0</TargetFrameworks>\n\t\t<LangVersion>latest</LangVersion>\n\t\t<Nullable>enable</Nullable>\n\t\t<NullableReferenceTypes>true</NullableReferenceTypes>\n\t\t<IsPackable>false</IsPackable>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Remove=\".gitignore\" />\n\t\t<Content Include=\"appsettings.json\">\n\t\t\t<CopyToOutputDirectory>Never</CopyToOutputDirectory>\n\t\t\t<CopyToPublishDirectory>Never</CopyToPublishDirectory>\n\t\t</Content>\n\t\t<Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n\t\t\t<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n\t\t\t<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n\t\t</Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n        <Content Include=\"EventSamples/**/*.json\" />\n        <Content Include=\"EventSamples/**/*.xml\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.4.0\" />\n\t\t<PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.1.0-alpha.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.4.2\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.4.5\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.DouyinShop\\SKIT.FlurlHttpClient.ByteDance.DouyinShop.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/TestCase_ApiExecuteTokenTests.cs",
    "content": "﻿using System.Threading.Tasks;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests\n{\n    public class TestCase_ApiExecuteTokenTests\n    {\n        [Fact(DisplayName = \"测试用例：调用 API [POST] /token/create\")]\n        public async Task TestExecuteTokenCreate()\n        {\n            var request = new Models.TokenCreateRequest()\n            {\n                Code = \"TEST_CODE\"\n            };\n            var response = await TestClients.Instance.ExecuteTokenCreateAsync(request);\n\n            Assert.True(response.IsSuccessful());\n            Assert.NotNull(response.Data);\n            Assert.NotEmpty(response.Data.AccessToken);\n            Assert.True(response.Data.ExpiresIn > 0);\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/TestCase_CodeReview.cs",
    "content": "﻿using SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests\n{\n    public class TestCase_CodeReview\n    {\n        [Fact(DisplayName = \"测试用例：代码质量分析\")]\n        public void TestCodeAnalyzer()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                CodeAnalyzerOptions options = new CodeAnalyzerOptions()\n                {\n                    AssemblyName = \"SKIT.FlurlHttpClient.ByteDance.DouyinShop\",\n                    WorkDirectoryForSourceCode = TestConfigs.WorkDirectoryForSdk,\n                    WorkDirectoryForTestSample = TestConfigs.WorkDirectoryForTest\n                };\n                CodeAnalyzer analyzer = new CodeAnalyzer(options);\n                analyzer.Start();\n                analyzer.Assert();\n                analyzer.Flush();\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/TestClients.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new DouyinShopClient(new DouyinShopClientOptions()\n            {\n                AppKey = TestConfigs.DouyinShopAppKey,\n                AppSecret = TestConfigs.DouyinShopAppSecret\n            });\n        }\n\n        public static readonly DouyinShopClient Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/TestConfigs.cs",
    "content": "﻿using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfig\");\n                DouyinShopAppKey = config.GetProperty(\"AppKey\").GetString()!;\n                DouyinShopAppSecret = config.GetProperty(\"AppSecret\").GetString()!;\n                DouyinShopAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n\n                WorkDirectoryForSdk = json.RootElement.GetProperty(\"WorkDirectoryForSdk\").GetString()!;\n                WorkDirectoryForTest = json.RootElement.GetProperty(\"WorkDirectoryForTest\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly string DouyinShopAppKey;\n        public static readonly string DouyinShopAppSecret;\n        public static readonly string DouyinShopAccessToken;\n\n        public static readonly string WorkDirectoryForSdk;\n        public static readonly string WorkDirectoryForTest;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests/appsettings.json",
    "content": "﻿{\n    \"TestConfig\": {\n        \"AppKey\": \"请在此填写用于测试的抖店 AppKey\",\n        \"AppSecret\": \"请在此填写用于测试的抖店 AppSecret\",\n        \"AccessToken\": \"请在此填写用于测试的抖店 AccessToken\"\n    },\n    \"WorkDirectoryForSdk\": \"请输入当前 SDK 项目所在的目录完整路径，如 C:\\\\Project\\\\src\\\\SKIT.FlurlHttpClient.ByteDance.DouyinShop\\\\\",\n    \"WorkDirectoryForTest\": \"请输入当前测试项目所在的目录完整路径，如 C:\\\\Project\\\\test\\\\SKIT.FlurlHttpClient.ByteDance.DouyinShop.UnitTests\\\\\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/Auth/ComponentAuthorizedEvent.json",
    "content": "﻿{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"AUTHORIZED\",\n    \"AuthorizationCode\": \"授权码\",\n    \"AuthorizationCodeExpiresIn\": 3600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/Auth/ComponentPushTicketEvent.json",
    "content": "{\n    \"Ticket\": \"8c0da4968b0d1e28acbc1d738a56607d\",\n    \"FromUserName\": \"ByteDanceMicroApp\",\n    \"CreateTime\": \"2019-01-14 12:45:10\",\n    \"MsgType\": \"Ticket\",\n    \"Event\": \"PUSH\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/Auth/ComponentUnauthorizedEvent.json",
    "content": "﻿{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"UNAUTHORIZED\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/Auth/ComponentUpdateAuthorizedEvent.json",
    "content": "﻿{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"UPDATE_AUTHORIZED\",\n    \"AuthorizationCode\": \"授权码\",\n    \"AuthorizationCodeExpiresIn\": 3600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/AppNameResetEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APP_NAME_RESET_NOTIFICATION\",\n    \"AppNameResetNotification\": \"您好，您管理的小程序「%s」由于长时间未提交版本审核，名称已经被重置为「名称过期%s」。如需修改，请前往配置页面重新填写名称。\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/ModifyAppCategoryEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"MODIFY_APP_CATEGORY\",\n    \"ModifyAppCategoryResults\": [\n        {\n            \"category\": \"158,159,259\",\n            \"categoryName\": \"社交类-社交-直播\",\n            \"status\": 1,\n            \"reason\": \"\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/ModifyAppIconEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"MODIFY_APP_ICON\",\n    \"ModifyAppIconResults\": {\n        \"reason\": \"小程序名称格式不符合规范\",\n        \"status\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/ModifyAppIntroductionEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"MODIFY_APP_INTRO\",\n    \"ModifyAppIntroResults\": {\n        \"reason\": \"小程序简介格式不符合规范\",\n        \"status\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/ModifyAppNameEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"MODIFY_APP_NAME\",\n    \"ModifyAppNameResults\": {\n        \"advice\": \"\",\n        \"reason\": \"小程序名称格式不符合规范\",\n        \"status\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppManagement/PackageAuditEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"PACKAGE_AUDIT\",\n    \"AuditResults\": [\n        {\n            \"hostName\": \"toutiao\",\n            \"reason\": [ \"\", \"\" ],\n            \"status\": 1,\n            \"auditDetail\": [\n                {\n                    \"reason\": \"xxx\",\n                    \"modifyGuide\": {\n                        \"name\": \"xxx\",\n                        \"link\": \"xxx\"\n                    },\n                    \"detailFile\": \"xxx\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/AliasAuditResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"ALIAS_AUDIT_RESULT\",\n    \"EventContent\": {\n        \"alias\": \"别名\",\n        \"status\": 1,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ApplyCapabilityEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APPLY_CAPACITY\",\n    \"EventContent\": {\n        \"capacity_key\": \"能力key\",\n        \"status\": 1,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ApplyLiveCapabilityEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APPLY_LIVE_CAPABILITY\",\n    \"ApplyLiveCapabilityResults\": {\n        \"status\": 0,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ApplyPhoneNumberCapabilityEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APPLY_PHONE_NUMBER_CAPABILITY\",\n    \"ApplyPhoneNumberCapabilityResults\": {\n        \"status\": 0,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ApplyShareTemplateEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APPLY_SHARE_TEMPLATE\",\n    \"ApplyShareTemplateResults\": {\n        \"templateId\": \"xxx\",\n        \"status\": 0,\n        \"reason\": \"[\\\"xxx\\\",\\\"xxx\\\"]\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ApplyVideoCapabilityEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"APPLY_VIDEO_CAPABILITY\",\n    \"ApplyVideoCapabilityResults\": {\n        \"status\": 0,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/AwemePermissionAuditResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"AWEME_PERMISSION_AUDIT_RESULT\",\n    \"EventContent\": {\n        \"permission_key\": \"权限key\",\n        \"status\": 1,\n        \"reject_reason_list\": [ \"xxx\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/AwemeVideoKeywordAuditResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"AWEME_VIDEO_KEYWORD_AUDIT_RESULT\",\n    \"EventContent\": {\n        \"keyword\": \"关键词名称\",\n        \"status\": 1,\n        \"reject_reason_list\": [ \"\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/BindAwemeUserEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"BIND_AWEME_USER\",\n    \"EventContent\": {\n        \"type\": \"绑定类型\",\n        \"aweme_id\": \"抖音号\",\n        \"user_name\": \"抖音用户昵称\",\n        \"bind_status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/CreateSubscribeNotificationTemplateResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"CREATE_SUBSCRIBE_NOTIFICATION_TEMPLATE_RESULT\",\n    \"EventContent\": {\n        \"title\": \"xxx\",\n        \"keyword_list\": [ \"xx\", \"xxx\" ],\n        \"status\": 1,\n        \"reject_reason_list\": [ \"xxx\", \"xxx\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/ScopeQuotaAuditResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"SCOPE_QUOTA_AUDIT_RESULT\",\n    \"EventContent\": {\n        \"scope\": \"scope名称\",\n        \"start_date\": \"2006-01-02\",\n        \"end_date\": \"2006-01-02\",\n        \"apply_quota\": 100,\n        \"status\": 1,\n        \"reject_reason_list\": [ \"\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/SearchTagAuditResultEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"SEARCH_TAG_AUDIT_RESULT\",\n    \"EventContent\": {\n        \"search_tag\": \"搜索标签\",\n        \"status\": 1,\n        \"reason\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/OpenApi/MicroAppOperation/SelfMountBindEvent.json",
    "content": "{\n    \"AppId\": \"授权小程序的appid\",\n    \"TpAppId\": \"第三方小程序应用appid\",\n    \"EventTime\": \"2019-01-14 12:45:10\",\n    \"Event\": \"SELT_MOUNT_BIND\",\n    \"EventContent\": {\n        \"capacity_key\": \"能力key\",\n        \"aweme_id\": \"抖音号\",\n        \"user_name\": \"抖音用户昵称\",\n        \"bind_status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/ProductApi/ProductEvent.json",
    "content": "{\n    \"developer_flag\": \"1234abc\",\n    \"notice_type\": 1,\n    \"produce_examine_res\": false,\n    \"produce_id\": 1,\n    \"produce_name\": \"produce1\",\n    \"produce_status\": -1,\n    \"callback_data\": \"aabb1\",\n    \"reason\": {\n        \"商品上传失败\": [ \"课程存在违法信息\", \"课程价格不合理\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/ProductApi/ProductFulfilmentEvent.json",
    "content": "{\n    \"developer_flag\": \"1234abc\",\n    \"notice_type\": 31,\n    \"produce_id\": \"35424324\",\n    \"produce_name\": \"produce1\",\n    \"resource_uri\": \"product/resource/2342312\",\n    \"audit_status\": 2,\n    \"callback_data\": \"aabb1\",\n    \"reason\": \"禁入课程\",\n    \"position\": \"音频\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/ProductApi/ProductQualificationEvent.json",
    "content": "{\n    \"developer_flag\": \"1234abc\",\n    \"notice_type\": 11,\n    \"produce_examine_res\": false,\n    \"object_id\": \"T243252323423\",\n    \"object_name\": \"老师\",\n    \"produce_status\": -1,\n    \"callback_data\": \"aabb1\",\n    \"reason\": {\n        \"教师资质认证失败\": [ \"教师关键信息缺失\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/ProductApi/ProductResourceEvent.json",
    "content": "{\n    \"developer_flag\": \"123abc\",\n    \"notice_type\": 4,\n    \"produce_source_examine_res\": false,\n    \"produce_source_status\": -1,\n    \"resource_tos_uri\": \"product/app1/source1\",\n    \"callback_data\": \"aabb1\",\n    \"reason\": {\n        \"商品资源上传失败\": [\n            \"资源存在违法信息\"\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/_/Message/ImageMessageEvent.json",
    "content": "﻿{\n    \"ToUserName\": \"appid\",\n    \"FromUserName\": \"openid\",\n    \"CreateTime\": 1577364225,\n    \"MsgType\": \"image\",\n    \"PicUrl\": \"this is image url link\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/_/Message/ImageMessageEvent.xml",
    "content": "﻿<xml>\n    <ToUserName><![CDATA[appid]]></ToUserName>\n    <FromUserName><![CDATA[openid]]></FromUserName>\n    <CreateTime>1577364225</CreateTime>\n    <MsgType><![CDATA[image]]></MsgType>\n    <PicUrl><![CDATA[this is image url link]]></PicUrl>\n</xml>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/_/Message/TextMessageEvent.json",
    "content": "﻿{\n    \"ToUserName\": \"appid\",\n    \"FromUserName\": \"openid\",\n    \"CreateTime\": 1577364225,\n    \"MsgType\": \"text\",\n    \"Content\": \"text content\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/EventSamples/_/Message/TextMessageEvent.xml",
    "content": "﻿<xml>\n    <ToUserName><![CDATA[appid]]></ToUserName>\n    <FromUserName><![CDATA[openid]]></FromUserName>\n    <CreateTime>1577364225</CreateTime>\n    <MsgType><![CDATA[text]]></MsgType>\n    <Content><![CDATA[text content]]></Content>\n</xml>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/IMPORTANT_CodeAnalyzeTests.cs",
    "content": "using System;\nusing System.IO;\nusing System.Linq;\nusing System.Net.Http;\nusing System.Reflection;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\nusing Microsoft.CodeAnalysis.CSharp.Syntax;\nusing SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi;\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi;\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi;\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast;\n\n    public class CodeAnalyzeTests\n    {\n        // NOTICE:\n        //   如果 Visual Studio 遇到 “缺少 SKIT.FlurlHttpClient.Tools.CodeAnalyzer 包” 的错误，\n        //   请参考此 Issue：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/issues/8\n\n        [Fact(DisplayName = \"代码质量分析\")]\n        public void CodeAnalyze()\n        {\n            Assert.Multiple(\n                CodeAnalyze_BaseSDK,\n                CodeAnalyze_ExtendedSDK_OpenApi,\n                CodeAnalyze_ExtendedSDK_ProductApi,\n                CodeAnalyze_ExtendedSDK_RoleApi,\n                CodeAnalyze_ExtendedSDK_Webcast\n            );\n        }\n\n        private void CodeAnalyze_BaseSDK()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Events\",\n                    IgnoreExecutingExtensionTypes = static type => type.Namespace!.Contains(\".ExtendedSDK.\"),\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true,\n                    ThrowOnNotFoundWebhookEventTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Models\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.Events\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.MicroApp/\"),\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/_/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/_/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/_/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundWebhookEventClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundWebhookEventSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options)\n                    .AddRule((_, _, cur) =>\n                    {\n                        if (cur.ContentKind != SourceFileContentKinds.ExecutingExtensionClassCode ||\n                            cur.FileKind != SourceFileKinds.CSharp)\n                            return;\n\n                        using FileStream stream = cur.FileInfo.Open(FileMode.Open, FileAccess.Read);\n                        using TextReader streamReader = new StreamReader(stream);\n                        SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText(streamReader.ReadToEnd()).WithFilePath(cur.FileInfo.FullName);\n                        CompilationUnitSyntax syntaxRootNode = syntaxTree.GetCompilationUnitRoot();\n                        MethodDeclarationSyntax[] syntaxMethodDeclarationNodes = syntaxRootNode.Members\n                            .Where(s => SourceFileCodeSyntaxKinds.BaseNamespaceDeclaration.Contains(s.Kind()))\n                            .OfType<BaseNamespaceDeclarationSyntax>()\n                            .SelectMany(s => s.Members\n                                .Where(s => s.IsKind(SyntaxKind.ClassDeclaration))\n                                .OfType<ClassDeclarationSyntax>()\n                                .Where(s => s.Identifier.ToFullString().Contains(\"ExecuteLegacy\")) // 仅扫描旧版 API\n                            )\n                            .SelectMany(s => s.Members\n                                .Where(s => s.IsKind(SyntaxKind.MethodDeclaration))\n                                .OfType<MethodDeclarationSyntax>()\n                            )\n                            .Where(s =>\n                            {\n                                string methodName = s.Identifier.ToFullString().Trim();\n                                return methodName.StartsWith(\"Execute\") &&\n                                       methodName.EndsWith(\"Async\");\n                            })\n                            .ToArray();\n                        foreach (MethodDeclarationSyntax syntaxMethodDeclarationNode in syntaxMethodDeclarationNodes)\n                        {\n                            string methodName = syntaxMethodDeclarationNode.Identifier.ToFullString().Trim();\n\n                            ExecutingMethodUrlPathSegmentsSyntaxWalker syntaxWalker = new ExecutingMethodUrlPathSegmentsSyntaxWalker();\n                            syntaxWalker.Reset().Visit(syntaxMethodDeclarationNode);\n\n                            string[] urlPathSegments1 = syntaxWalker.Result1 ?? Array.Empty<string>();\n                            string[] urlPathSegments2 = syntaxWalker.Result2 ?? Array.Empty<string>();\n                            for (int i = 0, len = Math.Max(urlPathSegments1.Length, urlPathSegments1.Length); i < len; i++)\n                            {\n                                string? s1 = urlPathSegments1.Length > i ? urlPathSegments1[i] : null;\n                                string? s2 = urlPathSegments2.Length > i ? urlPathSegments2[i] : null;\n                                if (!string.Equals(s1, s2))\n                                    throw new AnalysisException($\"文件 \\\"{cur.FileInfo.FullName}\\\"下的函数 \\\"{methodName}\\\" 应是一个 API 接口方法、且适配旧版入口点，但其 URL 路径的代码实现存在冲突。（Expected: \\\"{\"/\" + string.Join(\"/\", urlPathSegments1)}\\\", Actual: \\\"{\"/\" + string.Join(\"/\", urlPathSegments2)}\\\"）\");\n                            }\n                        }\n                    })\n                    .AssertNoIssues();\n            }));\n        }\n\n        private void CodeAnalyze_ExtendedSDK_OpenApi()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true,\n                    ThrowOnNotFoundWebhookEventTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppOpenApiClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Models\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.MicroApp/\"),\n                    ProjectSourceRequestModelClassCodeSubDirectory = \"ExtendedSDK/OpenApi/Models/\",\n                    ProjectSourceResponseModelClassCodeSubDirectory = \"ExtendedSDK/OpenApi/Models/\",\n                    ProjectSourceExecutingExtensionClassCodeSubDirectory = \"ExtendedSDK/OpenApi/Extensions/\",\n                    ProjectSourceWebhookEventClassCodeSubDirectory = \"ExtendedSDK/OpenApi/Events/\",\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/OpenApi/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/OpenApi/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/OpenApi/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundWebhookEventClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundWebhookEventSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options)\n                    .AddRule((_, _, cur) =>\n                    {\n                        if (cur.ContentKind != SourceFileContentKinds.ExecutingExtensionClassCode ||\n                            cur.FileKind != SourceFileKinds.CSharp)\n                            return;\n\n                        using FileStream stream = cur.FileInfo.Open(FileMode.Open, FileAccess.Read);\n                        using TextReader streamReader = new StreamReader(stream);\n                        SyntaxTree syntaxTree = CSharpSyntaxTree.ParseText(streamReader.ReadToEnd()).WithFilePath(cur.FileInfo.FullName);\n                        CompilationUnitSyntax syntaxRootNode = syntaxTree.GetCompilationUnitRoot();\n                        MethodDeclarationSyntax[] syntaxMethodDeclarationNodes = syntaxRootNode.Members\n                            .Where(s => SourceFileCodeSyntaxKinds.BaseNamespaceDeclaration.Contains(s.Kind()))\n                            .OfType<BaseNamespaceDeclarationSyntax>()\n                            .SelectMany(s => s.Members\n                                .Where(s => s.IsKind(SyntaxKind.ClassDeclaration))\n                                .OfType<ClassDeclarationSyntax>()\n                                .Where(s => s.Identifier.ToFullString().Contains(\"ExecuteLegacy\")) // 仅扫描旧版 API\n                            )\n                            .SelectMany(s => s.Members\n                                .Where(s => s.IsKind(SyntaxKind.MethodDeclaration))\n                                .OfType<MethodDeclarationSyntax>()\n                            )\n                            .Where(s =>\n                            {\n                                string methodName = s.Identifier.ToFullString().Trim();\n                                return methodName.StartsWith(\"Execute\") &&\n                                       methodName.EndsWith(\"Async\");\n                            })\n                            .ToArray();\n                        foreach (MethodDeclarationSyntax syntaxMethodDeclarationNode in syntaxMethodDeclarationNodes)\n                        {\n                            string methodName = syntaxMethodDeclarationNode.Identifier.ToFullString().Trim();\n\n                            ExecutingMethodUrlPathSegmentsSyntaxWalker syntaxWalker = new ExecutingMethodUrlPathSegmentsSyntaxWalker();\n                            syntaxWalker.Reset().Visit(syntaxMethodDeclarationNode);\n\n                            string[] urlPathSegments1 = syntaxWalker.Result1 ?? Array.Empty<string>();\n                            string[] urlPathSegments2 = syntaxWalker.Result2 ?? Array.Empty<string>();\n                            for (int i = 0, len = Math.Max(urlPathSegments1.Length, urlPathSegments1.Length); i < len; i++)\n                            {\n                                string? s1 = urlPathSegments1.Length > i ? urlPathSegments1[i] : null;\n                                string? s2 = urlPathSegments2.Length > i ? urlPathSegments2[i] : null;\n                                if (!string.Equals(s1, s2))\n                                    throw new AnalysisException($\"文件 \\\"{cur.FileInfo.FullName}\\\"下的函数 \\\"{methodName}\\\" 应是一个 API 接口方法、且适配旧版入口点，但其 URL 路径的代码实现存在冲突。（Expected: \\\"{\"/\" + string.Join(\"/\", urlPathSegments1)}\\\", Actual: \\\"{\"/\" + string.Join(\"/\", urlPathSegments2)}\\\"）\");\n                            }\n                        }\n                    })\n                    .AssertNoIssues();\n            }));\n        }\n\n        private void CodeAnalyze_ExtendedSDK_ProductApi()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppProductApiClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true,\n                    ThrowOnNotFoundWebhookEventTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppProductApiClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Models\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.ProductApi.Events\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.MicroApp/\"),\n                    ProjectSourceRequestModelClassCodeSubDirectory = \"ExtendedSDK/ProductApi/Models/\",\n                    ProjectSourceResponseModelClassCodeSubDirectory = \"ExtendedSDK/ProductApi/Models/\",\n                    ProjectSourceExecutingExtensionClassCodeSubDirectory = \"ExtendedSDK/ProductApi/Extensions/\",\n                    ProjectSourceWebhookEventClassCodeSubDirectory = \"ExtendedSDK/ProductApi/Events/\",\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/ProductApi/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/ProductApi/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/ProductApi/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundWebhookEventClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundWebhookEventSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n\n        private void CodeAnalyze_ExtendedSDK_RoleApi()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppRoleApiClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppRoleApiClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.RoleApi.Models\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.MicroApp/\"),\n                    ProjectSourceRequestModelClassCodeSubDirectory = \"ExtendedSDK/RoleApi/Models/\",\n                    ProjectSourceResponseModelClassCodeSubDirectory = \"ExtendedSDK/RoleApi/Models/\",\n                    ProjectSourceExecutingExtensionClassCodeSubDirectory = \"ExtendedSDK/RoleApi/Extensions/\",\n                    ProjectSourceWebhookEventClassCodeSubDirectory = \"ExtendedSDK/RoleApi/Events/\",\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/RoleApi/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/RoleApi/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/RoleApi/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n\n        private void CodeAnalyze_ExtendedSDK_Webcast()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppWebcastClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(DouyinMicroAppWebcastClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.MicroApp/\"),\n                    ProjectSourceRequestModelClassCodeSubDirectory = \"ExtendedSDK/Webcast/Models/\",\n                    ProjectSourceResponseModelClassCodeSubDirectory = \"ExtendedSDK/Webcast/Models/\",\n                    ProjectSourceExecutingExtensionClassCodeSubDirectory = \"ExtendedSDK/Webcast/Extensions/\",\n                    ProjectSourceWebhookEventClassCodeSubDirectory = \"ExtendedSDK/Webcast/Events/\",\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/Webcast/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/Webcast/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/Webcast/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n\n        private class ExecutingMethodUrlPathSegmentsSyntaxWalker : CSharpSyntaxWalker\n        {\n            public string[]? Result1 { get; private set; }\n\n            public string[]? Result2 { get; private set; }\n\n            public ExecutingMethodUrlPathSegmentsSyntaxWalker Reset()\n            {\n                Result1 = null;\n                Result2 = null;\n                return this;\n            }\n\n            public override void VisitInvocationExpression(InvocationExpressionSyntax node)\n            {\n                if (node.Expression is MemberAccessExpressionSyntax memberAccessExpressionSyntaxNode)\n                {\n                    if (node.ToFullString().Contains(\"CreateFlurlRequest\") && node.ArgumentList?.Arguments.Count >= 3)\n                    {\n                        string arg1 = node.ArgumentList.Arguments[0].ToFullString();\n                        string arg2 = node.ArgumentList.Arguments[1].ToFullString();\n                        if (arg1 is not null && arg2.Contains(nameof(HttpMethod)))\n                        {\n                            Result1 ??= node.ArgumentList.Arguments\n                                .Skip(2)\n                                .Select(s => FormatArgument(s.ToFullString()))\n                                .ToArray();\n                        }\n                    }\n                    else if (node.ToFullString().Contains(\"WithUrl\") && node.ArgumentList?.Arguments.Count >= 1)\n                    {\n                        string arg1 = node.ArgumentList.Arguments[0].ToFullString();\n                        if (arg1 is not null && arg1.Contains(\"AppendPathSegments\"))\n                        {\n                            Result2 ??= node.ArgumentList.Arguments[0].Expression\n                                .ChildNodes()\n                                .Where(s => s.IsKind(SyntaxKind.InvocationExpression))\n                                .OfType<InvocationExpressionSyntax>()\n                                .SelectMany(s => s.ChildNodes()\n                                    .Where(s => s.IsKind(SyntaxKind.ArgumentList))\n                                    .OfType<ArgumentListSyntax>()\n                                )\n                                .SelectMany(s => s.ChildNodes()\n                                    .Where(s => s.IsKind(SyntaxKind.Argument))\n                                    .OfType<ArgumentSyntax>()\n                                )\n                                .Select(s => FormatArgument(s.ToFullString()))\n                                .ToArray();\n                        }\n                    }\n                }\n\n                base.VisitInvocationExpression(node);\n            }\n\n            private string FormatArgument(string arg)\n            {\n                if (arg.StartsWith(\"\\\"\") && arg.EndsWith(\"\\\"\"))\n                    return arg.Trim('\\\"');\n\n                if (arg == \"string.Empty\")\n                    return string.Empty;\n\n                return \"{\" + arg + \"}\";\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsBasicInfo/OpenAppsBasicInfoGetInfoV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202401162021508C7E711C39144F1127C8\",\n    \"data\": {\n        \"new_name_audit_info\": {\n            \"advice\": \"\",\n            \"new_name\": \"xxxx\",\n            \"new_name_audit_state\": 4,\n            \"reason\": \"\",\n            \"remaining_times\": 3\n        },\n        \"app_id\": \"xxxx\",\n        \"app_intro\": \"xxxxx\",\n        \"new_icon_audit_info\": {\n            \"advice\": \"\",\n            \"new_icon\": \"xxxx\",\n            \"new_icon_audit_state\": 2,\n            \"reason\": \"\",\n            \"remaining_times\": 3\n        },\n        \"new_intro_audit_info\": {\n            \"advice\": \"\",\n            \"new_intro\": \"xxxxx\",\n            \"new_intro_audit_state\": 2,\n            \"reason\": \"\",\n            \"remaining_times\": 3\n        },\n        \"subject_audit_info\": {\n            \"subject_name\": \"xxx\",\n            \"subject_type\": 1\n        },\n        \"app_categories_audit_info\": [\n            {\n                \"app_category_audit_state\": 2,\n                \"app_category_name\": \"xx-xxxx-xx\",\n                \"reason\": \"\",\n                \"app_category\": \"xxx,xxx,xxx\"\n            }\n        ],\n        \"app_icon\": \"xxxxx\",\n        \"app_name\": \"xxxx\",\n        \"app_state\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsBasicInfo/OpenAppsBasicInfoGetQrcodeV2Request.json",
    "content": "{\n    \"version\": \"latest\",\n    \"path\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsBasicInfo/OpenAppsBasicInfoGetQrcodeV2Response.json",
    "content": "{\n    \"data\": {\n        \"qr_code_url\": \"xxxxxxx\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240116204738BF50CE363C57B719C353\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsBasicInfo/OpenAppsBasicInfoModifyAppIntroductionV2Request.json",
    "content": "{\n    \"new_intro\": \"xxxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsBasicInfo/OpenAppsBasicInfoModifyAppNameV2Request.json",
    "content": "{\n    \"new_name\": \"xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCategory/OpenAppsCategoryAddCategoriesV1Request.json",
    "content": "{\n    \"category_info\": [\n        {\n            \"category\": \"xxx,xxx,xxx\",\n            \"category_cert\": [\n                {\n                    \"id\": \"x\",\n                    \"name\": \"《信息网络传播视听节目许可证》\",\n                    \"path_list\": [ \"xxxx/xxxx\" ]\n                }\n            ]\n        },\n        {\n            \"category\": \"xx,xxxx,xx\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCategory/OpenAppsCategoryDeleteCategoriesV1Request.json",
    "content": "{\n    \"categories\": [ \"xxx,xxx,xxx\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCategory/OpenAppsCategoryGetAllCategoriesV1Response.json",
    "content": "{\n    \"log_id\": \"202401171430441545B42E14E727624A0D\",\n    \"data\": {\n        \"category_list\": [\n            {\n                \"name\": \"餐饮\",\n                \"spid\": 0,\n                \"certification\": {\n                    \"explanation\": \"\",\n                    \"list\": [],\n                    \"relation\": []\n                },\n                \"fpid\": 0,\n                \"id\": 501,\n                \"level\": 1\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCategory/OpenAppsCategoryGetAuditCategoriesV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_category_audit_info\": [\n            {\n                \"category\": \"xxx,xxx,xxx\",\n                \"category_audit_state\": 2,\n                \"category_cert\": null,\n                \"category_cert_ids\": \"\",\n                \"category_name\": \"xx-xxxx-xx\",\n                \"reason\": \"\"\n            }\n        ],\n        \"category_change_limit\": 5,\n        \"category_limit\": 5,\n        \"remaining_times\": 5\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240117144112523B289832A9008E1C74\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCategory/OpenAppsCategorySupplyCategoriesV1Request.json",
    "content": "{\n    \"category_info\": [\n        {\n            \"category\": \"xxx,xxx,xxx\",\n            \"category_cert\": [\n                {\n                    \"id\": \"xxx\",\n                    \"name\": \"xxxx\",\n                    \"path_list\": [ \"xxxx/xxxx\" ]\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsCreditScore/OpenAppsCreditScoreGetCreditScoreV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"202401171514133CBF034059DDAC621FB8\",\n    \"data\": {\n        \"credit_score\": 100\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsDomain/OpenAppsDomainModifyServerDomainV2Request.json",
    "content": "{\n    \"action\": \"add\",\n    \"request\": [ \"www.xxx.com\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsDomain/OpenAppsDomainModifyServerDomainV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240117114616666CB7AB1AAE5A69212E\",\n    \"data\": {\n        \"request\": [ \"www.xxx.com\", \"www.xxx.com\" ],\n        \"socket\": [ \"www.xxx.com\", \"www.xxx.com\" ],\n        \"upload\": [ \"www.xxx.com\", \"www.xxx.com\" ],\n        \"download\": [ \"www.xxx.com\", \"www.xxx.com\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsDomain/OpenAppsDomainModifyWebviewDomainV2Request.json",
    "content": "{\n    \"action\": \"add\",\n    \"webview\": [ \"www.xxx.com\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsDomain/OpenAppsDomainModifyWebviewDomainV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202401171146249E93BBEB2833B467B53D\",\n    \"data\": {\n        \"webview\": [ \"www.xxx.com\", \"www.xxx.com\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordGetFacialRecognitionUrlV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"2023120718400603FC7DFC64EFC63EE90F\",\n    \"data\": {\n        \"facial_recognition_token\": \"xxxx\",\n        \"facial_recognition_url\": \"https://xxxxxx\"\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryCorpTypeListV1Response.json",
    "content": "{\n    \"data\": {\n        \"corp_type_list\": [\n            {\n                \"corp_type_id\": 4,\n                \"corp_type_name\": \"企业\",\n                \"credentials_type_list\": [\n                    {\n                        \"credentials_type_id\": 1,\n                        \"credentials_type_name\": \"营业执照（个人或企业）\"\n                    },\n                    {\n                        \"credentials_type_id\": 12,\n                        \"credentials_type_name\": \"组织机构代码证\"\n                    },\n                    {\n                        \"credentials_type_id\": 27,\n                        \"credentials_type_name\": \"外国企业常驻代表机构登记证\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202312121723335178F7582A6F5A0B21C2\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryFacialRecognitionStatusV1Response.json",
    "content": "{\n    \"data\": {\n        \"facial_recognition_status\": 0\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023120718534175A5E8F8399C21436591\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryInchargePeopleCredentialsTypeListV1Response.json",
    "content": "{\n    \"log_id\": \"202312061606373E2733BD492C282631F0\",\n    \"data\": {\n        \"credentials_type_list\": [\n            {\n                \"credentials_type_id\": 2,\n                \"credentials_type_name\": \"居民身份证\"\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryPreApprovalItemTypeListV1Response.json",
    "content": "{\n    \"data\": {\n        \"pre_approval_item_type_list\": [\n            {\n                \"pre_approval_item_id\": 2,\n                \"pre_approval_item_name\": \"出版\"\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202312061607073E2733BD492C28264063\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryRecordStatusV1Response.json",
    "content": "{\n    \"log_id\": \"20231211091551EA10E6F43911AAE7AA17\",\n    \"data\": {\n        \"status\": 1\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryRegionListV1Response.json",
    "content": "{\n    \"data\": {\n        \"region_list\": [\n            {\n                \"name\": \"北京市\",\n                \"type\": 1,\n                \"code\": \"110000\",\n                \"sub_region\": [\n                    {\n                        \"code\": \"110100\",\n                        \"name\": \"市辖区\",\n                        \"type\": 2,\n                        \"sub_region\": [\n                            {\n                                \"name\": \"东城区\",\n                                \"type\": 3,\n                                \"code\": \"110101\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20231206161404445521002D87E92CAAAC\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordQueryServiceContentTypeListV1Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202312061606423E2733BD492C2826347D\",\n    \"data\": {\n        \"service_content_type_list\": [\n            {\n                \"service_content_type_id\": 500,\n                \"service_content_type_name\": \"生活服务\",\n                \"sub_service_content_type_list\": [\n                    {\n                        \"service_content_type_id\": 1,\n                        \"service_content_type_name\": \"生活缴费\"\n                    }\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordSendFacialRecognitionNotifyV1Request.json",
    "content": "{\n    \"app_incharge_people_phone\": \"1xxxxxxxxxx\",\n    \"province_code\": \"310000\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordSendFacialRecognitionNotifyV1Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023120718533575A5E8F8399C2143627D\",\n    \"data\": {\n        \"facial_recognition_token\": \"xxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordSubmitRecordInfoV1Request.json",
    "content": "{\n    \"corp_info\": {\n        \"corp_type\": 4,\n        \"credentials_type\": 1,\n        \"credentials_name\": \"1\",\n        \"credentials_number\": \"xxxxx\",\n        \"credentials_pic\": {\n            \"path\": \"xxxx\"\n        },\n        \"credentials_address\": \"xxxxx\",\n        \"province_code\": \"320000\",\n        \"province_name\": \"江苏省\",\n        \"city_code\": \"120100\",\n        \"city_name\": \"市辖区\",\n        \"region_code\": \"120104\",\n        \"region_name\": \"南开区\",\n        \"communication_address\": \"xxxx\",\n        \"incharge_people_name\": \"xxx\",\n        \"incharge_people_credentials_type\": 2,\n        \"incharge_people_credentials_number\": \"xxxxxxx\",\n        \"incharge_people_credentials_front\": {\n            \"path\": \"xxxxxx\"\n        },\n        \"incharge_people_credentials_back\": {\n            \"path\": \"xxxxx\"\n        },\n        \"incharge_people_credentials_has_end_time\": true,\n        \"incharge_people_credentials_valid_start_time\": 1704038400,\n        \"incharge_people_credentials_valid_end_time\": 1733328000,\n        \"incharge_people_email\": \"xxxxxx\",\n        \"incharge_people_phone\": \"xxxxxx\",\n        \"incharge_people_emergency_phone\": \"xxxxxx\",\n        \"remark\": \"备注\",\n        \"corp_other_materials\": [\n            {\n                \"path\": \"xxxxxxx\"\n            }\n        ],\n        \"corp_authority_letter\": [\n            {\n                \"path\": \"xxxxxx\"\n            }\n        ]\n    },\n    \"app_info\": {\n        \"app_language\": [ 1 ],\n        \"service_content_type_list\": [ 1 ],\n        \"involve_pre_approval\": true,\n        \"pre_approval_list\": [\n            {\n                \"pre_approval_item_id\": 3,\n                \"pre_approval_number\": \"5678\",\n                \"pre_approval_files\": [\n                    {\n                        \"path\": \"xxxxx\"\n                    }\n                ]\n            }\n        ],\n        \"incharge_people_email\": \"xxxxx\",\n        \"incharge_people_phone\": \"xxxx\",\n        \"incharge_people_emergency_phone\": \"xxxx\",\n        \"remark\": \"备注\",\n        \"facial_recognition_token\": \"xxxxx\",\n        \"app_other_materials\": [\n            {\n                \"path\": \"xxxxxx\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsICPRecord/OpenAppsICPRecordUploadImageV1Response.json",
    "content": "{\n    \"log_id\": \"20231212184332A802F6FF1672E3072333\",\n    \"data\": {\n        \"path\": \"xxxxxxx\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsMicroApp/OpenAppsMicroAppCode2SessionV1Request.json",
    "content": "{\n    \"anonymous_code\": \"xxxx\",\n    \"app_id\": \"xxxx\",\n    \"code\": \"xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsMicroApp/OpenAppsMicroAppCode2SessionV1Response.json",
    "content": "{\n    \"log_id\": \"Hg5FAHGUB3\",\n    \"data\": {\n        \"session_key\": \"FEt5O3bgsr\",\n        \"open_id\": \"M0AKx3CeBt\",\n        \"anonymous_open_id\": \"mMaGjcR7Pw\",\n        \"union_id\": \"7f2RlM77yQ\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"XTZJZj95JR\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsPackageVersion/OpenAppsPackageVersionAuditV1Request.json",
    "content": "{\n    \"host_names\": [ \"YkaYm7173K\" ],\n    \"audit_note\": \"AvTotSPfit\",\n    \"audit_way\": 1,\n    \"tag\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsPackageVersion/OpenAppsPackageVersionGetAuditHostsV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"3TmkBXaKXL\",\n    \"data\": {\n        \"host_names\": [\n            \"toutiao\",\n            \"douyin\"\n        ],\n        \"released_host_names\": [\n            \"toutiao\",\n            \"douyin\"\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsPackageVersion/OpenAppsPackageVersionGetVersionsV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2034EAC\",\n    \"data\": {\n        \"audit\": {\n            \"approved_apps\": [ \"抖音\" ],\n            \"attach_info\": {\n                \"今日头条\": \"http://xxxx\",\n                \"今日头条lite\": \"http://xxxx\"\n            },\n            \"categories\": [ \"服务类-快递、物流-查件\" ],\n            \"ctime\": 1591019952,\n            \"developer_avatar\": \"xxx\",\n            \"developer_id\": \"xxx\",\n            \"developer_name\": \"xxx\",\n            \"has_publish\": 0,\n            \"is_illegal_version\": false,\n            \"reason\": \"今日头条: 无法进入小程序;小程序页面存在闪退、卡顿、黑屏等功能异常问题;今日头条lite: 无法进入小程序\",\n            \"reason_detail\": {\n                \"今日头条\": [ \"无法进入小程序\", \"小程序页面存在闪退、卡顿、黑屏等功能异常问题\" ],\n                \"今日头条lite\": [ \"无法进入小程序\" ]\n            },\n            \"status\": 2,\n            \"summary\": \"今天是5月30日\",\n            \"version\": \"1.0.1\"\n        },\n        \"current\": {\n            \"approved_apps\": [],\n            \"attach_info\": {},\n            \"categories\": [ \"服务类-快递、物流-查件\" ],\n            \"ctime\": 1585727678,\n            \"developer_avatar\": null,\n            \"developer_id\": null,\n            \"developer_name\": null,\n            \"has_down\": 0,\n            \"not_approved_apps\": [],\n            \"rollback\": {\n                \"can_rollback\": false,\n                \"last_version\": \"\"\n            },\n            \"summary\": \"测试版本1.0.0\",\n            \"uid\": 123123,\n            \"version\": \"1.0.0\"\n        },\n        \"latest\": {\n            \"categories\": [ \"服务类-快递、物流-查件\" ],\n            \"ctime\": 1590755478,\n            \"developer_avatar\": \"xxx\",\n            \"developer_id\": \"xxx\",\n            \"developer_name\": \"xxx\",\n            \"has_audit\": 1,\n            \"screenshot\": \"\",\n            \"summary\": \"今天是5月30日\",\n            \"version\": \"1.0.1\"\n        },\n        \"gray\": {\n            \"categories\": [ \"服务类-快递、物流-查件\" ],\n            \"ctime\": 1590755478,\n            \"developer_avatar\": \"xxx\",\n            \"developer_id\": \"xxx\",\n            \"developer_name\": \"xxx\",\n            \"summary\": \"今天是5月30日\",\n            \"version\": \"1.0.1\",\n            \"host_gray_scale\": {}\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsPackageVersion/OpenAppsPackageVersionUploadV1Request.json",
    "content": "{\n    \"ext_json\": \"{\\\"extEnable\\\":true,\\\"extAppid\\\":\\\"xxx\\\",\\\"pages\\\":[]}\",\n    \"template_id\": 9133504853504535288,\n    \"user_desc\": \"AvbQ8S0fXp\",\n    \"user_version\": \"1.1.1\",\n    \"tag\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/AppsTrial/OpenAppsTrialGetTrialInfoV2Response.json",
    "content": "{\n    \"data\": {\n        \"trial_task_info\": null,\n        \"app_credit_score\": -999,\n        \"is_trial\": 1,\n        \"trial_limit_info\": {\n            \"is_capability_limited\": 1,\n            \"is_payment_restricted\": 0,\n            \"is_traffic_limited\": 0\n        },\n        \"trial_pass_score\": 80\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240117151219739E5689A61B947BFFE5\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/Platform/Webhook/OpenPlatformWebhookEventStatusListV1Response.json",
    "content": "{\n    \"log_id\": \"ZcabTr0mNP\",\n    \"data\": {\n        \"webhook_info\": {\n            \"secret\": \"82bU3YS4zK\",\n            \"callback_url\": \"zD6T62rz6p\"\n        },\n        \"event_list\": [\n            {\n                \"event\": \"Hnvd6JbjVi\",\n                \"name_cn\": \"aRmr2mb3JN\",\n                \"desc\": \"d80J5RlxFs\",\n                \"status\": 1\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/Platform/Webhook/OpenPlatformWebhookResetSecretV1Response.json",
    "content": "{\n    \"data\": {\n        \"secret\": \"E4WE142xUY\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"8HWyNxQlCa\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/Platform/Webhook/OpenPlatformWebhookSaveCallbackUrlV1Request.json",
    "content": "{\n    \"callback_url\": \"s57XNzNBna\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/Platform/Webhook/OpenPlatformWebhookUpdateEventStatusV1Request.json",
    "content": "{\n    \"event_list\": [\n        {\n            \"status\": 1,\n            \"event\": \"L98AxizwKs\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenAuthThirdPartyTokenV2Response.json",
    "content": "{\n    \"expires_in\": 3600,\n    \"component_access_token\": \"xxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthGenerateLinkV3Request.json",
    "content": "{\n    \"link_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthGenerateLinkV3Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202401121734538F484F2C844C5C32253C\",\n    \"data\": {\n        \"link\": \"xxxxxxxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthGetAuthAppListV2Response.json",
    "content": "{\n    \"data\": {\n        \"auth_app_list\": [\n            {\n                \"auth_appid\": \"xxxx\",\n                \"auth_time\": 1703062377\n            }\n        ],\n        \"total\": 1\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2024011516552804343697F9D7931FAB00\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthGetAuthTokenV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"2023101312022744C2A2666DB7BC00832B\",\n    \"data\": {\n        \"authorizer_access_token\": \"isvact.5dafax837bb9937cdxxxxxx200fO2Eh5YgvG4pFmj6nSf8NGr6j8Yfg\",\n        \"authorizer_appid\": \"xxxxxx\",\n        \"authorizer_refresh_token\": \"isvrft.d016bb817070xxxxxtUS9BNtfJ174uhFNFUnW\",\n        \"expires_in\": 7200,\n        \"refresh_expires_in\": 2592000,\n        \"authorize_permission\": [\n            {\n                \"category\": \"开发管理权限\",\n                \"description\": \"帮助小程序进行基础功能开发及配置开发所需信息\",\n                \"id\": 1\n            },\n            {\n                \"category\": \"基本信息设置权限\",\n                \"description\": \"帮助小程序管理名称、头像、简介、服务类目等信息\",\n                \"id\": 2\n            }\n        ]\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthRetrieveAuthCodeV2Request.json",
    "content": "{\n    \"authorization_appid\": \"xxxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppAuth/OpenTpAppAuthRetrieveAuthCodeV2Response.json",
    "content": "{\n    \"data\": {\n        \"authorization_code\": \"xxxxxxxxxxx\",\n        \"expires_in\": 3600\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240112171812CA5FDE08E24D242EFEAD\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppDomain/OpenTpAppDomainGetWebviewCheckFileInfoV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"20240115162426455AC338E18B56745303\",\n    \"data\": {\n        \"file_content\": \"xxxxxx\",\n        \"file_name\": \"xxxx.txt\"\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppFile/OpenTpAppFileUploadMaterialV2Response.json",
    "content": "{\n    \"data\": {\n        \"path\": \"xxxxx\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202401151619351CF77AE5F7A43B8393C0\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppTemplate/OpenTpAppTemplateAddTemplateV2Request.json",
    "content": "{\n    \"draft_id\": 1010\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppTemplate/OpenTpAppTemplateDeleteTemplateV2Request.json",
    "content": "{\n    \"template_id\": 1010\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppTemplate/OpenTpAppTemplateGetTemplateAppListV2Response.json",
    "content": "{\n    \"data\": {\n        \"tpl_app_list\": [\n            {\n                \"tpl_app_id\": \"xxxxx\",\n                \"user_desc\": \"xxxxx\",\n                \"user_version\": \"x.x.x\",\n                \"app_name\": \"xxxx\",\n                \"create_time\": 1702553299,\n                \"draft_id\": 1,\n                \"nick_name\": \"xxxxx\"\n            },\n            {\n                \"app_name\": \"xxxxx\",\n                \"tpl_app_id\": \"xxxxx\"\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240115162821497BC0191A90E58ABD8D\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/TpAppTemplate/OpenTpAppTemplateGetTemplateListV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240115152221728055690DCBE01D5E8E\",\n    \"data\": {\n        \"template_list\": [\n            {\n                \"user_desc\": \"xxxxx\",\n                \"user_version\": \"x.x.x\",\n                \"create_time\": 1667389622,\n                \"template_id\": 1010\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiAuthGenerateLinkV2Response.json",
    "content": "{\n    \"link\": \"https://xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiAuthPreAuthCodeV2Request.json",
    "content": "{\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiAuthPreAuthCodeV2Response.json",
    "content": "﻿{\n    \"pre_auth_code\": \"f0o-nCazv2IndfX6f8cXO3ZEzdYyKYEu2RQa74bsAKFB7ZdYp2Lz97GaAC2rYpcW\",\n    \"expires_in\": 600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiAuthRetrieveV1Response.json",
    "content": "﻿{\n    \"authorization_code\": \"cnQolCb7CpzJSfjSTSRi48gj_Jg7wMTjfcMoVabsa1ujefO\",\n    \"expires_in\": 3600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiAuthThirdPartyTokenV1Response.json",
    "content": "﻿{\n    \"component_access_token\": \"ab41d7e03f9cec1c47dc68420ecddef37cf88642f867a7d099bbf1e81a12e43f168d6045eed50faf8d5d54478cd825ba4eacf99f1451ea2ca4f6561a7d284a66cff70d657cf9d9a7f752353b3c92f\",\n    \"expires_in\": 7200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Auth/OpenApiOAuthTokenV1Response.json",
    "content": "﻿{\n    \"authorizer_access_token\": \"08021218466f6f2b4d672f3658783566365448746a7a325679513d3d\",\n    \"expires_in\": 7200,\n    \"authorizer_refresh_token\": \"0740283fdbbc11174807dfcbe9b6b566bc5e7542305b1f0d9cb958eba030488cd1acb22d68a97099843629c77ea21a5cee021a08021218466f6f2b4d672f3658783566365448746a7a3256795133\",\n    \"refresh_expires_in\": 2592000,\n    \"authorizer_appid\": \"xxx\",\n    \"authorize_permission\": [\n        {\n            \"id\": 1,\n            \"category\": \"开发管理权限\",\n            \"description\": \"帮助小程序进行功能开发和开发设置\"\n        }\n    ],\n    \"share_data\": null\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAddCategoriesV1Request.json",
    "content": "﻿{\n    \"categoryInfo\": [\n        {\n            \"category\": \"158,159,259\",\n            \"categoryCert\": [\n                {\n                    \"id\": \"79\",\n                    \"name\": \"《信息网络传播视听节目许可证》\",\n                    \"path\": \"xxxx/xxxx\"\n                },\n                {\n                    \"id\": \"117\",\n                    \"name\": \"《网络文化经营许可证》(经营范围含网络表演）\",\n                    \"path\": \"xxxx/xxxx\"\n                },\n                {\n                    \"id\": \"158\",\n                    \"name\": \"《统一社会信用代码证》（适用于政府主体）\",\n                    \"path\": \"xxxx/xxxx\"\n                }\n            ]\n        },\n        {\n            \"category\": \"1,2,6\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppAllCategoriesV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": [\n        {\n            \"id\": 259,\n            \"name\": \"直播\",\n            \"level\": 3,\n            \"fpid\": 158,\n            \"spid\": 159,\n            \"certification\": {\n                \"relation\": [\"79|117|158&159\"],\n                \"list\": [\n                    {\n                        \"id\": \"79\",\n                        \"name\": \"《信息网络传播视听节目许可证》\"\n                    },\n                    {\n                        \"id\": \"117\",\n                        \"name\": \"《网络文化经营许可证》(经营范围含网络表演）\"\n                    },\n                    {\n                        \"id\": \"158\",\n                        \"name\": \"《统一社会信用代码证》（适用于政府主体）\"\n                    },\n                    {\n                        \"id\": \"159\",\n                        \"name\": \"《情况说明函件》（适用于政府主体）\"\n                    }\n                ],\n                \"explanation\": \"需要上传的资质：79或117或158和159\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppCategoriesV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"appCategoryAuditInfo\": [\n            {\n                \"category\": \"158,159,259\",\n                \"categoryName\": \"社交类-社交-直播\",\n                \"categoryCertIds\": \"158,159\",\n                \"categoryCert\": [\n                    {\n                        \"id\": \"158\",\n                        \"name\": \"《统一社会信用代码证》（适用于政府主体）\",\n                        \"path\": \"xxx\"\n                    },\n                    {\n                        \"id\": \"159\",\n                        \"name\": \"《情况说明函件》（适用于政府主体）\",\n                        \"path\": \"xxx\"\n                    }\n                ],\n                \"categoryAuditState\": 2,\n                \"reason\": \"\"\n            }\n        ],\n        \"remainingTimes\": 3,\n        \"categoryChangeLimit\": 3,\n        \"categoryLimit\": 5\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppDeleteCategoriesV1Request.json",
    "content": "﻿{\n    \"categories\": [\"158,159,259\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/Category/OpenApiMicroAppAppSupplyCategoriesV1Request.json",
    "content": "﻿{\n    \"categoryInfo\": [\n        {\n            \"category\": \"158,159,259\",\n            \"categoryCert\": [\n                {\n                    \"id\": \"79\",\n                    \"name\": \"《信息网络传播视听节目许可证》\",\n                    \"path\": \"xxxx/xxxx\"\n                },\n                {\n                    \"id\": \"117\",\n                    \"name\": \"《网络文化经营许可证》(经营范围含网络表演）\",\n                    \"path\": \"xxxx/xxxx\"\n                },\n                {\n                    \"id\": \"158\",\n                    \"name\": \"《统一社会信用代码证》（适用于政府主体）\",\n                    \"path\": \"xxxx/xxxx\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppCreditScoreV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"creditScore\": 100\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppInfoV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"app_id\": \"xxxx\",\n        \"app_type\": 1,\n        \"app_state\": 1,\n        \"app_name\": \"xxxx\",\n        \"new_name_audit_info\": {\n            \"new_name\": \"\",\n            \"remaining_times\": 0,\n            \"new_name_audit_state\": 0,\n            \"reason\": \"\",\n            \"advice\": \"\"\n        },\n        \"app_intro\": \"xxxx\",\n        \"new_intro_audit_info\": {\n            \"new_intro\": \"\",\n            \"remaining_times\": 0,\n            \"new_intro_audit_state\": 0,\n            \"reason\": \"\",\n            \"advice\": \"\"\n        },\n        \"app_icon\": \"xxxx\",\n        \"new_icon_audit_info\": {\n            \"new_icon\": \"\",\n            \"remaining_times\": 0,\n            \"new_icon_audit_state\": 0,\n            \"reason\": \"\",\n            \"advice\": \"\"\n        },\n        \"app_categories_audit_info\": [\n            {\n                \"app_category\": \"1,235,250\",\n                \"app_category_name\": \"服务类-商业服务-广告/设计\",\n                \"app_category_audit_state\": 2,\n                \"reason\": \"\"\n            }\n        ],\n        \"subject_audit_info\": {\n            \"subject_name\": \"xxx\",\n            \"subject_type\": 1,\n            \"subject_audit_state\": 2,\n            \"reason\": \"\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIconV1Request.json",
    "content": "﻿{\n    \"new_icon_path\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppIntroductionV1Request.json",
    "content": "﻿{\n    \"new_intro\": \"XXX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyAppNameV1Request.json",
    "content": "﻿{\n    \"new_name\": \"XXX\",\n    \"material_file_path\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyServerDomainV1Request.json",
    "content": "﻿{\n    \"action\": \"add\",\n    \"request\": [\"www.xxx.com\", \"www.xxx.com\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyServerDomainV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"request\": [\"www.xxx.com\", \"www.xxx.com\"],\n        \"socket\": [\"www.xxx.com\", \"www.xxx.com\"],\n        \"upload\": [\"www.xxx.com\", \"www.xxx.com\"],\n        \"download\": [\"www.xxx.com\", \"www.xxx.com\"]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyWebviewDomainV1Request.json",
    "content": "﻿{\n    \"action\": \"add\",\n    \"webview\": [\"www.xxx.com\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppModifyWebviewDomainV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": [\"www.xxx.com\", \"www.xxx.com\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppQrcodeV1Request.json",
    "content": "﻿{\n    \"version\": \"latest\",\n    \"path\": \"pages/result/index?name=xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/App/OpenApiMicroAppAppQualityRatingV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"status\": 3,\n        \"qualityRating\": \"S\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/OpenApiMicroAppCode2SessionV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"session_key\": \"h0rt4/77I09nDuSWeGwKKw==\",\n        \"openid\": \"8PB.cW.TabxdbJFs\",\n        \"anonymous_openid\": \"\",\n        \"unionid\": \"ab085c8d-6911-4sca-ba17-257vh646cba8\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/OpenApiMicroAppUploadMaterialV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"path\": \"xxxx/xxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationStatusV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"status\": 1,\n        \"reason\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationLiveApplicationV1Request.json",
    "content": "﻿{\n    \"intro\": \"xxx\",\n    \"firstLiveTime\": 1535551395,\n    \"liveFrequency\": 2,\n    \"hasAdBudget\": 1,\n    \"adBudgetAmount\": 1000,\n    \"adPersonName\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationStatusV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"status\": 1,\n        \"reason\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationPhoneNumberApplicationV1Request.json",
    "content": "﻿{\n    \"reason\": 1,\n    \"scene\": 1,\n    \"description\": \"xxx\",\n    \"imagePaths\": [\"xxxx/xxxx\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationStatusV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"status\": 1,\n        \"reason\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/Application/OpenApiMicroAppOperationVideoApplicationV1Request.json",
    "content": "﻿{\n    \"intro\": \"xxx\",\n    \"anchorText\": \"xxx\",\n    \"imagePath\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationAddShareTemplateV1Request.json",
    "content": "﻿{\n    \"title\": \"xxx\",\n    \"description\": \"xxx\",\n    \"imagePath\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationDeleteShareTemplateV1Request.json",
    "content": "﻿{\n    \"templateId\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationModifyShareTemplateV1Request.json",
    "content": "﻿{\n    \"templateId\": \"xxx\",\n    \"title\": \"xxx\",\n    \"description\": \"xxx\",\n    \"imagePath\": \"xxxx/xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationSetDefaultShareTemplateV1Request.json",
    "content": "﻿{\n    \"templateId\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShareTemplate/OpenApiMicroAppOperationShareTemplateListV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"shareTplList\": [\n            {\n                \"templateId\": \"4immde7fdnb12sh6et\",\n                \"title\": \"分享标题\",\n                \"description\": \"分享文案\",\n                \"imageUrl\": \"https://xxx\",\n                \"auditStatus\": 3,\n                \"isDefault\": 0,\n                \"ctime\": 1618456896,\n                \"reason\": \"[\\\"xxx\\\", \\\"xxx\\\"]\",\n                \"mtime\": 1618453991\n            }\n        ],\n        \"total\": 9\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationAddShopMaterialV1Request.json",
    "content": "﻿{\n    \"client_key\": \"awxxxxxxxxxxxxxx\",\n    \"supplier_ext_id\": \"y0001\",\n    \"biz_licence_path\": \"xxxx/xxxx\",\n    \"contract_path\": \"xxxx/xxxx\",\n    \"qual_material\": [\n        {\n            \"path\": \"xxxx/xxxx\"\n        }\n    ],\n    \"additional_qual\": [\n        {\n            \"additional_qual_type\": 1,\n            \"paths\": [{ \"path\": \"tos-xxx-ffffffff/44efddffd1611fdf95\" }]\n        },\n        {\n            \"additional_qual_type\": 2,\n            \"paths\": [\n                { \"path\": \"tosxxx8/44efdfadfaf124c4edf95\" },\n                { \"path\": \"tosdsdf8/44efsdfafdasfc4e95\" }\n            ]\n        }\n    ],\n    \"expire_time\": \"2021-07-22\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Operation/ShopMaterial/OpenApiMicroAppOperationQueryShopMaterialV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"online_shop_material\": {\n            \"status\": 1,\n            \"biz_licence\": {\n                \"path\": \"https://lf3-developer-sign.bytemastatic.com/developer/thirdparty/xxx/xxx/shop_contract/c36ff08137\"\n            },\n            \"contract\": {\n                \"path\": \"xxxxx\"\n            },\n            \"qual_material\": [\n                {\n                    \"path\": \"xxxxx\"\n                }\n            ],\n            \"additional_qual\": [\n                {\n                    \"additional_qual_type\": 1,\n                    \"paths\": [\n                        {\n                            \"path\": \"https://xxxxxxxxx\"\n                        }\n                    ]\n                },\n                {\n                    \"additional_qual_type\": 2,\n                    \"paths\": [\n                        {\n                            \"path\": \"https://xxxxxxxxx\"\n                        },\n                        {\n                            \"path\": \"https://xxxxxxxxx\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"audit_shop_material\": {\n            \"biz_licence\": {\n                \"path\": \"xxxx\",\n                \"status\": 1\n            },\n            \"contract\": {\n                \"path\": \"xxxxxxxx\",\n                \"status\": 2\n            },\n            \"qual_material\": [\n                {\n                    \"path\": \"xxxxx\",\n                    \"status\": 3,\n                    \"reason\": [\n                        \"您好，您所认领的门店名称与门店主体无关，请核对认领门店名称是否正确或提供其他补充材料，谢谢。\"\n                    ]\n                }\n            ],\n            \"additional_qual\": [\n                {\n                    \"additional_qual_type\": 1,\n                    \"paths\": [\n                        {\n                            \"path\": \"xxxxx\"\n                        }\n                    ],\n                    \"status\": 3,\n                    \"reason\": [\n                        \"您好，您所认领的门店名称与门店主体无关，请核对认领门店名称是否正确或提供其他补充材料，谢谢。\"\n                    ]\n                },\n                {\n                    \"additional_qual_type\": 2,\n                    \"paths\": [\n                        {\n                            \"path\": \"xxxxx\"\n                        }\n                    ],\n                    \"status\": 3,\n                    \"reason\": [\n                        \"您好，您所认领的门店名称与门店主体无关，请核对认领门店名称是否正确或提供其他补充材料，谢谢。\"\n                    ]\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditHostsV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"hostNames\": [\"toutiao\", \"douyin\", \"tt_lite\"],\n        \"releasedHostNames\": [\"toutiao\", \"douyin\"]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Package/OpenApiMicroAppPackageAuditV2Request.json",
    "content": "﻿{\n    \"hostNames\": [\"toutiao\", \"douyin\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Package/OpenApiMicroAppPackageUploadV1Request.json",
    "content": "﻿{\n    \"template_id\": 1,\n    \"user_desc\": \"xxx\",\n    \"user_version\": \"1.1.1\",\n    \"ext_json\": \"{\\\"extEnable\\\":true,\\\"extAppid\\\":\\\"xxx\\\",\\\"pages\\\":[]}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/MicroApp/Package/OpenApiMicroAppPackageVersionsV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"audit\": {\n            \"approvedApps\": [\"抖音\"],\n            \"attachInfo\": {\n                \"今日头条\": \"http://xxxx\",\n                \"今日头条lite\": \"http://xxxx\"\n            },\n            \"categories\": [\"服务类-快递、物流-查件\"],\n            \"ctime\": 1591019952,\n            \"developer_avatar\": \"xxx\",\n            \"developer_id\": \"xxx\",\n            \"developer_name\": \"xxx\",\n            \"has_publish\": 0,\n            \"is_illegal_version\": false,\n            \"reason\": \"今日头条: 无法进入小程序;小程序页面存在闪退、卡顿、黑屏等功能异常问题;今日头条lite: 无法进入小程序\",\n            \"reasonDetail\": {\n                \"今日头条\": [\n                    \"无法进入小程序\",\n                    \"小程序页面存在闪退、卡顿、黑屏等功能异常问题\"\n                ],\n                \"今日头条lite\": [\"无法进入小程序\"]\n            },\n            \"status\": 2,\n            \"summary\": \"今天是5月30日\",\n            \"version\": \"1.0.1\"\n        },\n        \"current\": {\n            \"approvedApps\": [],\n            \"attachInfo\": {},\n            \"categories\": [\"xxx-xxx-xxx\"],\n            \"ctime\": 1585727678,\n            \"developer_avatar\": null,\n            \"developer_id\": null,\n            \"developer_name\": null,\n            \"has_down\": false,\n            \"notApprovedApps\": [],\n            \"reason\": \"\",\n            \"reasonDetail\": {},\n            \"rollback\": {\n                \"can_rollback\": false,\n                \"last_version\": \"\"\n            },\n            \"summary\": \"测试版本1.0.0\",\n            \"uid\": 111,\n            \"version\": \"1.0.0\"\n        },\n        \"latest\": {\n            \"categories\": [\"xxx-xxx-xxx\"],\n            \"ctime\": 1590755478,\n            \"developer_avatar\": \"xxx\",\n            \"developer_id\": \"xxx\",\n            \"developer_name\": \"xxx\",\n            \"has_audit\": 1,\n            \"screenshot\": \"\",\n            \"summary\": \"今天是5月30日\",\n            \"version\": \"1.0.1\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Settle/OpenApiSettleApplyV1Request.json",
    "content": "{\n    \"mobile\": \"188********\",\n    \"qualification_type\": 1,\n    \"company_name\": \"****有限责任公司\",\n    \"credit_code\": \"924******D4U\",\n    \"credit_image_path\": \"tos-i-giy***8/ddc*****1c6\",\n    \"credit_end_date\": \"2023-12-31\",\n    \"company_type\": 1,\n    \"legal_person_name\": \"张**\",\n    \"registered_province_code\": 110000,\n    \"registered_city_code\": 110100,\n    \"registered_address\": \"海淀区*****\",\n    \"registered_capital\": 100000,\n    \"category_code\": \"156,157\",\n    \"business_person_name\": \"李**\",\n    \"business_id_card\": \"44*******21\",\n    \"business_mobile\": \"188********\",\n    \"company_introduction\": \"公司介绍\",\n    \"business_province_code\": 110000,\n    \"business_city_code\": 110100,\n    \"business_address\": \"海淀区*****\",\n    \"employee_count\": 1000,\n    \"company_website\": \"https://****.com\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Settle/OpenApiSettleApplyV1Response.json",
    "content": "{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"apply_id\": \"123456789\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Settle/OpenApiSettleGetApplyStatusV1Response.json",
    "content": "{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"apply_status\": 3,\n        \"fail_reason\": \"失败原因\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/Settle/OpenApiSettlePreCheckV1Request.json",
    "content": "{\n    \"qualification_type\": 1,\n    \"company_name\": \"****有限责任公司\",\n    \"credit_code\": \"924******D4U\",\n    \"credit_end_date\": \"0\",\n    \"company_type\": 1,\n    \"legal_person_name\": \"张**\",\n    \"registered_province_code\": 110000,\n    \"registered_city_code\": 110100,\n    \"registered_address\": \"海淀区*****\",\n    \"registered_capital\": 100000\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/OpenApiThirdPartyAuthAppListV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"authAppList\": [\n            {\n                \"authAppId\": \"tt123456789123456789\",\n                \"authTime\": 1504790916\n            },\n            {\n                \"authAppId\": \"tt123456789123456789\",\n                \"authTime\": 1504790916\n            }\n        ],\n        \"total\": 16\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/OpenApiThirdPartyUploadPictureMaterialV1Response.json",
    "content": "{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"path\": \"tos-boe-i-giy***8/ddc*****1c6\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOIBaseQueryAMapV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"address\": \"南山路15号\",\n        \"amap_id\": \"B023B09LKR\",\n        \"city\": \"杭州市\",\n        \"latitude\": 30.233256,\n        \"longitude\": 120.14414,\n        \"poi_id\": \"6601123539196053511\",\n        \"poi_name\": \"雷峰塔景区(4A)\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierMatchV1Request.json",
    "content": "﻿{\n    \"match_data_list\": [\n        {\n            \"latitude\": 0.0,\n            \"longitude\": 0.0,\n            \"poi_name\": \"\",\n            \"supplier_ext_id\": \"\",\n            \"address\": \"\",\n            \"amap_id\": \"\",\n            \"city\": \"\",\n            \"province\": \"\",\n            \"poi_id\": \"\",\n            \"extra\": \"\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierMatchV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"task_id\": \"70199550603101232\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchTaskV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"match_result_list\": [\n            {\n                \"address\": \"南山路15号\",\n                \"city\": \"\",\n                \"extra\": \"南山路15号\",\n                \"match_status\": 3,\n                \"mismatch_status_desc\": \"POI地理位置不合法\",\n                \"poi_id\": \"\",\n                \"poi_name\": \"\",\n                \"province\": \"\",\n                \"supplier_ext_id\": \"SC10001\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryMatchV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"match_result_list\": [\n            {\n                \"poi_id\": \"6691586459725465604\",\n                \"status\": 2,\n                \"supplier_ext_id\": \"test-supplier-1\",\n                \"task_id\": \"123123123123\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierQueryV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"sync_status\": {\n            \"fail_reason\": \"\",\n            \"last_sync_status\": 1\n        },\n        \"data_detail\": {\n            \"name\": \"测试门店\",\n            \"poi_id\": \"6601138963681921037\",\n            \"services\": [\n                {\n                    \"enable\": 1,\n                    \"entry\": {\n                        \"entry_mini_app\": {\n                            \"app_id\": \"tt631f15a2fc245243\",\n                            \"params\": \"{\\\"id\\\":43235}\",\n                            \"path\": \"pages/goodsDetail/goodsDetail/3\"\n                        }\n                    },\n                    \"service_type\": 9101\n                }\n            ],\n            \"status\": 1,\n            \"supplier_ext_id\": \"test-2\",\n            \"type\": 2\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/POI/OpenApiThirdPartyPOISupplierSyncV1Request.json",
    "content": "﻿{\n    \"supplier_ext_id\": \"test-supplier-1\",\n    \"address\": \"测试商铺的地址\",\n    \"status\": 1,\n    \"type\": 2,\n    \"name\": \"测试商铺\",\n    \"poi_id\": \"660113721511851123123\",\n    \"services\": [\n        {\n            \"enable\": 1,\n            \"service_type\": 9101,\n            \"entry\": {\n                \"entry_mini_app\": {\n                    \"params\": \"{\\\"id\\\":43235}\",\n                    \"path\": \"pages/goodsDetail/goodsDetail/3\",\n                    \"app_id\": \"ttadas123123113\"\n                }\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateAddTemplateV1Request.json",
    "content": "﻿{\n    \"draft_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateDeleteTemplateV1Request.json",
    "content": "﻿{\n    \"template_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateAppListV1Response.json",
    "content": "{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"tpl_app_list\": [\n        {\n            \"tpl_app_id\": \"ttxxxxxxxxx3\",\n            \"app_name\": \"模板小程序3\"\n        },\n        {\n            \"tpl_app_id\": \"ttxxxxxxxxx2\",\n            \"app_name\": \"模板小程序2\",\n            \"nick_name\": \"小李\",\n            \"user_version\": \"2.2.2\",\n            \"user_desc\": \"xxx\",\n            \"draft_id\": 2,\n            \"create_time\": 1488965933\n        },\n        {\n            \"tpl_app_id\": \"ttxxxxxxxxx1\",\n            \"app_name\": \"模板小程序1\",\n            \"nick_name\": \"小王\",\n            \"user_version\": \"1.1.1\",\n            \"user_desc\": \"xxx\",\n            \"draft_id\": 1,\n            \"create_time\": 1488965932\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/OpenApi/_Legacy/ThirdParty/Template/OpenApiThirdPartyTemplateGetTemplateListV1Response.json",
    "content": "﻿{\n    \"errno\": 0,\n    \"message\": \"success\",\n    \"template_list\": [\n        {\n            \"template_id\": 1,\n            \"user_version\": \"2.2.2\",\n            \"user_desc\": \"xxx\",\n            \"create_time\": 1488965932\n        },\n        {\n            \"template_id\": 2,\n            \"user_version\": \"3.3.3\",\n            \"user_desc\": \"xxx\",\n            \"create_time\": 1504790916\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Callback/ProductSyncCallbackUrlRequest.json",
    "content": "{\n    \"access_token\": \"123456184673546750597970442b6b73674775447154502f69413d3d\",\n    \"appid\": \"123834792309\",\n    \"callback_url\": \"https://callback.example.com\",\n    \"developer_flag\": \"21786419ahjeai1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Callback/ProductSyncCallbackUrlResponse.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductAddRequest.json",
    "content": "{\n    \"access_token\": \"0801121846756b44471029384758795958537a647053646f773d3d\",\n    \"product_type\": 1,\n    \"product\": {\n        \"common_product_params\": {\n            \"appid\": \"tt11fd1220e13bba1234\",\n            \"first_class\": 10000,\n            \"second_class\": 10100,\n            \"title\": \"python入门教程\",\n            \"purchase_precaution\": \"小程序内购买课程为课程兑换权益，购买成功后将自动兑换到您的账户内，可在****中重复学习观看\",\n            \"product_fulfillment_lst\": [\n                {\n                    \"fulfillment_content\": {\n                        \"fulfillment_uri\": \"product/resource/1001d044d41140d53ce9e57d793a4321\",\n                        \"name\": \"第一节: python介绍\"\n                    },\n                    \"fulfillment_type\": 3\n                }\n            ],\n            \"industry_type\": 1,\n            \"price_info\": {\n                \"unit\": \"节\",\n                \"price\": 5000,\n                \"real_price\": 4900\n            },\n            \"path_info_lst\": [\n                {\n                    \"path\": \"page/index/index\",\n                    \"query\": {\n                        \"course_id\": \"29384759\"\n                    }\n                }\n            ],\n            \"product_detail_lst\": [\n                {\n                    \"rich_text\": {\n                        \"text\": \"<b><i>1. python安装步骤</i></b>\"\n                    }\n                }\n            ],\n            \"anchor_info\": {\n                \"video_anchor_info\": {\n                    \"anchor_title\": \"python入门教程\"\n                }\n            },\n            \"product_img_uri\": \"tos-cn-i-b2i6zad4el/b0e72a2e9c5ee919c65a9b0276315cf9\"\n        },\n        \"course_params\": {\n            \"teacher_id\": \"T7283947392973\",\n            \"institution_id\": \"I1039473947393\",\n            \"course_num\": 637,\n            \"refund_label\": {\n                \"type\": 1,\n                \"day_before_use_info\": {\n                    \"day\": 7\n                }\n            },\n            \"use_label\": {\n                \"valid_date\": \"2022-12-01\"\n            },\n            \"start_timestamp\": 1649662751000,\n            \"end_timestamp\": 1681198751000\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductAddResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"101210271802130982251451520919C123\",\n    \"data\": {\n        \"product_id\": 6543216888019123456,\n        \"audit_id\": \"KNC202202090019433632123456\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyNoAuditRequest.json",
    "content": "{\n    \"access_token\": \"0801121846766a374933674b534a6c59746c4a62423049785a413d3d\",\n    \"product_id\": 7107287179797495852,\n    \"product_type\": 1,\n    \"product\": {\n        \"appid\": \"ttcfdbb96650e33350\",\n        \"path_info_lst\": [\n            {\n                \"path\": \"CHEN25/tabApi/tabApi\",\n                \"query\": {\n                    \"course_id\": \"jpxdbmge1234\",\n                    \"key\": \"velit eiusmod irure ipsum dolore\"\n                }\n            },\n            {\n                \"path\": \"CHEN25/tabApi/tabApi\",\n                \"query\": {\n                    \"course_id\": \"jpxdbmge1234\",\n                    \"key\": \"velit eiusmod \"\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyNoAuditResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202205201747090102100881591fceaf5c\",\n    \"data\": {\n        \"audit_id\": \"KNC234123123123\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyRequest.json",
    "content": "{\n    \"access_token\": \"0801121846756b44471029384758795958537a647053646f773d3d\",\n    \"product_type\": 1,\n    \"product_id\": 6543216888019123456,\n    \"product\": {\n        \"common_product_params\": {\n            \"appid\": \"tt11fd1220e13bba1234\",\n            \"first_class\": 10000,\n            \"second_class\": 10100,\n            \"title\": \"python入门教程\",\n            \"purchase_precaution\": \"小程序内购买课程为课程兑换权益，购买成功后将自动兑换到您的账户内，可在****中重复学习观看\",\n            \"product_fulfillment_lst\": [\n                {\n                    \"fulfillment_content\": {\n                        \"fulfillment_uri\": \"product/resource/1001d044d41140d53ce9e57d793a4321\",\n                        \"name\": \"第一节: python介绍\"\n                    },\n                    \"fulfillment_type\": 3\n                }\n            ],\n            \"industry_type\": 1,\n            \"price_info\": {\n                \"unit\": \"节\",\n                \"price\": 5000,\n                \"real_price\": 4900\n            },\n            \"path_info_lst\": [\n                {\n                    \"path\": \"page/index/index\",\n                    \"query\": {\n                        \"course_id\": \"29384759\"\n                    }\n                }\n            ],\n            \"product_detail_lst\": [\n                {\n                    \"rich_text\": {\n                        \"text\": \"<b><i>1. python安装步骤</i></b>\"\n                    }\n                }\n            ],\n            \"anchor_info\": {\n                \"video_anchor_info\": {\n                    \"anchor_title\": \"python入门教程\"\n                }\n            },\n            \"product_img_uri\": \"tos-cn-i-b2i6zad4el/b0e72a2e9c5ee919c65a9b0276315cf9\"\n        },\n        \"course_params\": {\n            \"teacher_id\": \"T7283947392973\",\n            \"institution_id\": \"I1039473947393\",\n            \"course_num\": 637,\n            \"refund_label\": {\n                \"type\": 1,\n                \"day_before_use_info\": {\n                    \"day\": 7\n                }\n            },\n            \"use_label\": {\n                \"valid_date\": \"2022-12-01\"\n            },\n            \"start_timestamp\": 1649662751000,\n            \"end_timestamp\": 1681198751000\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2021122721141201022513314212345678\",\n    \"data\": {\n        \"audit_id\": \"KNC202202090019433632123456\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyStatusRequest.json",
    "content": "﻿{\n    \"access_token\": \"765432167354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"product_status_info\": {\n        \"appid\": \"tt77fd0140e89bba1234\",\n        \"product_id\": 654321121221234567,\n        \"status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductModifyStatusResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2021122721141201022513314212345678\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryClassInfoRequest.json",
    "content": "{\n    \"access_token\": \"12345678467354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"appid\": \"tt77fd0140e89bba1234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryClassInfoResponse.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"202204271324260102252431250D04BCE0\",\n    \"data\": {\n        \"product_class_info_list\": [\n            {\n                \"class_info_detail_list\": [\n                    {\n                        \"class_definition\": \"对家长实施的教育孩子成长的课程，包括教育子女方法、理念课程。受众为家长，课程为传授家长（成人）教育子女方法、理念，例如：如何与孩子相处、提高孩子情商的方法、某某的育儿之道 孕产育儿，工具课程等\",\n                        \"document_link\": \"https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/operation/industry-norm/pan-knowledge/control-management-norms/\",\n                        \"professional_certification\": \"与所选二级分类相关的专业认证，包含但不仅限于以下专业认证   - 孤残儿童护理员职业资格证 - 育婴员职业资格证- 保育员职业资格证- 公共营养师（人社部历史认证）- 心理咨询师（人社部历史认证）- 学校外聘老师证书/证明/聘书- 蒙特梭利AMI/CoRT思维训练课程/瑞吉欧/华德福等- 国际泌乳顾问认证- 萨提亚模式心理咨询师认证- 报考机构签约教师\",\n                        \"professional_education\": \"本科及以上教育学、心理学等相关专业学历*海外院校毕业以教育部留学服务中心认证通过的学历为准。\",\n                        \"qualification_tip\": \"行业资质至少一项：教师资格证、专业性学历、专业认证\",\n                        \"second_class_id\": 10100,\n                        \"second_class_name\": \"家长教育\",\n                        \"special_tip\": \"受众人群：家长、父母\",\n                        \"teacher_qualification_certificate\": \"\"\n                    },\n                    {\n                        \"class_definition\": \"通过编程游戏启蒙、可视化图形编程等课程，培养学生的计算思维和创新解难能力。\",\n                        \"document_link\": \"https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/operation/industry-norm/pan-knowledge/control-management-norms/\",\n                        \"professional_certification\": \"与所选二级分类相关的专业认证，包含但不仅限于以下专业认证   - 知名编程相关大赛获奖证书（如：ACM算法大赛、世界机器人大赛等）- 编程培训师资认证- 少儿编程培训机构签约老师，任教超过三年，以机构提供的在职证明为准（需注明任教时间）\",\n                        \"professional_education\": \"专本及以上计算机科学与技术及相关专业学历*海外院校毕业以教育部留学服务中心认证通过的学历为准。\",\n                        \"qualification_tip\": \"必要资质无犯罪记录证明，其他行业资质至少一项：教师资格证、专业性学历、专业认证\",\n                        \"second_class_id\": 10300,\n                        \"second_class_name\": \"少儿编程\",\n                        \"special_tip\": \"受众范围为6-18岁，不包含学龄前儿童。必要资质带公章的无犯罪记录证明，上传到专业认证栏\",\n                        \"teacher_qualification_certificate\": \"\"\n                    }\n                ],\n                \"first_class_id\": 10000,\n                \"first_class_name\": \"少儿成长\"\n            },\n            {\n                \"class_info_detail_list\": [\n                    {\n                        \"class_definition\": \"以英语学习为目的的一类培训内容（大学英语四六级、专四专八；托福、雅思、GRE、SAT、A-level、口译、笔译、BEC、托业、口语课程等）\",\n                        \"document_link\": \"https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/operation/industry-norm/pan-knowledge/control-management-norms/\",\n                        \"professional_certification\": \"与所选二级分类相关的专业认证，包含但不仅限于以下专业认证 - 翻译专业资格证 - 英语专业四级/八级证书 - 剑桥商务英语证书 BEC Higher C1级别证书 - 托福100分以上成绩证明 - 雅思7.5分以上成绩证明 - GRE320+4.0以上成绩证明 - 剑桥成人英语教学证书（CELTA）- 高等院校外国语相关院系特聘讲师/教授/研究员\",\n                        \"professional_education\": \"\",\n                        \"qualification_tip\": \"行业资质至少一项：教师资格证、专业认证\",\n                        \"second_class_id\": 30100,\n                        \"second_class_name\": \"英语\",\n                        \"special_tip\": \"\",\n                        \"teacher_qualification_certificate\": \"\"\n                    },\n                    {\n                        \"class_definition\": \"以汉语学习为目的的一类培训，对外汉语内容（不包含语文学科课程）\",\n                        \"document_link\": \"https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/operation/industry-norm/pan-knowledge/control-management-norms/\",\n                        \"professional_certification\": \"与所选二级分类相关的专业认证，包含但不仅限于以下专业认证 - 翻译专业资格证 - 高等院校文学系/外国语系/国际教育相关院系特聘讲师/教授/研究员\",\n                        \"professional_education\": \"\",\n                        \"qualification_tip\": \"行业资质至少一项：教师资格证&专业认证（资格证书、职称证书）\",\n                        \"second_class_id\": 30200,\n                        \"second_class_name\": \"汉语学习\",\n                        \"special_tip\": \"\",\n                        \"teacher_qualification_certificate\": \"\"\n                    }\n                ],\n                \"first_class_id\": 30000,\n                \"first_class_name\": \"语言培训\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryRequest.json",
    "content": "﻿{\n    \"access_token\": \"12345678467354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"appid\": \"tt77fd0140e89bba1234\",\n    \"product_ids\": [5432181212227612345]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": 2021122820424401022524311803123456,\n    \"data\": {\n        \"products\": [\n            {\n                \"product_on_shelf\": {\n                    \"common_product_info\": {\n                        \"appid\": \"tt77fd0140e89bba1234\",\n                        \"first_class\": 10000,\n                        \"second_class\": 10100,\n                        \"industry_type\": 1,\n                        \"path_info_lst\": [\n                            {\n                                \"path\": \"page/index/index\",\n                                \"query\": {\n                                    \"a\": \"b\",\n                                    \"c\": \"d\"\n                                }\n                            }\n                        ],\n                        \"price_info\": {\n                            \"price\": 10000,\n                            \"real_price\": 9999,\n                            \"unit\": \"天\"\n                        },\n                        \"product_detail_lst\": [\n                            {\n                                \"img_url\": \"http://abc.def.com/product/resource/abc.png\",\n                                \"text\": \"abckdef\"\n                            }\n                        ],\n                        \"product_fulfillment_lst\": [\n                            {\n                                \"fulfillment_content\": {\n                                    \"fulfillment_url\": \"http://abc.def.com/product/resource/Lesson01.mp3\",\n                                    \"name\": \"sample\",\n                                    \"text\": \"sample\"\n                                },\n                                \"fulfillment_type\": 2\n                            }\n                        ],\n                        \"purchase_precaution\": \"购物须知\",\n                        \"qualification_urls\": [\n                            \"http://abc.def.com/product/resource/qualification1.png\"\n                        ],\n                        \"title\": \"商品标题\"\n                    },\n                    \"course_info\": {\n                        \"teacher_introduction\": \"老师介绍\"\n                    },\n                    \"product_id\": 7046681212227681234,\n                    \"product_status\": {\n                        \"reject_reason\": \"\",\n                        \"status\": 2\n                    },\n                    \"product_type\": 1\n                },\n                \"product_reviewing\": {\n                    \"common_product_info\": {\n                        \"appid\": \"tt77fd0140e89bba1234\",\n                        \"first_class\": 10000,\n                        \"second_class\": 10100,\n                        \"industry_type\": 1,\n                        \"path_info_lst\": [\n                            {\n                                \"path\": \"page/index/index\",\n                                \"query\": {\n                                    \"a\": \"b\",\n                                    \"c\": \"d\"\n                                }\n                            }\n                        ],\n                        \"price_info\": {\n                            \"price\": 10000,\n                            \"real_price\": 9999,\n                            \"unit\": \"天\"\n                        },\n                        \"product_detail_lst\": [\n                            {\n                                \"img_url\": \"http://abc.def.com/product/resource/abc.png\",\n                                \"text\": \"abckdef\"\n                            }\n                        ],\n                        \"product_fulfillment_lst\": [\n                            {\n                                \"fulfillment_content\": {\n                                    \"fulfillment_url\": \"http://abc.def.com/product/resource/Lesson01.mp3\",\n                                    \"name\": \"sample\",\n                                    \"text\": \"sample\"\n                                },\n                                \"fulfillment_type\": 2\n                            }\n                        ],\n                        \"purchase_precaution\": \"购物须知\",\n                        \"qualification_urls\": [\n                            \"http://abc.def.com/product/resource/qualification1.png\"\n                        ],\n                        \"title\": \"商品标题\"\n                    },\n                    \"course_info\": {\n                        \"teacher_introduction\": \"老师介绍\"\n                    },\n                    \"product_id\": 7046681212227681234,\n                    \"product_status\": {\n                        \"reject_reason\": \"\",\n                        \"status\": 2\n                    },\n                    \"product_type\": 1\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryReviewRequest.json",
    "content": "{\n    \"access_token\": \"12345678467354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"appid\": \"tt77fd0140e89bba1234\",\n    \"product_ids\": [ 5432181212227612345, 768781212227612345 ],\n    \"query_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryReviewResponse.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"202204271324260102252431250D04BCE0\",\n    \"data\": {\n        \"products_review\": {\n            \"7147951881074049062\": {\n                \"course\": {\n                    \"latest_audit_id\": \"KNC111100000000001505787915\",\n                    \"reject_reason\": \"{\\\"fail_reason\\\":\\\"通过;\\\",\\\"position\\\":\\\"画面\\\"}\",\n                    \"status\": 2\n                },\n                \"fulfillment\": [\n                    {\n                        \"latest_audit_id\": \"KNV111100000000001505787915\",\n                        \"reject_reason\": \"\",\n                        \"fulfillment_uri\": \"product/resource/111\",\n                        \"status\": 1\n                    },\n                    {\n                        \"latest_audit_id\": \"KNV111100000000001505787915\",\n                        \"reject_reason\": \"{\\\"fail_reason\\\":\\\"禁入课程:非课程教学,封建迷信,线下履约;课程质量:货不对板,授课教师不符;;\\\",\\\"position\\\":\\\"标题,封面,画面,音频\\\"}\",\n                        \"fulfillment_uri\": \"product/resource/222\",\n                        \"status\": 3\n                    }\n                ]\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryTemplateInfoRequest.json",
    "content": "{\n    \"access_token\": \"080112184676444244166471506b427341456a414e5646744d773d3d\",\n    \"appid\": \"tt053873859a00623001\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Product/ProductQueryTemplateInfoResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202205201747090102100881591fceaf5c\",\n    \"data\": {\n        \"product_id\": \"231312312321414\",\n        \"object_id\": \"T2342424123\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductAddQualificationRequest.json",
    "content": "﻿{\n    \"access_token\": \"0801121846742b4c56762b6f5a4a3636527747714c39334950773d3d\",\n    \"appid\": \"tt5daf2b12c2857910\",\n    \"qualification\": {\n        \"object_type\": 2,\n        \"institution_qualification_info\": {\n            \"name\": \"北京******科技有限公司\",\n            \"institution_introduction\": \"****是专注抖音知识付费、内容变现、课程上传、支持短视频直播挂载的小程序\",\n            \"company_name\": \"哈哈哈ha\",\n            \"institution_record_name\": \"哈哈哈\",\n            \"institution_scene_type\": \"线上机构\",\n            \"institution_subject_type\": \"企业工商户\",\n            \"legal_person_name\": \"张三\",\n            \"legal_person_ID_number\": \"110101199003079315\",\n            \"legal_person_ID_img_uris\": [\n                \"product/resource/002b47258345646892b517009a473630\",\n                \"product/resource/002b47258345646892b517009a473630\"\n            ],\n            \"institution_logo_uri\": \"product/resource/002b47258345646892b517009a473630\",\n            \"institution_trade_mark_uri\": \"product/resource/002b47258345646892b517009a473630\",\n            \"qualification_info_lst\": [\n                {\n                    \"type\": 1,\n                    \"image_uris\": [\n                        \"product/resource/002b47258345646892b517009a473630\"\n                    ],\n                    \"validity_date\": \"2022-09-21\",\n                    \"license_id\": \"2352WE600099\"\n                }\n            ],\n            \"img_uri\": \"tos-boe-i-3rjuffv3j3/710081825fd1dfc9c428fd5e877b0e5e\",\n            \"nickname\": \"张三\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductAddQualificationResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2021122721141201022513314212345678\",\n    \"data\": {\n        \"object_id\": \"I6543216888019123456\",\n        \"audit_id\": \"QUA202202090019433632123456\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductModifyQualificationRequest.json",
    "content": "{\n    \"access_token\": \"0801121846742b4c56762b6f5a4a3636527747714c39334950773d3d\",\n    \"appid\": \"tt5daf2b12c2857910\",\n    \"qualification\": {\n        \"object_type\": 2,\n        \"object_id\": \"T32412342351\",\n        \"institution_qualification_info\": {\n            \"name\": \"北京******科技有限公司\",\n            \"institution_introduction\": \"****是专注抖音知识付费、内容变现、课程上传、支持短视频直播挂载的小程序\",\n            \"company_name\": \"北京******科技有限公司\",\n            \"institution_record_name\": \"北京******科技有限公司\",\n            \"institution_scene_type\": \"线上机构\",\n            \"institution_subject_type\": \"企业工商户\",\n            \"legal_person_name\": \"张三\",\n            \"legal_person_ID_number\": \"110101199003079315\",\n            \"legal_person_ID_img_uris\": [\n                \"product/resource/002b47258345646892b517009a473630\",\n                \"product/resource/002b47258345646892b517009a473630\"\n            ],\n            \"institution_logo_uri\": \"product/resource/002b47258345646892b517009a473630\",\n            \"institution_trade_mark_uri\": \"product/resource/002b47258345646892b517009a473630\",\n            \"qualification_info_lst\": [\n                {\n                    \"type\": 1,\n                    \"image_uris\": [ \"product/resource/002b47258345646892b517009a473630\" ],\n                    \"validity_date\": \"2022-09-21\",\n                    \"license_id\": \"2352WE600099\"\n                }\n            ],\n            \"img_uri\": \"tos-boe-i-3rjuffv3j3/710081825fd1dfc9c428fd5e877b0e5e\",\n            \"nickname\": \"张三\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductModifyQualificationResponse.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2021122721141201022513314212345678\",\n    \"data\": {\n        \"object_id\": \"I6543216888019123456\",\n        \"audit_id\": \"QUA202202090019433632123456\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductQueryQualificationRequest.json",
    "content": "{\n    \"access_token\": \"080112184676444244166471506b427341456a414e5646744d773d3d\",\n    \"appid\": \"tt053873859a00623001\",\n    \"object_id_with_classifications\": [\n        {\n            \"object_type\": 1,\n            \"object_id\": \"i7099005143589662723\",\n            \"first_class\": 0,\n            \"second_class\": 0,\n            \"third_class\": 0\n        },\n        {\n            \"object_type\": 1,\n            \"object_id\": \"t7096818881041442963\",\n            \"first_class\": 70000,\n            \"second_class\": 70500,\n            \"third_class\": 0\n        },\n        {\n            \"object_type\": 1,\n            \"object_id\": \"t7097099402900663821\",\n            \"first_class\": 50000,\n            \"second_class\": 50300,\n            \"third_class\": 0\n        },\n        {\n            \"object_type\": 1,\n            \"object_id\": \"t7080104044114242600\",\n            \"first_class\": 30000,\n            \"second_class\": 30100,\n            \"third_class\": 0\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Qualification/ProductQueryQualificationResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202205201747090102100881591fceaf5c\",\n    \"data\": {\n        \"qualifications\": [\n            {\n                \"qualification_on_shelf\": {\n                    \"third_class\": 0,\n                    \"object_type\": 2,\n                    \"object_id\": \"I1099005343589662723\",\n                    \"status\": 1,\n                    \"object_name\": \"****\",\n                    \"nick_name\": \"昵称\",\n                    \"first_class\": 0,\n                    \"second_class\": 0,\n                    \"fail_reason\": \"xxx\"\n                },\n                \"qualification_reviewing\": {\n                    \"object_id\": \"I1099005343589662723\",\n                    \"status\": 12,\n                    \"object_name\": \"****\",\n                    \"nick_name\": \"昵称\",\n                    \"first_class\": 0,\n                    \"second_class\": 0,\n                    \"third_class\": 0,\n                    \"object_type\": 2,\n                    \"fail_reason\": \"xxx\"\n                }\n            },\n            {\n                \"qualification_on_shelf\": {},\n                \"qualification_reviewing\": {\n                    \"first_class\": 70000,\n                    \"second_class\": 70500,\n                    \"third_class\": 0,\n                    \"object_type\": 1,\n                    \"object_id\": \"T7096818881041448963\",\n                    \"status\": 13,\n                    \"object_name\": \"陈*\",\n                    \"nick_name\": \"老陈\",\n                    \"fail_reason\": \"xxx\"\n                }\n            },\n            {\n                \"qualification_on_shelf\": {\n                    \"first_class\": 50000,\n                    \"second_class\": 50300,\n                    \"third_class\": 0,\n                    \"object_type\": 1,\n                    \"object_id\": \"T1097099402908663821\",\n                    \"status\": 1,\n                    \"object_name\": \"邓**\",\n                    \"nick_name\": \"老邓\",\n                    \"fail_reason\": \"xxx\"\n                },\n                \"qualification_reviewing\": {\n                    \"nick_name\": \"老邓\",\n                    \"first_class\": 50000,\n                    \"second_class\": 50300,\n                    \"third_class\": 0,\n                    \"object_type\": 1,\n                    \"object_id\": \"T1097099402908663821\",\n                    \"status\": 12,\n                    \"object_name\": \"邓**\",\n                    \"fail_reason\": \"xxx\"\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/RefundRule/ProductModifyRefundRuleRequest.json",
    "content": "{\n    \"access_token\": \"765432167354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"appid\": \"tt77fd0140e89bba1234\",\n    \"refund_rule_map\": {\n        \"7156496666666666666\": 1,\n        \"7156497777777777777\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/RefundRule/ProductQueryRefundRuleMetaRequest.json",
    "content": "{\n    \"access_token\": \"765432167354704e4f556f66496b774337614d4239784e78513d3d\",\n    \"appid\": \"tt77fd0140e89bba1234\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/RefundRule/ProductQueryRefundRuleMetaResponse.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2021122721141201022513314212345678\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"desc\": \"购后7天未学满5%可退\",\n            \"details\": \"7日内学习时长小于课程总时长的5%（课程总时长大于10分钟的遵循此规则）\"\n        },\n        {\n            \"id\": 2,\n            \"desc\": \"购后7天未学满30秒可退\",\n            \"details\": \"7日内用户学习时长小于30秒（课程总时长小于/等于10分钟的遵循此规则）\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Resource/ProductQueryResourceStatusRequest.json",
    "content": "﻿{\n    \"access_token\": \"0801121846735561486f5a48744d744157456a554a68446d52773d3d\",\n    \"appid\": \"tt77fd0140e89bba8401\",\n    \"resource_uri\": \"product/resource/abcd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Resource/ProductQueryResourceStatusResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": 2021122911185801022524315301123456,\n    \"data\": {\n        \"resource_uri\": \"product/resource/abcd\",\n        \"status\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Resource/ProductUploadResourceRequest.json",
    "content": "{\n    \"access_token\": \"0801121846735561486f5a48744d744157456a554a68446d52773d3d\",\n    \"appid\": \"tt77fd0140e89bba8401\",\n    \"resource_type\": 1,\n    \"resource_url\": \"https://via.placeholder.com/150\",\n    \"callback_data\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/ProductApi/Resource/ProductUploadResourceResponse.json",
    "content": "﻿{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": 2021122911185801022524315301123456,\n    \"data\": {\n        \"resource_uri\": \"product/resource/dasdkfji1343t879l23\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityAddClassAuthRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"partner_entity_id\": \"E_7178703725253394476\",\n    \"merchant_entity_id\": \"I_7179078906694139948\",\n    \"industry_code\": 10000,\n    \"industry_class\":\n    {\n        \"first_class\": 70000,\n        \"second_class\": 70500,\n        \"third_class\": 0\n    },\n    \"industry_role\": 1,\n    \"merchant_qualifications\":\n    [\n        {\n            \"material_type\": 1002,\n            \"material_expiretime\": \"2033-01-01\",\n            \"material_paths\":\n            [\n                \"certification/resource/b6b0ffee0ae2a9cfe723aad140dbd521\"\n            ]\n        }\n    ],\n    \"institution\":\n    {\n        \"record_name\": \"泛知识机构九\",\n        \"scene_type\": \"线上机构\",\n        \"subject_type\": \"企业工商户\",\n        \"logo_uri\": \"certification/resource/94699056669e84341b488570bdbe87d5\",\n        \"trademark_uri\": \"certification/resource/94699056669e84341b488570bdbe87d5\",\n        \"desc\": \"这是简介简介必须是不得少于12个字符\",\n        \"employee\":\n        {\n            \"employee_material\":\n            {\n                \"name\": \"花玲玲\",\n                \"id_number\": \"320682198608139122\",\n                \"expire_time\": \"2030-05-05\",\n                \"front_path\": \"certification/resource/cd29412b2392d0f1c488bd9aa1e650b7\",\n                \"back_path\": \"certification/resource/d797a08e8d542cd5db0f84a1710900c0\"\n            },\n            \"cooperation_agreement\":\n            {\n                \"material_type\": 1005,\n                \"material_expiretime\": \"2031-06-06\",\n                \"material_paths\":\n                [\n                    \"certification/resource/722460c5bca1bac5f76ba9ac10f5d030\"\n                ]\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityAddClassAuthResponse.json",
    "content": "{\n    \"class_auth_taskid\": \"Role_71790xxxxx\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityByPartnerRequest.json",
    "content": "{\n    \"appid\":\"tt5ed3286ec1exxxb801\",\n    \"access_token\":\"{{accesstoken}}\",\n    \"entity_id\":\"E_720848123xxx5589309\",\n    \"basic_auth\":{\n        \"entity_type\":2,\n        \"entity_name\":\"企业老师第三阶段内部测试三\",\n        \"certificate_type\":2,\n        \"enterprise\":{\n            \"certificate_id\":\"91112022083xxx0762\",\n            \"certificate_materials\":[\n                {\n                    \"material_type\":1007,\n                    \"material_expiretime\":\"2025-01-01\",\n                    \"material_paths\":[\n                        \"certification/resource/13084f5b17978a5c0f37a1aa9f37e45a\"\n                    ]\n                }\n            ],\n            \"legal_person\":{\n                \"name\":\"花x玲\",\n                \"id_number\":\"3206821xxx08139122\",\n                \"expire_time\":\"2033-03-04\",\n                \"front_path\":\"certification/resource/175e18a5d45fefd6fe4289bc23c1cfe5\",\n                \"back_path\":\"certification/resource/e6195fa78c5d125f54348734206417c6\"\n            }\n        }\n    },\n    \"class_auth\": {\n        \"industry_code\": 10000,\n        \"industry_class\": {\n            \"first_class\": 40000,\n            \"second_class\": 40600,\n            \"third_class\": 0\n        },\n        \"industry_role\": 2,\n        \"qualifications\": [\n            {\n                \"material_type\": 1001,\n                \"material_expiretime\": \"2033-01-02\",\n                \"material_paths\": [\n                    \"certification/resource/41130372b6128175610a417317a398ba\"\n                ]\n            }\n        ],\n        \"institution\": {\n            \"record_name\": \"内部测试麻烦审核通过\",\n            \"scene_type\": \"线上机构\",\n            \"subject_type\": \"企业工商户\",\n            \"logo_uri\": \"certification/resource/5b3f3a85b6121e4f0439b3d5fb91fbdd\",\n            \"trademark_uri\": \"certification/resource/b6fa447d3c7fdf9f99b5421b791c038f\",\n            \"desc\": \"哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈\",\n            \"employee\": {\n                \"employee_material\": {\n                    \"name\": \"花x玲\",\n                    \"id_number\": \"3206821xxx08139122\",\n                    \"expire_time\": \"2033-01-02\",\n                    \"front_path\": \"certification/resource/175e18a5d45fefd6fe4289bc23c1cfe5\",\n                    \"back_path\": \"certification/resource/e6195fa78c5d125f54348734206417c6\"\n                },\n                \"cooperation_agreement\": {\n                    \"material_type\": 1005,\n                    \"material_expiretime\": \"2040-02-08\",\n                    \"material_paths\": [\n                        \"certification/resource/41130372b6128175610a417317a398ba\"\n                    ]\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityByPartnerResponse.json",
    "content": "{\n    \"basic_auth_taskid\": \"Basic_7179078906xxx172716\",\n    \"class_auth_taskid\": \"Role_717907890xxx4238252\",\n    \"entity_id\": \"I_7179078xxx694139948\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityBySelfRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"basic_auth\": {\n        \"entity_type\": 2,\n        \"entity_name\": \"泛知识机构九\",\n        \"certificate_type\": 2,\n        \"enterprise\": {\n            \"certificate_id\": \"911120220xxx140399\",\n            \"certificate_materials\": [\n                {\n                    \"material_type\": 1007,\n                    \"material_expiretime\": \"2026-02-02\",\n                    \"material_paths\": [\n                        \"certification/resource/4c23f6490a4b65b1c537abdd765b1907\"\n                    ]\n                }\n            ],\n            \"legal_person\": {\n                \"name\": \"刘x国\",\n                \"id_number\": \"2102191959xxx06418\",\n                \"expire_time\": \"2028-03-03\",\n                \"front_path\": \"certification/resource/1f3ac1c1966a19d83e7607bfb3d38ce9\",\n                \"back_path\": \"certification/resource/11dd877fb32b439c4609f25f76ab05c1\"\n            }\n        }\n    },\n    \"class_auth\": {\n        \"industry_code\": 10000,\n        \"industry_class\": {\n            \"first_class\": 70000,\n            \"second_class\": 70500,\n            \"third_class\": 0\n        },\n        \"industry_role\": 2,\n        \"qualifications\": [\n            {\n                \"material_type\": 1001,\n                \"material_expiretime\": \"2030-04-04\",\n                \"material_paths\": [\n                    \"certification/resource/722460c5bca1bac5f76ba9ac10f5d030\"\n                ]\n            }\n        ],\n        \"institution\": {\n            \"record_name\": \"泛知识机构九\",\n            \"scene_type\": \"线上机构\",\n            \"subject_type\": \"企业工商户\",\n            \"logo_uri\": \"certification/resource/94699056669e84341b488570bdbe87d5\",\n            \"trademark_uri\": \"certification/resource/94699056669e84341b488570bdbe87d5\",\n            \"desc\": \"这是简介简介必须是不得少于12个字符\",\n            \"employee\": {\n                \"employee_material\": {\n                    \"name\": \"花x玲\",\n                    \"id_number\": \"32068219xxx8139122\",\n                    \"expire_time\": \"2030-05-05\",\n                    \"front_path\": \"certification/resource/cd29412b2392d0f1c488bd9aa1e650b7\",\n                    \"back_path\": \"certification/resource/d797a08e8d542cd5db0f84a1710900c0\"\n                },\n                \"cooperation_agreement\": {\n                    \"material_type\": 1005,\n                    \"material_expiretime\": \"2031-06-06\",\n                    \"material_paths\": [\n                        \"certification/resource/722460c5bca1bac5f76ba9ac10f5d030\"\n                    ]\n                }\n            }\n        },\n        \"partner\": {\n            \"company_type\": \"\",\n            \"company_addr\": \"\",\n            \"cooperation_cases\": [\n                {\n                    \"material_type\": 1000,\n                    \"material_expiretime\": \"\",\n                    \"material_paths\": [\n                        \"\"\n                    ]\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityBySelfResponse.json",
    "content": "{\n    \"basic_auth_taskid\": \"Basic_717907xxxxxx69324\",\n    \"class_auth_taskid\": \"Role_7xxxxxxx4860\",\n    \"entity_id\": \"E_717xxxxx556\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetAuditDetailRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxx\",\n    \"access_token\": \"yyyyy\",\n    \"auth_type\": 2,\n    \"auth_taskid\": \"Role_7178xxxxxx53885996\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetAuditDetailResponse.json",
    "content": "{\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"qualifications\": [\n        {\n            \"audit_reason\": \"\",\n            \"audit_status\": 1,\n            \"audit_taskid\": \"Role_7178703725253885996\",\n            \"expire_time\": \"2033-01-02\",\n            \"qualifications\": [\n                {\n                    \"material_expiretime\": \"2033-01-02\",\n                    \"material_paths\": [\n                        \"certification/resource/01d86c188a9a6ba4e4bbbe3385ccf1f2\"\n                    ],\n                    \"material_type\": 1001\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetBasicAuthRequest.json",
    "content": "{\n    \"appid\": \"tta12xxxxxcbe01\",\n    \"access_token\": \"080yyyyyyy35494e62413d3d\",\n    \"entity_id\": \"E_7178703725698269228\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetBasicAuthResponse.json",
    "content": "{\n    \"audit_qualification\": {},\n    \"auth_reason\": \"\",\n    \"auth_status\": 2,\n    \"basic_auth\": {\n        \"certificate_type\": 2,\n        \"enterprise\": {\n            \"certificate_id\": \"9111283673140399\",\n            \"certificate_materials\": [\n                {\n                    \"material_expiretime\": \"2028-02-02\",\n                    \"material_paths\": [\n                        \"certification/resource/4c2rewr0a4b65b1c537abdd765b1907\"\n                    ],\n                    \"material_type\": 1007\n                }\n            ],\n            \"legal_person\": {\n                \"back_path\": \"certification/resource/11dd87rewwt609f25f76ab05c1\",\n                \"expire_time\": \"2028-02-02\",\n                \"front_path\": \"certification/resource/1f3ac1c1966a1eteer7bfb3d38ce9\",\n                \"id_number\": \"320682198608139122\",\n                \"name\": \"花铃\"\n            }\n        },\n        \"entity_name\": \"泛知识机构三\",\n        \"entity_type\": 2,\n        \"individual\": {}\n    },\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"online_qualification\": {\n        \"audit_reason\": \"\",\n        \"audit_status\": 2,\n        \"audit_taskid\": \"Basic_7178727377638260780\",\n        \"expire_time\": \"2028-02-02\",\n        \"qualifications\": [\n            {\n                \"material_expiretime\": \"2028-02-02\",\n                \"material_paths\": [\"certification/resource/4c23f6490aertgdsd5b1907\"],\n                \"material_type\": 1007\n            },\n            {\n                \"material_expiretime\": \"2028-02-02\",\n                \"material_paths\": [\n                    \"certification/resource/1f3ac1c196reras3e7607bfb3d38ce9\",\n                    \"certification/resource/11dd877r43rer4609f25f76ab05c1\"\n                ],\n                \"material_type\": 1000\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetClassAuthRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"partner_entity_id\": \"\",\n    \"merchant_entity_id\": \"E_787907892525941398\",\n    \"industry_code\": 10000,\n    \"industry_class\": {\n        \"first_class\": 70000,\n        \"second_class\": 70500,\n        \"third_class\": 0\n    },\n    \"industry_role\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityGetClassAuthResponse.json",
    "content": "{\n    \"class_auths\": [\n        {\n            \"audit_qualification\": {},\n            \"industry_class\": {\n                \"first_class\": 40000,\n                \"second_class\": 40600,\n                \"third_class\": 0\n            },\n            \"industry_code\": 10000,\n            \"industry_role\": 1,\n            \"institution\": {},\n            \"online_qualification\": {\n                \"audit_reason\": \"\",\n                \"audit_status\": 2,\n                \"audit_taskid\": \"Role_7179078906694238252\",\n                \"expire_time\": \"2033-01-02\",\n                \"qualifications\": [\n                    {\n                        \"material_expiretime\": \"2033-01-02\",\n                        \"material_paths\": [\n                            \"certification/resource/01d86c188a9a6ba4e4bbbe3385ccf1f2\"\n                        ],\n                        \"material_type\": 1001\n                    }\n                ]\n            },\n            \"partner\": {}\n        }\n    ],\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityUpdateBasicAuthRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"partner_entity_id\": \"\",\n    \"merchant_entity_id\": \"E_7178703725253394476\",\n    \"entity_name\": \"泛知识机构六\",\n    \"enterprise\": {\n        \"certificate_id\": \"911120220831140392\",\n        \"certificate_materials\": [\n            {\n                \"material_type\": 1007,\n                \"material_expiretime\": \"2025-02-02\",\n                \"material_paths\": [\n                    \"certification/resource/4c23f6490a4b65b1c537abdd765b1907\"\n                ]\n            }\n        ],\n        \"legal_person\": {\n            \"name\": \"刘成国\",\n            \"id_number\": \"210219195912106418\",\n            \"expire_time\": \"2027-03-03\",\n            \"front_path\": \"certification/resource/1f3ac1c1966a19d83e7607bfb3d38ce9\",\n            \"back_path\": \"certification/resource/11dd877fb32b439c4609f25f76ab05c1\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityUpdateBasicAuthResponse.json",
    "content": "{\n    \"basic_auth_taskid\": \"Basic_7179078906694500396\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityUpdateClassAuthRequest.json",
    "content": "{\n    \"appid\": \"tt81xxxxx9801\",\n    \"access_token\": \"yyyy\",\n    \"partner_entity_id\": \"\",\n    \"merchant_entity_id\": \"I_7177356117591244844\",\n    \"industry_code\": 10000,\n    \"class\": {\n        \"first_class\": 40000,\n        \"second_class\": 40600,\n        \"third_class\": 0\n    },\n    \"industry_role\": 2,\n    \"merchant_qualifications\": [\n        {\n            \"material_type\": 1003,\n            \"material_expiretime\": \"\",\n            \"material_paths\": [\n                \"certification/resource/74ed50a56eaa6782d96a55f157974720\"\n            ]\n        }\n    ],\n    \"institution\": {\n        \"record_name\": \"xxx合作优先公司\",\n        \"scene_type\": \"线上机构\",\n        \"subject_type\": \"企业工商户\",\n        \"logo_uri\": \"certification/resource/74ed50a56eaa6782d96a55f15xxx\",\n        \"trademark_uri\": \"certification/resource/74ed50a56eaa6782d96a55f1579yyy\",\n        \"desc\": \"机构描述\",\n        \"employee\": {\n            \"employee_material\": {\n                \"name\": \"王xx\",\n                \"id_number\": \"411938171723773\",\n                \"expire_time\": \"2033-10-10\",\n                \"front_path\": \"certification/resource/74ed50a56eaa6782d96a55f15xxxx\",\n                \"back_path\": \"certification/resource/74ed50a56eaa6782d96a55f157xxxxx\"\n            },\n            \"cooperation_agreement\": {\n                \"material_type\": 1005,\n                \"material_expiretime\": \"2023-10-10\",\n                \"material_paths\": [\n                    \"certification/resource/74ed50a56eaa6782d96xxxxf157xxxxx\"\n                ]\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Auth/AuthEntityUpdateClassAuthResponse.json",
    "content": "{\n    \"class_auth_taskid\": \"Role_7179078906694500396\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/AuthEntityQueryEntityInfoRequest.json",
    "content": "{\n    \"certificate_id\": \"4111********1141858\",\n    \"access_token\": \"0801121846************************31513d3d\",\n    \"app_id\": \"tt81e********f39801\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/AuthEntityQueryEntityInfoResponse.json",
    "content": "{\n    \"entity_id\": \"E_72062********437676\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"成功\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/AuthEntityUploadMaterialResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"path\": \"certification/resource/c60cbb3b8bb043cc9b349bf5484e1980\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityEnableMountScopeRequest.json",
    "content": "{\n    \"appid\": \"tta12xxxxxcbe01\",\n    \"access_token\": \"080yyyyyyy35494e62413d3d\",\n    \"c_user\": {\n        \"openid\": \"xxxxxx\",\n        \"client_key\": \"ttxxxx\"\n    },\n    \"merchant_entity_id\": \"E_7178703725698269228\",\n    \"partner_entity_id\": \"\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1,\n    \"mount_scope\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityQueryBindToCListRequest.json",
    "content": "{\n    \"appid\": \"tta12xxxxxcbe01\",\n    \"access_token\": \"080yyyyyyy35494e6241xxxx\",\n    \"merchant_entity_id\": \"E_717870xxxxxxxxxxxxx\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityQueryBindToCListResponse.json",
    "content": "{\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"aweme_id_list\": [\n        \"xxxxxxxx\",\n        \"xxxxxxxx\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityQueryMountScopeRequest.json",
    "content": "{\n    \"appid\": \"tta12xxxxxcbe01\",\n    \"access_token\": \"080yyyyyyy35494e62413d3d\",\n    \"openid\": \"xxxxxx\",\n    \"merchant_entity_id\": \"E_7178703725698269228\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityQueryMountScopeResponse.json",
    "content": "{\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"scope_list\": [\n        1,\n        2\n    ],\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Bind/AuthEntityUnbindAccountRequest.json",
    "content": "{\n    \"appid\": \"tta12xxxxxcbe01\",\n    \"access_token\": \"080yyyyyyy35494e62413d3d\",\n    \"c_user\": {\n        \"openid\": \"xxxxxx\",\n        \"client_key\": \"ttxxxx\"\n    },\n    \"merchant_entity_id\": \"E_7178703725698269228\",\n    \"partner_entity_id\": \"\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/MerchantCode/AuthEntityActivateMerchantCodeRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"certificate_id\": \"100330xxxxxxx\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1,\n    \"merchant_code\": \"99sxxxx\",\n    \"callback_url\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/MerchantCode/AuthEntityQueryMerchantCodeStatusRequest.json",
    "content": "{\n    \"appid\": \"ttxxxxxxxx\",\n    \"access_token\": \"xxxxxxxx\",\n    \"certificate_id\": \"100330xxxxxxx\",\n    \"industry_code\": 10000,\n    \"industry_role\": 1,\n    \"merchant_code\": \"99sxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/MerchantCode/AuthEntityQueryMerchantCodeStatusResponse.json",
    "content": "{\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"status\": \"SUCCESS\",\n    \"status_desc\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityAddRoleRequest.json",
    "content": "{\n    \"appid\": \"ttcfc4b97950f8484801\",\n    \"access_token\": \"08011218463241356a4a3557314770326a6d7459645257624e673d3d\",\n    \"entity_id\": \"E_7230706235463548989\",\n    \"industry_role\": 2,\n    \"partner_role_info\": {\n        \"partner_info\": {\n            \"company_type\": \"\",\n            \"company_addr\": \"\",\n            \"cooperation_cases\": [\n                {\n                    \"material_type\": 0,\n                    \"material_expiretime\": \"\",\n                    \"material_paths\": [\"\"]\n                }\n            ]\n        }\n    },\n    \"institution_role_info\": {\n        \"institution_info\": {\n            \"record_name\": \"三九小飞棍来喽\",\n            \"scene_type\": \"线上机构\",\n            \"subject_type\": \"企业工商户\",\n            \"logo_uri\": \"certification/resource/e0882488978ce1eb808636028d52b107\",\n            \"trademark_uri\": \"certification/resource/e0882488978ce1eb808636028d52b107\",\n            \"desc\": \"这个简介也必须是十二个字符才可以吗\"\n        },\n        \"institution_class_info\": {\n            \"industry_class\": {\n                \"first_class\": 40000,\n                \"second_class\": 40600,\n                \"third_class\": 0\n            },\n            \"employee\": {\n                \"employee_material\": {\n                    \"name\": \"花玲玲\",\n                    \"id_number\": \"320XXXXXXXXXXXXXXX\",\n                    \"expire_time\": \"2030-05-05\",\n                    \"front_path\": \"certification/resource/e0882488978ce1eb808636028d52b107\",\n                    \"back_path\": \"certification/resource/e0882488978ce1eb808636028d52b107\"\n                },\n                \"cooperation_agreement\": {\n                    \"material_type\": 1005,\n                    \"material_expiretime\": \"2031-06-06\",\n                    \"material_paths\": [\n                        \"certification/resource/e0882488978ce1eb808636028d52b107\"\n                    ]\n                }\n            },\n            \"class_material\": {\n                \"material_type\": 1001,\n                \"material_expiretime\": \"2030-04-04\",\n                \"material_paths\": [\n                    \"certification/resource/e0882488978ce1eb808636028d52b107\"\n                ]\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityAddRoleResponse.json",
    "content": "{\n    \"add_role_taskid\": \"Role_717907890xxx4238252\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityAuthRoleRequest.json",
    "content": "{\n    \"appid\": \"tt427e34c3dd07777601\",\n    \"access_token\": \"080112184630xxx947774a45363371682f48762f4c67326974513d3d\",\n    \"partner_entity_id\": \"E_7208933888470106156\",\n    \"merchant_entity_id\": \"E_7208933889593688108\",\n    \"industry_code\": 10000,\n    \"auth_letters\": [\n        {\n            \"material_type\": 1006,\n            \"material_expiretime\": \"2033-01-01\",\n            \"material_paths\": [\n                \"certification/resource/c1bb104b7a84fb40e58f89a91cf19b22\"\n            ]\n        }\n    ],\n    \"scope\": 2,\n    \"nick\": \"哈哈哈\",\n    \"icon\": \"certification/resource/c1bb104b7a84fb40e58f89a91cf19b22\",\n    \"desc\": \"哈哈\",\n    \"merchant_industry_role\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityAuthRoleResponse.json",
    "content": "{\n    \"bind_taskid\": \"AppidBind_721021xxx2534894636\",\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityBindRoleRequest.json",
    "content": "{\n    \"appid\": \"ttb7acc1112xxx277d01\",\n    \"access_token\": \"0801121846307a677xxx634338303473326e3573324c4d5779673d3d\",\n    \"merchant_entity_id\": \"E_71802667xxx55304249\",\n    \"industry_code\": 10000,\n    \"merchant_industry_role\": 3\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityGetAppIdAuthRequest.json",
    "content": "{\n    \"appid\": \"tt427e34c3dd07777601\",\n    \"access_token\": \"0801121846307773635162617634556b772f72597545626155513d3d\",\n    \"partner_entity_id\": \"E_7208933888470106156\",\n    \"merchant_entity_id\": \"E_7208933889593688108\",\n    \"merchant_industry_role\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityGetAppIdAuthResponse.json",
    "content": "{\n    \"data\": {\n        \"appid\": \"tt427e34c3dd07777601\",\n        \"audit_auth_letter\": {},\n        \"auth_reason\": \"\",\n        \"auth_status\": 2,\n        \"desc\": \"哈哈\",\n        \"icon\": \"certification/resource/c1bb104b7a84fb40e58f89a91cf19b22\",\n        \"nick\": \"哈哈哈\",\n        \"online_auth_letter\": {\n            \"audit_reason\": \"\",\n            \"audit_status\": 2,\n            \"audit_taskid\": \"AppidBind_7209887453367517228\",\n            \"expire_time\": \"2033-01-01\",\n            \"qualifications\": [\n                {\n                    \"material_expiretime\": \"2033-01-01\",\n                    \"material_paths\": [\n                        \"certification/resource/c1bb104b7a84fb40e58f89a91cf19b22\"\n                    ],\n                    \"material_type\": 1006\n                }\n            ]\n        },\n        \"scope\": 2\n    },\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityGetBindListRequest.json",
    "content": "{\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityGetBindListResponse.json",
    "content": "{\n    \"bind_info_list\": [\n        {\n            \"appid\": \"tt81e9f7541e8e239801\",\n            \"industry_code\": 10000,\n            \"industry_role\": 3,\n            \"merchant_entity_id\": \"E_7198139xxxx104789548\"\n        }\n    ],\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityUnauthRoleRequest.json",
    "content": "{\n    \"appid\": \"tt5ed3286ec1exxxb801\",\n    \"access_token\": \"0801121846307a696b6143xxxb76736f356262425473753074773d3d\",\n    \"partner_entity_id\": \"E_720848123494xxx9309\",\n    \"merchant_entity_id\": \"E_72106048172xxx98392\",\n    \"merchant_industry_role\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityUnbindRoleRequest.json",
    "content": "{\n    \"appid\": \"ttb7acc1112xxx277d01\",\n    \"access_token\": \"0801121846307a677xxx634338303473326e3573324c4d5779673d3d\",\n    \"merchant_entity_id\": \"E_71802667xxx55304249\",\n    \"industry_code\": 10000,\n    \"merchant_industry_role\": 3\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityUpdateAuthLetterRequest.json",
    "content": "{\n    \"appid\": \"tt427e34c3dd07777601\",\n    \"access_token\": \"08011218463077394777xa45363371682f48762f4cxxx6974513d3d\",\n    \"partner_entity_id\": \"E_7208933888470106156\",\n    \"merchant_entity_id\": \"E_7208933889593688108\",\n    \"industry_code\": 10000,\n    \"merchant_industry_role\": 2,\n    \"auth_letters\": [\n        {\n            \"material_type\": 1006,\n            \"material_expiretime\": \"2036-06-06\",\n            \"material_paths\": [\n                \"certification/resource/eb7722dc38afa5c6503053c6d1efa51f\"\n            ]\n        }\n    ],\n    \"desc\": \"你好啊\",\n    \"icon\": \"certification/resource/eb7722dc38afa5c6503053c6d1efa51f\",\n    \"nick\": \"好好好\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/RoleApi/Role/AuthEntityUpdateAuthLetterResponse.json",
    "content": "{\n    \"err\": {\n        \"err_code\": 0,\n        \"err_msg\": \"\"\n    },\n    \"audit_taskid\": \"AppidBind_721021xxx2534894636\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Audience/WebcastAudienceJoinGameRequest.json",
    "content": "{\n    \"room_id\": \"740769665344184xxxx\",\n    \"app_id\": \"tt50f82645cfcxxxxxxx\",\n    \"open_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Audience/WebcastAudienceLeaveGameRequest.json",
    "content": "{\n    \"room_id\": \"740769665344184xxxx\",\n    \"app_id\": \"tt50f82645cfcxxxxxxx\",\n    \"open_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondOrderAckRequest.json",
    "content": "{\n    \"order_id\": \"xxx\",\n    \"open_id\": \"123\",\n    \"diamonds\": 5,\n    \"app_id\": \"ttc41ab2a75b25dbf110\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondOrderAckResponse.json",
    "content": "{\n    \"ack_status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondQueryRequest.json",
    "content": "{\n    \"appid\": \"ttxxx\",\n    \"order_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondQueryResponse.json",
    "content": "{\n    \"order_id\": \"xxx\",\n    \"order_status\": 2,\n    \"open_id\": \"xxx\",\n    \"pay_tag\": \"参与游戏\",\n    \"diamonds\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondReconciliationRequest.json",
    "content": "{\n    \"appid\": \"ttxxx\",\n    \"start_time\": \"2021-12-24 00:00:00\",\n    \"end_time\": \"2021-12-24 00:00:00\",\n    \"limit\": 100,\n    \"offset\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessDiamondReconciliationResponse.json",
    "content": "{\n    \"order_list\": [\n        {\n            \"order_id\": \"xxx\",\n            \"order_status\": 2,\n            \"open_id\": \"xxx\",\n            \"pay_tag\": \"test\",\n            \"create_time\": \"2006-01-02 15:04:05\",\n            \"diamonds\": 10,\n            \"room_id\": \"111\"\n        }\n    ],\n    \"size\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessOrderPrecreateRequest.json",
    "content": "{\n    \"diamonds\": 32,\n    \"out_trade_no\": \"1679021609887617444\",\n    \"pay_tag\": \"1\",\n    \"open_id\": \"123\",\n    \"valid_time\": 300,\n    \"notify_url\": \"https://turn.365skins.com/front/pay/dy/notify\",\n    \"app_id\": \"ttc41ab2a75b25dbf110\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Business/WebcastBusinessOrderPrecreateResponse.json",
    "content": "{\n    \"order_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardDefaultGetResponse.json",
    "content": "{\n    \"audit_opinion\": \"\",\n    \"card_type\": 1,\n    \"status\": 2,\n    \"value\": {\n        \"btn\": {\n            \"btn_type\": 100\n        },\n        \"image_id\": \"123456\",\n        \"title\": {\n            \"main_title\": \"商品A\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardDefaultSetRequest.json",
    "content": "{\n    \"card_type\": 1,\n    \"value\": \"{\\\"image_id\\\":\\\"123456\\\",\\\"title\\\":{\\\"main_title\\\":\\\"商品A\\\"}}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardDefaultSetResponse.json",
    "content": "{\n    \"status\": 2,\n    \"feedback\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardDeleteRequest.json",
    "content": "{\n    \"url\": \"pages/good/detail?good_id=aaabbb\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardDeleteResponse.json",
    "content": "{\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardGetAllCardsForUserResponse.json",
    "content": "{\n    \"card_list\": [\n        {\n            \"card_type\": 1,\n            \"status\": 2,\n            \"value\": {\n                \"btn\": {\n                    \"btn_type\": 100\n                },\n                \"image_id\": \"123456\",\n                \"title\": {\n                    \"main_title\": \"商品A\"\n                }\n            },\n            \"user_id\": 1234567890,\n            \"url\": \"page/index/index\"\n        },\n        {\n            \"card_type\": 1,\n            \"status\": 2,\n            \"value\": {\n                \"btn\": {\n                    \"btn_type\": 100\n                },\n                \"image_id\": \"123456\",\n                \"title\": {\n                    \"main_title\": \"商品A\"\n                }\n            },\n            \"user_id\": 1234567890,\n            \"url\": \"page/index/index\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardGetRequest.json",
    "content": "{\n    \"url\": \"pages/good/detail?good_id=aaabbb\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardGetResponse.json",
    "content": "{\n    \"audit_opinion\": \"\",\n    \"card_type\": 1,\n    \"status\": 2,\n    \"value\": {\n        \"btn\": {\n            \"btn_type\": 100\n        },\n        \"image_id\": \"123456\",\n        \"title\": {\n            \"main_title\": \"商品A\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardSetRequest.json",
    "content": "{\n    \"url\": \"pages/good/detail?good_id=aaabbb\",\n    \"card_type\": 1,\n    \"value\": \"{\\\"image_id\\\":\\\"123456\\\",\\\"title\\\":{\\\"main_title\\\":\\\"商品A\\\"}}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardSetResponse.json",
    "content": "{\n    \"errcode\": -1,\n    \"errmsg\": \"system error\",\n    \"status\": 2,\n    \"feedback\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardUpdateRequest.json",
    "content": "{\n    \"room_id\": \"123321\",\n    \"card_type\": 1,\n    \"value\": \"{\\\"btn\\\":{\\\"price\\\":\\\"100\\\"}}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Card/WebcastCardUpdateResponse.json",
    "content": "{\n    \"status\": 1,\n    \"feedback\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/File/WebcastFileCardImageGetRequest.json",
    "content": "{\n    \"image_ids\": \"[\\\"123456\\\",\\\"654321\\\"]\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/File/WebcastFileCardImageGetResponse.json",
    "content": "{\n    \"images_status\": [\n        {\n            \"image_id\": \"123456\",\n            \"image_status\": 3,\n            \"audit_opinion\": \"\"\n        },\n        {\n            \"image_id\": \"654321\",\n            \"image_status\": 4,\n            \"audit_opinion\": \"fail: high risk social event.\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/File/WebcastFileCardImageUploadResponse.json",
    "content": "{\n    \"errcode\": -1,\n    \"errmsg\": \"system error\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundCoGameUploadUserDataRequest.json",
    "content": "{\n    \"app_id\": \"ttb101c7bc2e30xxxxxx\",\n    \"round_id\": 1,\n    \"round_status\": 1,\n    \"anchor_infos\": [\n        {\n            \"anchor_open_id\": \"xxxx\",\n            \"room_id\": \"741033347597639xxxx\"\n        }\n    ],\n    \"user_list\": [\n        {\n            \"open_id\": \"xxxx\",\n            \"score\": 396\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundCompleteUploadUserResultRequest.json",
    "content": "{\n    \"complete_time\": 1722239345,\n    \"app_id\": \"tt411d37a0dxxxxx\",\n    \"round_id\": 1232,\n    \"anchor_open_id\": \"a84NH6Okrb\",\n    \"room_id\": \"7827382738223\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundSyncStatusRequest.json",
    "content": "{\n    \"round_id\": 23,\n    \"room_id\": \"78273162632\",\n    \"app_id\": \"tt411d37a0dxxxxx\",\n    \"anchor_open_id\": \"UhJKbtCg3N\",\n    \"start_time\": 1722239345,\n    \"end_time\": 1722239345,\n    \"status\": 2,\n    \"group_result_list\": [\n        {\n            \"group_id\": \"test-01\",\n            \"result\": 1\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundUploadRankListRequest.json",
    "content": "{\n    \"app_id\": \"tt411d37a0dxxxxx\",\n    \"round_id\": 12,\n    \"anchor_open_id\": \"a7Co8Q3M2v\",\n    \"room_id\": \"7867864325642\",\n    \"rank_list\": [\n        {\n            \"rank\": 12,\n            \"score\": 212,\n            \"winning_streak_count\": 21312,\n            \"winning_points\": 2132,\n            \"round_result\": 1,\n            \"open_id\": \"B0AIsWiHa7\",\n            \"group_id\": \"red\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundUploadUserGroupInfoRequest.json",
    "content": "{\n    \"open_id\": \"mGYZLfwsH9\",\n    \"group_id\": \"test-111\",\n    \"round_id\": 1213,\n    \"room_id\": \"76886868223\",\n    \"app_id\": \"tt411d37a0xxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConRoundUploadUserResultRequest.json",
    "content": "{\n    \"anchor_open_id\": \"R31PlZy6fL\",\n    \"room_id\": \"1003434343\",\n    \"user_list\": [\n        {\n            \"rank\": 12,\n            \"score\": 322,\n            \"winning_streak_count\": 1232,\n            \"winning_points\": 4223,\n            \"round_result\": 1,\n            \"open_id\": \"i4WwTDWUGP\",\n            \"group_id\": \"test-01\"\n        }\n    ],\n    \"app_id\": \"tt411d37a0dxxxxx\",\n    \"round_id\": 213\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConWorldRankCompleteUploadUserResultRequest.json",
    "content": "{\n    \"app_id\": \"tt411d37a0dxxxxx\",\n    \"world_rank_version\": \"1722239345\",\n    \"is_online_version\": false,\n    \"complete_time\": 1722239345\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConWorldRankSetValidVersionRequest.json",
    "content": "{\n    \"world_rank_version\": \"1722239345\",\n    \"is_online_version\": false,\n    \"app_id\": \"tt411d37a0dxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConWorldRankUploadRankListRequest.json",
    "content": "{\n    \"is_online_version\": false,\n    \"app_id\": \"tt411d37a0dexxxx\",\n    \"world_rank_version\": \"1722239345\",\n    \"rank_list\": [\n        {\n            \"rank\": 12,\n            \"open_id\": \"HdGIJRpFG1\",\n            \"winning_points\": 100,\n            \"score\": 100,\n            \"winning_streak_count\": 2\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/GamingCon/WebcastGamingConWorldRankUploadUserResultRequest.json",
    "content": "{\n    \"user_list\": [\n        {\n            \"score\": 101,\n            \"winning_streak_count\": 1,\n            \"rank\": 2704557422832063234,\n            \"open_id\": \"8P0gagOFad\",\n            \"winning_points\": 12\n        }\n    ],\n    \"is_online_version\": false,\n    \"app_id\": \"tt411d37a0dxxxx\",\n    \"world_rank_version\": \"1722239345\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Gift/WebcastGiftTopGiftRequest.json",
    "content": "{\n    \"room_id\": \"123456\",\n    \"app_id\": \"your_app_id\",\n    \"sec_gift_id_list\": [ \"aa\", \"bb\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Gift/WebcastGiftTopGiftResponse.json",
    "content": "{\n    \"errcode\": 0,\n    \"errmsg\": \"ok\",\n    \"data\": {\n        \"success_top_gift_id_list\": [ \"aa\", \"bb\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LinkMic/WebcastLinkMicQueryRequest.json",
    "content": "{\n    \"app_id\": \"\",\n    \"room_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LinkMic/WebcastLinkMicQueryResponse.json",
    "content": "{\n    \"errcode\": 0,\n    \"errmsg\": \"ok\",\n    \"base_info\": {\n        \"link_id\": \"\",\n        \"total_count\": 0,\n        \"free_count\": 0\n    },\n    \"user_list\": [\n        {\n            \"open_id\": \"\",\n            \"avatar_url\": \"\",\n            \"nick_name\": \"\",\n            \"sec_avatar_url\": \"\",\n            \"sec_nick_name\": \"\",\n            \"link_state\": 1,\n            \"link_position\": 1,\n            \"disable_microphone\": 1,\n            \"microphone_state\": 1,\n            \"disable_camera\": 1,\n            \"camera_state\": 1,\n            \"app_info\": {\n                \"host_app_start_app_available\": true\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LiveData/WebcastLiveDataTaskFailDataGetResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"ok\",\n    \"logid\": \"20220927122238291\",\n    \"data\": {\n        \"page_num\": 1,\n        \"total_count\": 100,\n        \"data_list\": [\n            {\n                \"roomid\": \"12345\",\n                \"msg_type\": \"live_gift\",\n                \"payload\": \"[]\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LiveData/WebcastLiveDataTaskGetResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"ok\",\n    \"logid\": \"20220927122238291\",\n    \"data\": {\n        \"status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LiveData/WebcastLiveDataTaskStartRequest.json",
    "content": "{\n    \"roomid\": \"123456\",\n    \"appid\": \"tt1234567cac\",\n    \"msg_type\": \"live_comment\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LiveData/WebcastLiveDataTaskStartResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"ok\",\n    \"logid\": \"20220927122238291\",\n    \"data\": {\n        \"task_id\": \"763535353\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/LiveData/WebcastLiveDataTaskStopRequest.json",
    "content": "{\n    \"roomid\": \"123456\",\n    \"appid\": \"tt1234567cac\",\n    \"msg_type\": \"live_comment\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/Quiz/WebcastQuizGetResponse.json",
    "content": "{\n    \"data\": {\n        \"list\": [\n            {\n                \"title\": \"题目1\",\n                \"options\": [\n                    \"选项1\",\n                    \"选项2\",\n                    \"选项3\",\n                    \"选项4\"\n                ],\n                \"answer\": 1,\n                \"id\": \"EYDnokrgyVeOeFa\"\n            },\n            {\n                \"title\": \"题目2\",\n                \"options\": [\n                    \"选项1\",\n                    \"选项2\",\n                    \"选项3\",\n                    \"选项4\"\n                ],\n                \"answer\": 4,\n                \"id\": \"TlL6LwvWapkoBMv\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/WebcastMate/WebcastWebcastMateInfoRequest.json",
    "content": "{\n    \"token\": \"pJKr395h6O5x2ykBjgrBIxnuot8nn62djr70EocUFXtiN1s9VpsHHuEPdZYKHVJFzftyIOb8lj9i0lrLnUhQsK55pT8shfX98qGuUBO7PSKoIVRq6tWMRdsjPVw=\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/Webcast/WebcastMate/WebcastWebcastMateInfoResponse.json",
    "content": "{\n    \"data\": {\n        \"info\": {\n            \"room_id\": 7214015683695250235,\n            \"anchor_open_id\": \"_000oJIu6APhomK7KIBGqSYm5XYPxCJB_xxx\",\n            \"avatar_url\": \"https://p11.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-avt-0015_973c31e8055f78a41d3f7de3def9821d.jpeg?from=3067671334\",\n            \"nick_name\": \"xxx\",\n            \"join_game_user_open_id\": \"720575940380000262\",\n            \"join_game_user_role\": 1,\n            \"available_game_scenes\": [ 1 ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsAdPlacement/AppsAdPlacementAddV1Request.json",
    "content": "{\n    \"ad_placement_name\": \"1231111\",\n    \"ad_placement_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsAdPlacement/AppsAdPlacementQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"ad_placement_list\": [\n            {\n                \"ad_placement_name\": \"测试广告位\",\n                \"ad_placement_type\": 1,\n                \"status\": 1,\n                \"ad_placement_id\": \"bqsc0s8pdcnsru9n6x\"\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202402291430081C2C03B70D11918211B2\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsAdPlacement/AppsAdPlacementUpdateV1Request.json",
    "content": "{\n    \"ad_placement_id\": \"19da35eg77hf14fk53\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsAuth/AppsAuthGetRelatedIdV1Request.json",
    "content": "{\n    \"open_id\": \"Cv4PoJXaTPn63rNu\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsAuth/AppsAuthGetRelatedIdV1Response.json",
    "content": "{\n    \"log_id\": \"202405291440576E078D8757B9\",\n    \"data\": {\n        \"allied_id\": \"ZsNCZC1dUR\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Ad/AppsCapacityQueryAdIncomeV3Response.json",
    "content": "{\n    \"err_msg\": \"CrLr4ExZqG\",\n    \"log_id\": \"fraJu7HGN1\",\n    \"data\": {\n        \"income_list\": [\n            {\n                \"date\": \"OGoN4NAuNe\",\n                \"income\": 733277\n            }\n        ]\n    },\n    \"err_no\": 123\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Ad/AppsCapacityQueryAdSettlementListV3Response.json",
    "content": "{\n    \"err_no\": 123,\n    \"err_msg\": \"WrbmT62sE5\",\n    \"log_id\": \"cGIBmv7SMj\",\n    \"data\": {\n        \"settlement_list\": [\n            {\n                \"settlement_serial\": \"1gONnYuPoY\",\n                \"settlement_name\": \"p3ZDlVULhf\",\n                \"settlement_period\": \"lFqUO3pDro\",\n                \"tax_rate\": 0.9478070115,\n                \"settlement_total_amount\": 35578762,\n                \"status\": 4\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityBindAwemeRelationV1Request.json",
    "content": "{\n    \"employee_info\": {\n        \"relation_expire_date\": 6182115480795152177,\n        \"qualification_type\": \"person\",\n        \"qualification_image_list\": [ \"dpNbt49OYK\" ],\n        \"real_name\": \"小平\",\n        \"identity_number\": \"L0UIPirJC6\",\n        \"contract_image\": \"5JnTdW3CbR\"\n    },\n    \"audit_template_info\": {\n        \"QL7rwwSNXh\": {\n            \"id\": 1039495565162895323,\n            \"title\": \"kgPbI4sbLW\",\n            \"template_content\": [\n                {\n                    \"name\": \"tuTda7yMta\",\n                    \"val_type\": 1,\n                    \"val_list\": [ \"jgrKT12ETJ\" ],\n                    \"materiel_id\": \"1bybqEM0z8\"\n                }\n            ]\n        }\n    },\n    \"type\": \"brand\",\n    \"aweme_id\": \"6ZycG4oL6Y\",\n    \"capacity_list\": [ \"video_self_mount\" ],\n    \"co_subject\": false,\n    \"cooperation_info\": {\n        \"company_name\": \"XX\",\n        \"business_license_code\": \"123456789\",\n        \"real_name\": \"小平公司\",\n        \"identity_number\": \"olDBxsnBCj\",\n        \"contract_image\": \"NdZ7QFpcxH\",\n        \"contract_image_list\": [ \"5xSm9WVDVK\" ],\n        \"relation_expire_date\": 4404854813175490268,\n        \"cooperation_type\": \"enterprise\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateInfoV1Request.json",
    "content": "{\n    \"template_id\": [ 5667519697104896555 ],\n    \"aweme_id\": \"JgrAdx3Cyz\",\n    \"type\": \"brand\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateInfoV1Response.json",
    "content": "{\n    \"data\": {\n        \"template_info\": {\n            \"6041162202928716253\": {\n                \"desc\": \"DIDqJjFvGx\",\n                \"template_content\": [\n                    {\n                        \"val_type\": 1,\n                        \"val_example\": [\n                            \"RaTwasYa1b\"\n                        ],\n                        \"val_list\": [\n                            \"uT4WWuuaFd\"\n                        ],\n                        \"reject_reason\": \"izsMDIOhX3\",\n                        \"materiel_id\": \"Q7e3SCjtI9\",\n                        \"name\": \"LYkZEA04ky\",\n                        \"desc\": \"yquRd56nKk\"\n                    }\n                ],\n                \"id\": 6766976192048133000,\n                \"title\": \"OW5u7J20Xi\"\n            }\n        }\n    },\n    \"err_no\": 1245,\n    \"err_msg\": \"k8Pnho1YrC\",\n    \"log_id\": \"y6ibtRcRzi\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateListV1Request.json",
    "content": "{\n    \"type\": \"brand\",\n    \"capacity_list\": [ \"video_self_mount\" ],\n    \"aweme_id\": \"4TOiSvx89p\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityGetAwemeBindTemplateListV1Response.json",
    "content": "{\n    \"err_no\": 1245,\n    \"err_msg\": \"pkWDkzNGHb\",\n    \"log_id\": \"cezjxtoPu0\",\n    \"data\": {\n        \"template_map\": {\n            \"xXfB8KA6J4\": [\n                {\n                    \"title\": \"GcvrIuXWI9\",\n                    \"reason\": \"9jI13sSvkZ\",\n                    \"category_name\": \"sksNoxU9To\",\n                    \"category_id\": \"qNJc1eLCEW\",\n                    \"can_apply\": false,\n                    \"template_id\": 4837835435925716000\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityGetAwemeRelationBindQrcodeV1Response.json",
    "content": "{\n    \"err_no\": 12345,\n    \"err_msg\": \"dYhGdwI02D\",\n    \"log_id\": \"Bxkki1U8qz\",\n    \"data\": {\n        \"qrcode_url\": \"MHmxvlFl0N\",\n        \"qrcode_parse_content\": \"qrP0b4C6uX\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityQueryAwemeRelationListV1Response.json",
    "content": "{\n    \"data\": {\n        \"total_count\": 12123,\n        \"list\": [\n            {\n                \"bind_status\": 1,\n                \"reason\": \"XX\",\n                \"account_type\": 1,\n                \"aweme_id\": 5791922398551857000,\n                \"capacity_list\": [\n                    {\n                        \"status\": 1,\n                        \"fail_reason\": \"2eYo4eva9Q\",\n                        \"capacity_key\": \"2xaMvjuA6E\"\n                    }\n                ],\n                \"user_name\": \"XX\"\n            }\n        ]\n    },\n    \"err_no\": 12345,\n    \"err_msg\": \"28qeUcfsgo\",\n    \"log_id\": \"dI5gONG4WU\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeBind/AppsCapacityUnbindAwemeRelationV1Request.json",
    "content": "{\n    \"type\": \"brand\",\n    \"aweme_id\": \"1467922731088997102\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeKeyword/AppsCapacityAddAwemeVideoKeywordV1Request.json",
    "content": "{\n    \"keyword\": \"xxx\",\n    \"reason\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeKeyword/AppsCapacityDeleteAwemeVideoKeywordV1Request.json",
    "content": "{\n    \"keyword_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/AwemeKeyword/AppsCapacityQueryAwemeVideoKeywordListV1Response.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"data\": {\n        \"total_count\": 1,\n        \"keyword_list\": [\n            {\n                \"keyword_id\": \"xxx\",\n                \"keyword\": \"xxx\",\n                \"status\": 0,\n                \"reject_reason_list\": [ \"xxx\" ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacityCreateAliasV1Request.json",
    "content": "{\n    \"alias_word\": \"我的小程序\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacityDeleteAliasV1Request.json",
    "content": "{\n    \"alias\": \"AB电影票\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacityListAliasV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"week_available_times\": 1,\n        \"week_total_times\": 5,\n        \"alias_list\": [\n            {\n                \"alias\": \"别名\",\n                \"audit_status\": 1,\n                \"audit_reason\": \"\",\n                \"ctime\": 1671615573,\n                \"utime\": 1671615573\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacityModifyAliasV1Request.json",
    "content": "{\n    \"before_alias\": \"AB电影票\",\n    \"after_alias\": \"ABC电影票\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacityQuerySearchTagListV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"month_available_times\": 1,\n        \"month_total_times\": 5,\n        \"search_tag_list\": [\n            {\n                \"search_tag\": \"别名\",\n                \"audit_status\": 1,\n                \"audit_reason\": \"\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/Delivery/AppsCapacitySetSearchTagV1Request.json",
    "content": "{\n    \"add_tag_list\": [ \"AB电影票\" ],\n    \"delete_tag_list\": [ \"电影票\" ],\n    \"modify_tag_list\": [\n        {\n            \"before_tag\": \"AB\",\n            \"search_tag\": \"AB票\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SimpleQrcode/AppsCapacityAddSimpleQrcodeBindV2Request.json",
    "content": "{\n    \"qr_url\": \"https://xxx\",\n    \"load_path\": \"xxx\",\n    \"stage\": \"online\",\n    \"exclusive_qr_url_prefix\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SimpleQrcode/AppsCapacityDeleteSimpleQrcodeBindV2Request.json",
    "content": "{\n    \"qr_url\": \"https://xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SimpleQrcode/AppsCapacityQuerySimpleQrcodeBindListV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"log_id\": \"6HhwWpLQiY\",\n    \"data\": {\n        \"qr_list\": [\n            {\n                \"qr_url\": \"pD3W471lb7\",\n                \"load_path\": \"nSyCaf9Fmy\",\n                \"stage\": \"GYZbBfqR5V\",\n                \"status\": 1,\n                \"exclusive_qr_url_prefix\": 1\n            }\n        ],\n        \"total_count\": 1,\n        \"bind_upper_limit\": 1,\n        \"bind_rest_count\": 1,\n        \"release_upper_limit\": 1,\n        \"release_rest_count\": 1\n    },\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindStatusV2Request.json",
    "content": "{\n    \"qr_url\": \"https://xxx\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SimpleQrcode/AppsCapacityUpdateSimpleQrcodeBindV2Request.json",
    "content": "{\n    \"load_path\": \"xxx\",\n    \"stage\": \"online\",\n    \"exclusive_qr_url_prefix\": 1,\n    \"before_qr_url\": \"https://xxx\",\n    \"qr_url\": \"https://xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SubService/AppsCapacityCreateMicroAppSubServiceV1Request.json",
    "content": "{\n    \"sub_service_name\": \"我的子服务\",\n    \"search_key_word\": [ \"key1\" ],\n    \"start_page_url\": \"http://xxx.com\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCapacity/SubService/AppsCapacityQueryMicroAppSubServiceV1Response.json",
    "content": "{\n    \"data\": {\n        \"has_more\": false,\n        \"ma_sub_service_info_list\": [\n            {\n                \"micro_app_icon\": \"******\",\n                \"micro_app_id\": \"******\",\n                \"search_key_word\": [ \"******\" ],\n                \"start_page_url\": \"******\",\n                \"sub_service_id\": \"******\",\n                \"sub_service_name\": \"******\",\n                \"approval_state\": 0\n            },\n            {\n                \"sub_service_id\": \"*****\",\n                \"sub_service_name\": \"*****\",\n                \"approval_state\": 0,\n                \"micro_app_icon\": \"\",\n                \"micro_app_id\": \"******\",\n                \"search_key_word\": [ \"******\" ],\n                \"start_page_url\": \"*****\"\n            }\n        ],\n        \"total\": 2\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202311231517488305C037A785Dxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCategory/AppsCategoryQueryAppCategoriesV1Response.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"data\": {\n        \"appCategoryAuditInfo\": [\n            {\n                \"category\": \"8,9,12\",\n                \"categoryName\": \"教育-教育-驾校培训\",\n                \"categoryCertIds\": \"8\",\n                \"categoryCert\": [\n                    {\n                        \"id\": \"8\",\n                        \"name\": \"《道路运输经营许可证》且其中须有“驾驶员培训”项目\",\n                        \"pathList\": [ \"xxx\" ]\n                    }\n                ],\n                \"categoryAuditState\": 1,\n                \"reason\": \"\"\n            }\n        ],\n        \"remainingTimes\": 5,\n        \"categoryChangeLimit\": 5,\n        \"categoryLimit\": 5\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCensor/AppsCensorImageV1Request.json",
    "content": "{\n    \"app_id\": \"tt********\",\n    \"image\": \"http://XXXXXX\",\n    \"image_data\": \"XXXXXX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsCensor/AppsCensorImageV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"image censor success\",\n    \"predicts\": [\n        {\n            \"model_name\": \"anniversary_flag\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"bloody\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_boom\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"cartoon_leader\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"fandongtaibiao\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"leader_recognition\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_money\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"plant_ppx\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"porn\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"sensitive_flag\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_sensitive_map\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"sensitive_text\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_social_event\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_terrorist_uniform\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"party_founding_memorial\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"cartoon_porn\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"great_hall\",\n            \"hit\": false\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigAddV1Request.json",
    "content": "{\n    \"scene_function_config\": {\n        \"Afm9fcbkn0\": [ \"aeeeFoWeS7\" ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialFunctionConfigQueryStatusV1Response.json",
    "content": "{\n    \"data\": {\n        \"function_config_status\": {\n            \"FVvwDj1XE7\": 1\n        }\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"BYMWFMcHDX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialUploadV1Request.json",
    "content": "{\n    \"image_material_url\": \"EtUA5xC41u\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDeveloperToolbox/AppsDeveloperToolboxImageMaterialUploadV1Response.json",
    "content": "{\n    \"log_id\": \"W3m4aZEVcX\",\n    \"data\": {\n        \"image_material_id\": \"pZsfLeJAyi\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/InteractTask/AppsDouyinCreateInteractTaskV1Request.json",
    "content": "{\n    \"task_type\": 3,\n    \"app_id\": \"ttabc*******\",\n    \"start_time\": 1690938443,\n    \"end_time\": 1702365299,\n    \"max_count\": 10,\n    \"mount_link\": \"path\",\n    \"interact_rules\": {\n        \"like\": {\n            \"stage_count\": 6,\n            \"target_count\": 1\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/InteractTask/AppsDouyinCreateInteractTaskV1Response.json",
    "content": "{\n    \"data\": {\n        \"task_id\": \"task_7263******7724\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"2023080317282901022512708409145B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/InteractTask/AppsDouyinQueryUserInteractTaskV1Request.json",
    "content": "{\n    \"task_id\": [ \"task_7302***07\" ],\n    \"open_id\": \"yH******7w\",\n    \"app_id\": \"ttabc*****\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/InteractTask/AppsDouyinQueryUserInteractTaskV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20231116111433010225127084047533\",\n    \"data\": {\n        \"task_info_list\": {\n            \"task_7301597285245279020\": {\n                \"task_id\": \"task_7301597285245279020\",\n                \"video_info\": [\n                    {\n                        \"video_status\": 3,\n                        \"completed\": false,\n                        \"video_id\": \"131****087e\",\n                        \"interact_info\": {\n                            \"like\": {\n                                \"completed\": false\n                            },\n                            \"play\": {\n                                \"stage\": 0,\n                                \"completed\": false\n                            }\n                        }\n                    },\n                    {\n                        \"interact_info\": {\n                            \"like\": {\n                                \"completed\": false\n                            },\n                            \"play\": {\n                                \"stage\": 0,\n                                \"completed\": false\n                            }\n                        },\n                        \"video_status\": 1,\n                        \"completed\": false,\n                        \"video_id\": \"1310******20e79\"\n                    }\n                ],\n                \"is_valid\": true,\n                \"success_count\": 0,\n                \"max_count\": 10,\n                \"err_msg\": \"\",\n                \"err_no\": 0\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/Task/AppsDouyinCreateTaskV1Request.json",
    "content": "{\n    \"app_id\": \"tt**********\",\n    \"task_type\": 2,\n    \"rule_type\": 1,\n    \"target_count\": 1,\n    \"start_time\": 1694423074,\n    \"end_time\": 1694623074,\n    \"mount_link\": \"/pages/index\",\n    \"publish_type\": [\n        1\n    ],\n    \"tags\": [\n        \"**\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/Task/AppsDouyinCreateTaskV1Response.json",
    "content": "{\n    \"data\": {\n        \"task_id\": \"task_7263******7724\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"2023080317282901022512708409145B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/Task/AppsDouyinQueryUserTaskV1Request.json",
    "content": "{\n    \"open_id\": \"tV2v******\",\n    \"app_id\": \"tt*******\",\n    \"task_id\": [ \"task_*****\", \"task_******\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsDouyin/Task/AppsDouyinQueryUserTaskV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"202309********************\",\n    \"data\": {\n        \"task_info_list\": {\n            \"task_***********\": {\n                \"target_count\": 0,\n                \"task_id\": \"\",\n                \"video_info\": [],\n                \"completed\": false,\n                \"err_msg\": \"任务id无效\",\n                \"err_no\": 28005074,\n                \"is_valid\": false,\n                \"success_count\": 0\n            },\n            \"task_******************\": {\n                \"is_valid\": true,\n                \"success_count\": 1,\n                \"target_count\": 2,\n                \"task_id\": \"task_******************\",\n                \"video_info\": [\n                    {\n                        \"video_id\": \"131041************\",\n                        \"video_status\": 1\n                    },\n                    {\n                        \"video_id\": \"131041**************\",\n                        \"video_status\": 2\n                    }\n                ],\n                \"completed\": false,\n                \"err_msg\": \"\",\n                \"err_no\": 0\n            }\n        }\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/Bill/AppsBillsV3Request.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"merchant_id\": \"72217310113805786153\",\n    \"bill_type\": \"payment\",\n    \"bill_date\": \"202310\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/Bill/AppsBillsV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"20231127170505E79C3B60F4F43F098168\",\n    \"data\": {\n        \"bill_list\": [\n            \"https://developer.toutiao.com/wsos_v2/wallet_open_bill_v3_file/object/wsos65645946ed864b0a?expire=1701097506&skipCookie=true&timeStamp=1701075906&sign=4993eeeeee3341923574cc9c15cc60f38509b7fe69580f0ddddddd\"\n        ]\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/Bill/AppsFundBillsV3Request.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"merchant_id\": \"72217310113805786153\",\n    \"account_type\": \"ALIPAY\",\n    \"payment_type\": \"ALL\",\n    \"trade_type\": \"SETTLE\",\n    \"bill_date\": \"202310\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/Bill/AppsFundBillsV3Response.json",
    "content": "{\n    \"data\": {\n        \"fund_bill_list\": [\n            \"https://developer.toutiao.com/wsos_v2/wallet_open_bill_v3_file/object/wsos656486e7f7c2cb36?expire=1701108747&skipCookie=true&timeStamp=1701087147&sign=b6b41ee67fa35a1sdfsdfsfsdhhhhb380ac770f3c48ec4asdfas60e5\"\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20231127201227A1F9E573148674091873\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Applyment/AppsECPaySaaSCreateMerchantV3Request.json",
    "content": "{\n    \"app_id\": \"ttappid1231231\",\n    \"thirdparty_id\": \"\",\n    \"sub_merchant_id\": \"ttsubmerchantid1231\",\n    \"type\": 1,\n    \"callback_url\": \"\",\n    \"channels\": [\n        \"hz\",\n        \"alipay\",\n        \"wx\"\n    ],\n    \"merchant_type\": 2,\n    \"merchant_name\": \"测试商户名称\",\n    \"merchant_short_name\": \"测试\",\n    \"province_code\": \"110000\",\n    \"city_code\": \"110100\",\n    \"district_code\": \"110105\",\n    \"registered_addr\": \"京市海淀区xxxx\",\n    \"business_license\": {\n        \"business_license_type\": 3,\n        \"business_license_code\": \"1231123112\",\n        \"business_license_picurl\": [\n            {\n                \"channel\": \"hz\",\n                \"url\": \"asdasda1212.jepg\"\n            },\n            {\n                \"channel\": \"wx\",\n                \"url\": \"tos-cn-i-01omznotxb/asdasda\"\n            },\n            {\n                \"channel\": \"alipay\",\n                \"url\": \"tos-cn-i-01omznotxb/asdaasd\"\n            }\n        ],\n        \"begin_date\": \"20210917\",\n        \"end_date\": \"20510916\"\n    },\n    \"legal_person\": {\n        \"id_type\": 1,\n        \"id_no\": \"123121\",\n        \"name\": \"测试\",\n        \"front_pic_url\": [\n            {\n                \"channel\": \"hz\",\n                \"url\": \"tos-cn-i-01omznotxb/12312\"\n            },\n            {\n                \"channel\": \"wx\",\n                \"url\": \"tos-cn-i-01omznotxb/1231\"\n            },\n            {\n                \"channel\": \"alipay\",\n                \"url\": \"tos-cn-i-01omznotxb/1231\"\n            }\n        ],\n        \"back_pic_url\": [\n            {\n                \"channel\": \"hz\",\n                \"url\": \"tos-cn-i-01omznotxb/1231\"\n            },\n            {\n                \"channel\": \"wx\",\n                \"url\": \"tos-cn-i-01omznotxb/1231\"\n            },\n            {\n                \"channel\": \"alipay\",\n                \"url\": \"tos-cn-i-01omznotxb/1231\"\n            }\n        ],\n        \"begin_date\": \"20220201\",\n        \"exp_date\": \"20400527\",\n        \"address\": \"122344\"\n    },\n    \"merchant_card_info\": {\n        \"account_name\": \"测试accountname\",\n        \"account_no\": \"123211\",\n        \"bank_full_name\": \"测试银行\",\n        \"settle_type\": 2,\n        \"card_type\": \"DC\",\n        \"alipay_settle_type\": 1,\n        \"alipay_account_no\": \"\"\n    },\n    \"merchant_operation_info\": {\n        \"manage_name\": \"测试\",\n        \"manage_mobile\": \"183xxxx1211\",\n        \"manage_person_type\": 1,\n        \"manage_id_no\": \"12312231231\",\n        \"manage_email\": \"ceshi@qq.com\",\n        \"shop_name\": \"测试小店\",\n        \"shop_url\": \"https://microapp.bytedance.com\",\n        \"id_type\": 0,\n        \"id_begin_date\": \"\",\n        \"id_exp_date\": \"\",\n        \"id_front_pic_url\": \"\",\n        \"id_back_pic_url\": \"\",\n        \"business_authorization_letter\": \"\",\n        \"alipay_account_no\": \"123112\"\n    },\n    \"industry_code\": [\n        \"7011\"\n    ],\n    \"out_order_id\": \"123121131\",\n    \"create_name\": \"12312312312312\",\n    \"beneficiary_type\": \"LEGAL\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Applyment/AppsECPaySaaSCreateMerchantV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"成功\",\n    \"log_id\": \"1231231\",\n    \"data\": {\n        \"apply_id\": \"SMA202202212156514\",\n        \"merchant_id\": \"M70372492201318182840\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Applyment/AppsECPaySaaSImageUploadV3Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023092816095296C280CE8A44F0D0CCF9\",\n    \"data\": {\n        \"image_id\": \"img-id-123\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Applyment/AppsECPaySaaSQueryMerchantStatusV3Request.json",
    "content": "{\n    \"thirdparty_id\": \"zslUZppMgC\",\n    \"merchant_id\": \"4tVFz16lsI\",\n    \"sub_merchant_id\": \"XKLHngeUlF\",\n    \"app_id\": \"Ihic7JAS8S\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Applyment/AppsECPaySaaSQueryMerchantStatusV3Response.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"log_id\": \"yRJrlfogxi\",\n    \"data\": {\n        \"merchant_status_info\": {\n            \"5e4y4Y2l5S\": {\n                \"legal_sign_url\": \"AF5SUWDo0s\",\n                \"merchant_id\": \"CPax8PR5dQ\",\n                \"status\": \"QIwYvDgme1\",\n                \"reject_reason\": \"QYzoZQ9LB5\",\n                \"legal_validation_url\": \"0KNesLpxfM\"\n            }\n        },\n        \"new_merchant_status_info\": {\n            \"sZvUWnAayq\": {\n                \"legal_sign_url\": \"Ry2tHgEvsL\",\n                \"merchant_id\": \"FsCIjY7tKc\",\n                \"status\": \"mAwX0ELvbS\",\n                \"reject_reason\": \"P1GAIOU5cT\",\n                \"legal_validation_url\": \"8DbTFSbHiY\"\n            }\n        },\n        \"pay_status_info\": {\n            \"oMAGpUwKP4\": {\n                \"reject_reason\": \"XY8TOQ2YRf\",\n                \"legal_validation_url\": \"cVO0tu6Waz\",\n                \"legal_sign_url\": \"DS36focjPl\",\n                \"merchant_id\": \"aMlPuLJ98M\",\n                \"status\": \"eAAfSzJFWT\"\n            }\n        }\n    },\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAddMerchantV3Request.json",
    "content": "{\n    \"url_type\": 1,\n    \"thirdparty_component_id\": \"941q5CfMu8\",\n    \"prod_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAddMerchantV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"merchant_id\": \"69929319333434329240\",\n        \"url\": \"https://tp-pay.snssdk.com/embed-merchant/status?app_id=xxx&merchant_id=xxx&sign=3JAOS-KXjFwYybEIYXvdC52DBxESU2ru_d0Cb0wzt7beJdqxj9c3Ig903xfJ4te5o3SGoe2Z_ED7lXrcY3SjIJHdCch7vNaSWLYIG_L7tzEDydESvyV2IcK7IOs6tKlPqzZvaTr1McI_OAZKrhorcrHMspQgcyIEVR6aNW0Cn81N82CS6Nd3hM0QV05tBCkVwimaWOuG7_4PaTzaulgyWw&uid=xxx&uid_type=xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAddSubMerchantV3Request.json",
    "content": "{\n    \"prod_id\": 1,\n    \"role\": 1,\n    \"thirdparty_id\": \"rr0YMnVcke\",\n    \"sub_merchant_id\": \"P3e1XPxsJM\",\n    \"url_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAddSubMerchantV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"url\": \"https://pay-merchant.bytedance.com/embed-merchant/v2/status?app_id=800078773621&mainbody_customize=&merchant_id=1200007877&sign=3JAOS-KXjFwYybEIYXvdC53bHjix9O_LDCuTGsIdlYCJ7KiD1wo73tQO6787CTQIO3B8fkrvo-Lhcew3wbBAvgljWC1UreIYyRSqJ5KdYisjAS6_UYK8PK695lBrZ4usaKi1FsCOXv-sB2t-Y8JP1kHpoPXuP1BKH6QhawQYmI8k67kpBWUsPYbpwM0d8XaQDMT7oqKw9pg5LqkmRc_jBA&uid=70832947030972357482&uid_type=1002\",\n        \"merchant_id\": \"70832947030972357482\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAppAddSubMerchantV3Request.json",
    "content": "{\n    \"app_id\": \"m4uvamouDW\",\n    \"sub_merchant_id\": \"1dj0ncXXxR\",\n    \"url_type\": 1,\n    \"role\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSAppAddSubMerchantV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"url\": \"https://pay-merchant.bytedance.com/embed-merchant/v2/status?app_id=800078773621&mainbody_customize=&merchant_id=1200007877&sign=3JAOS-KXjFwYybEIYXvdC53bHjix9O_LDCuTGsIdlYBXrjP7SYh6kGi6LoaTRieLBFhykj2lqfAl2QYfe30HWqPoHFas2SEn6YTS-jEEDVrXaW8N2pp2HKr41zIglNYw5tot2r6BN7zDQhkt2vL7AUewZG0JYOIKMd-tVeY1zvgYuoLpECyPmB3JrMqMru__mlZ24J2l9rp81tLPw97YZQ&uid=71034289144707668623&uid_type=1002\",\n        \"merchant_id\": \"71034289132712668623\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSGetAppMerchantV3Request.json",
    "content": "{\n    \"url_type\": 1,\n    \"thirdparty_id\": \"dt1QckYTtb\",\n    \"app_id\": \"XQWvu6fOrk\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Links/AppsECPaySaaSGetAppMerchantV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"url\": \"https://pay-merchant.bytedance.com/embed-merchant/v2/status?app_id=800078773621&mainbody_customize=&merchant_id=1200007877&sign=3JAOS-KXjFwYybEIYXvdC53bHjix9O_LDCuTGsIdlYCy14dLnbr5v62J6R6RY1UZv7V64HlvvcWOtzZ2vBLArS0x9yeo32gX9YF7ii5Bn6NEpbFJCgUbUTTROiX3CGJBDKlm7fvUtASxdUkNGbTMuOj642WC2xpRFKQ_BP5suXxdYtAGb3j51CWZTiTdKGGciZ8Li48b-y47FuenDdYGdQ&uid=69824283230789983130&uid_type=1002\",\n        \"merchant_id\": \"69824283230789983130\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawV3Request.json",
    "content": "{\n    \"channel_type\": \"BsCy9xp511\",\n    \"merchant_entity\": 1,\n    \"merchant_uid\": \"mNVpUXNihx\",\n    \"withdraw_amount\": 1,\n    \"thirdparty_id\": \"dO1rCFspDw\",\n    \"callback\": \"QrsNsb2YSx\",\n    \"out_order_id\": \"g5uWZmmK74\",\n    \"cp_extra\": \"ilPQJKzwXO\",\n    \"app_id\": \"hKDFaqyu8v\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"order_id\": \"N7078192267961368620\",\n        \"merchant_entity\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceV3Request.json",
    "content": "{\n    \"app_id\": \"3VzstqT0ga\",\n    \"thirdparty_id\": \"hgZNa5N2DU\",\n    \"merchant_uid\": \"PnO3rRMe7i\",\n    \"channel_type\": \"msINa2xaQQ\",\n    \"merchant_entity\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"account_info\": {\n            \"online_balance\": 20,\n            \"withdrawable_balacne\": 100000,\n            \"freeze_balance\": 200000\n        },\n        \"settle_info\": {\n            \"settle_type\": 2,\n            \"settle_account\": \"bytedance@163.com\",\n            \"bankcard_no\": \"\",\n            \"bank_name\": \"\"\n        },\n        \"merchant_entity\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderV3Request.json",
    "content": "{\n    \"app_id\": \"muZ1VMqAPI\",\n    \"thirdparty_id\": \"xm7y4FwfC9\",\n    \"merchant_uid\": \"q9tDlgJ5RE\",\n    \"out_order_id\": \"UVzIT2f6hN\",\n    \"channel_type\": \"Ex3gDC2rGD\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderV3Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202310061616226C30B180133AE61392D7\",\n    \"data\": {\n        \"status\": \"SUCCESS\",\n        \"status_msg\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemBCGetBaseV1Response.json",
    "content": "{\n    \"data\": {\n        \"result\": {\n            \"total_like\": 200,\n            \"total_comment\": 200,\n            \"total_share\": 200,\n            \"avg_play_duration\": 200,\n            \"total_play\": 200\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemBCGetCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"comment\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemBCGetLikeV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"like\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemBCGetPlayV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"play\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemBCGetShareV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"share\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemGetBaseV1Response.json",
    "content": "{\n    \"data\": {\n        \"result\": {\n            \"total_like\": 200,\n            \"total_comment\": 200,\n            \"total_share\": 200,\n            \"avg_play_duration\": 200,\n            \"total_play\": 200\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemGetCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"comment\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemGetLikeV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"like\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemGetPlayV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"play\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/AppsItemGetShareV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"share\": 200\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemBCListCommentReplyV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1,\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"create_time\": 1607399832,\n                \"digg_count\": 647,\n                \"reply_comment_total\": 12,\n                \"top\": true,\n                \"comment_id\": \"\",\n                \"comment_user_id\": \"\",\n                \"content\": \"回复内容\",\n                \"avatar\": \"https://uuue/ehdne\",\n                \"nick_name\": \"xiaoming\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemBCListCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1,\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"top\": false,\n                \"comment_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791G3uO/mLOZ10oQOjJ1EUafn460zdRmYqig357zEBidswyrkjAGx3+uVUd0cE4Q==\",\n                \"comment_user_id\": \"43eae150-12eb-4035-8d40-3f9a2bfcdf4e\",\n                \"content\": \"评论\",\n                \"create_time\": 1673507751,\n                \"digg_count\": 0,\n                \"reply_comment_total\": 0,\n                \"avatar\": \"https://uuue/ehdne\",\n                \"nick_name\": \"xiaoming\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemBCReplyCommentV1Request.json",
    "content": "{\n    \"content\": \"回复内容\",\n    \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n    \"comment_id\": \"@kj5k4hai123d22nGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemBCReplyCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"comment_id\": \"@kj5k4hai123d22nGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemBCTopCommentV1Request.json",
    "content": "{\n    \"item_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791GzhPfGHO5F2qQuuL1EUZvX560zdRmYqig357zEBZyxgSWZE1UdFqva5Pf296w==\",\n    \"comment_id\": \"@9VwW0qOBUN9mJyD3bNxvGc7912bvP/mEMpJwqwykKlEaZvn860zdRmYqig357zEB6/24MEvXsIUhf+t3F/Gw6w==\",\n    \"top\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemListCommentReplyV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1,\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"create_time\": 1607399832,\n                \"digg_count\": 647,\n                \"reply_comment_total\": 12,\n                \"top\": true,\n                \"comment_id\": \"\",\n                \"comment_user_id\": \"\",\n                \"content\": \"回复内容\",\n                \"avatar\": \"https://uuue/ehdne\",\n                \"nick_name\": \"xiaoming\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemListCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1,\n        \"has_more\": true,\n        \"list\": [\n            {\n                \"top\": false,\n                \"comment_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791G3uO/mLOZ10oQOjJ1EUafn460zdRmYqig357zEBidswyrkjAGx3+uVUd0cE4Q==\",\n                \"comment_user_id\": \"43eae150-12eb-4035-8d40-3f9a2bfcdf4e\",\n                \"content\": \"评论\",\n                \"create_time\": 1673507751,\n                \"digg_count\": 0,\n                \"reply_comment_total\": 0,\n                \"avatar\": \"https://uuue/ehdne\",\n                \"nick_name\": \"xiaoming\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemReplyCommentV1Request.json",
    "content": "{\n    \"content\": \"回复内容\",\n    \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n    \"comment_id\": \"@kj5k4hai123d22nGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemReplyCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"comment_id\": \"@kj5k4hai123d22nGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsItem/Comment/AppsItemTopCommentV1Request.json",
    "content": "{\n    \"item_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791GzhPfGHO5F2qQuuL1EUZvX560zdRmYqig357zEBZyxgSWZE1UdFqva5Pf296w==\",\n    \"comment_id\": \"@9VwW0qOBUN9mJyD3bNxvGc7912bvP/mEMpJwqwykKlEaZvn860zdRmYqig357zEB6/24MEvXsIUhf+t3F/Gw6w==\",\n    \"top\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsLiveBooking/AppsLiveBookingVideoCancelV2Request.json",
    "content": "{\n    \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsLiveBooking/AppsLiveBookingVideoCancelV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"202302021130337823E340A96C770112CB\",\n    \"success\": true,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsLiveBooking/AppsLiveBookingVideoCreateV2Request.json",
    "content": "{\n    \"live_time\": 1675389600,\n    \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsLiveBooking/AppsLiveBookingVideoCreateV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023020211183622D28B346CA602F3C0\",\n    \"success\": true,\n    \"booking_id\": \"@9VwW0qOBUN9mJyD3bNxvGc7222ztOvGFOZdwqQyiLFcWb/D760zdRmYqig357zEBaywsqY4Hoz2gDcspIGq0zg==\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsPlayletBusiness/AppsPlayletBusinessUploadV1Request.json",
    "content": "{\n    \"event_type\": \"premium_member\",\n    \"context\": {\n        \"device\": {\n            \"open_id\": \"_000lGk5fU_oab8xxxxxxxxxx\"\n        },\n        \"ad\": {\n            \"callback\": \"xxxxxxx\"\n        }\n    },\n    \"timestamp\": 1712807795,\n    \"properties\": \"{\\\"benefit_type\\\": 2,\\\"benefit_start_time\\\": 1701360000,\\\"benefit_duration\\\": 365,\\\"playlet_name\\\": \\\"短剧名称\\\",\\\"album_id\\\": \\\"开放平台内容库-短剧ID\\\",\\\"order_id\\\": \\\"motbxxxxx\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsPlayletBusiness/AppsPlayletBusinessUploadV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"2024022914353559F7FFC158707B0049FD\",\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsPrivacySetting/AppsPrivacySettingAddV1Request.json",
    "content": "{\n    \"is_privacy_config\": true,\n    \"privacy_item_list\": [\n        {\n            \"id\": 1,\n            \"apply_desc\": \"对应的用户昵称和头像\"\n        },\n        {\n            \"id\": 2,\n            \"apply_desc\": \"xxxxxxxxx\"\n        }\n    ],\n    \"contact_way\": 1,\n    \"email\": \"123456@qq.com\",\n    \"phone\": \"\",\n    \"land_line\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsPrivacySetting/AppsPrivacySettingQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"is_configure\": true\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02171505448689100000000000000000000ffff0ac4151741d204\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsQrcode/AppsQrcodeCreateV1Request.json",
    "content": "{\n    \"app_name\": \"douyin\",\n    \"appid\": \"tt**********\",\n    \"path\": \"{}\",\n    \"width\": 1000,\n    \"line_color\": {\n        \"r\": 0,\n        \"g\": 0,\n        \"b\": 0\n    },\n    \"background\": {\n        \"r\": 0,\n        \"g\": 0,\n        \"b\": 0\n    },\n    \"set_icon\": false\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsQrcode/AppsQrcodeCreateV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"img\": \"#######\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsSearch/AppsSearchDeleteIndexV1Request.json",
    "content": "{\n    \"app_id\": \"tt5daf2b12c285xxxx\",\n    \"name\": \"index\",\n    \"path_list\": [\n        \"pages/index/1?t=1\",\n        \"pages/index/2?t=2\",\n        \"pages/index/3?t=3\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsSearch/AppsSearchUploadSitemapV1Request.json",
    "content": "{\n    \"app_id\": \"tt5daf2b12c285xxxx\",\n    \"page_paths\": [\n        \"pages/index/1?t=1\",\n        \"pages/index/2?t=2\",\n        \"pages/index/3?t=3\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsShare/Task/AppsShareCreateTaskV1Request.json",
    "content": "{\n    \"task_type\": 1,\n    \"target_count\": 10,\n    \"start_time\": 1691377225,\n    \"end_time\": 1693357643\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsShare/Task/AppsShareCreateTaskV1Response.json",
    "content": "{\n    \"data\": {\n        \"task_id\": \"task_7263******7724\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"2023080317282901022512708409145B\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsShare/Task/AppsShareQueryUserTaskV1Request.json",
    "content": "{\n    \"task_id\": \"task_*****\",\n    \"open_id\": \"ERl******R\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsShare/Task/AppsShareQueryUserTaskV1Response.json",
    "content": "{\n    \"log_id\": \"20230807171057010225127083950712\",\n    \"data\": {\n        \"success_count\": 0,\n        \"target_count\": 0,\n        \"task_id\": \"task_7263****2700\",\n        \"completed\": false,\n        \"is_valid\": true\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskCreateLiveV2Request.json",
    "content": "{\n    \"task_name\": \"xxx\",\n    \"conditions\": [\n        \"live_digg\"\n    ],\n    \"condition_value\": [\n        1\n    ],\n    \"start_time\": 1704981661,\n    \"end_time\": 1705327261,\n    \"aweme_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskCreateLiveV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20240112144846711CC4D3A7098802AA67\",\n    \"data\": {\n        \"task_id\": \"@4F9R0vKUDsthbXTzOI1qGaD6umHtss6APKJGnj2RGGb8dKaEfZq7N/GDiSn/7SCD\",\n        \"task_status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskCreateVideoV2Request.json",
    "content": "{\n    \"task_name\": \"xxx\",\n    \"conditions\": [\n        \"collection\"\n    ],\n    \"start_time\": 1704981661,\n    \"end_time\": 1705327261,\n    \"video_url\": \"https://v.douyin.com/iLjUaXxxU/\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskCreateVideoV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20240112175946DECCEB9239F1D308ABEC\",\n    \"data\": {\n        \"task_id\": \"@4F9R0vKUDsthbXTzOI1qGaD6umHxxxvyEPKJGnj2RGGYPw4jaKgpY/EwtBRgbLdFB\",\n        \"task_status\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskWriteoffLiveV2Request.json",
    "content": "{\n    \"task_id\": \"@4F9R0vKUDsthbXTzOI1qGaD6umbhPfCHOqJGnj2RGGZOW2bNPosZist7V6lnmMUd\",\n    \"open_id\": \"grgwsR2Xp-wsvK72\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTask/AppsTaskWriteoffVideoV2Request.json",
    "content": "{\n    \"task_id\": \"@4F9R0vKUDsthbXTzOI1qGaD6umbhPfCHOqJGnj2RGGZOW2bNPosZist7V6lnmMUd\",\n    \"open_id\": \"grgwsR2Xp-wsvK72\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrade/AppsTradeToolkitButtonWhiteSettingV2Request.json",
    "content": "{\n    \"button_type\": 1,\n    \"uid_list\": [ 123, 4666 ],\n    \"open_all\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrade/AppsTradeToolkitQueryTextV2Request.json",
    "content": "{\n    \"text_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrade/AppsTradeToolkitQueryTextV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20230828141549451692B53DC7C65C0359\",\n    \"data\": {\n        \"text_list\": [\n            {\n                \"text_content_list\": [\n                    {\n                        \"text_content\": \"小程序提前用，到店享服务\",\n                        \"text_id\": \"te72485374xxxxxxx\"\n                    },\n                    {\n                        \"text_content\": \"提前线上选座，到店直接观影\",\n                        \"text_id\": \"te72485374362617xxxx\"\n                    },\n                    {\n                        \"text_content\": \"立即点单，配送到家\",\n                        \"text_id\": \"te724853743626xxxxx\"\n                    }\n                ],\n                \"text_type\": 1\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrade/AppsTradeToolkitUpdateMerchantConfigV2Request.json",
    "content": "{\n    \"bind_biz_type\": 0,\n    \"account_id\": \"7241527302029314092\",\n    \"delivery_app_info\": {\n        \"guidance_text_id\": \"te7249570906215858220\",\n        \"button_text_id\": \"te7249570906215956524\",\n        \"display_mode\": 1\n    },\n    \"product_double_open_info\": {\n        \"guidance_text_id\": \"te7248537436261777452\",\n        \"arrival_store_button_text_id\": \"te7248537436261842988\",\n        \"arrival_home_button_text_id\": \"te7270026298611761196\",\n        \"display_mode\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrade/AppsTradeToolkitUpdateMerchantPathV2Request.json",
    "content": "{\n    \"bind_biz_type\": 0,\n    \"account_id\": \"7241527302029314092\",\n    \"path_data_list\": [\n        {\n            \"path\": \"page/index/index/page/index/index\",\n            \"path_type\": 3\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrafficPermission/AppsTrafficPermissionOpenV1Request.json",
    "content": "{\n    \"tax_nature\": 1,\n    \"bank_account_number\": \"xxxxxxxxx\",\n    \"bank_name\": \"xxx\",\n    \"bank_branch\": \"xxx\",\n    \"phone_number\": \"xxx\",\n    \"province\": \"广东\",\n    \"city\": \"深圳\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsTrafficPermission/AppsTrafficPermissionQueryV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"20240229143002DCA7B2D1C6853E7ADD1A\",\n    \"data\": {\n        \"can_open\": 1,\n        \"status\": 1\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkGenerateV1Request.json",
    "content": "{\n    \"app_id\": \"tt********\",\n    \"app_name\": \"douyin\",\n    \"path\": \"xxxx\",\n    \"query\": \"{xxx:xxxx}\",\n    \"expire_time\": 1644464021\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkGenerateV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"url_link\": \"https://z.douyin.com/Lu86lrX\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkQueryInfoV1Request.json",
    "content": "{\n    \"app_id\": \"tt***********\",\n    \"url_link\": \"https://z.douyin.com/Lu86lrX\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkQueryInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"app_name\": \"douyin\",\n        \"app_id\": \"tt6f31198cf00b5xxx\",\n        \"path\": \"xxxx\",\n        \"query\": \"xxxx\",\n        \"create_time\": 1644463984,\n        \"expire_time\": 1644464021\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkQueryQuotaV1Request.json",
    "content": "{\n    \"app_id\": \"tt******\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlLink/AppsUrlLinkQueryQuotaV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"url_link_used\": 1128,\n        \"url_link_limit\": 1000000\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlGenerateSchemaV1Request.json",
    "content": "{\n    \"app_id\": \"tt5da*****\",\n    \"query\": \"{\\\"key1\\\":\\\"val1\\\",\\\"key2\\\":\\\"val2\\\"}\",\n    \"path\": \"test_miniapp\",\n    \"no_expire\": false,\n    \"expire_time\": 1685090014\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlGenerateSchemaV1Response.json",
    "content": "{\n    \"data\": {\n        \"schema\": \"sslocal://miniapp?ticket=v1_*****\"\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20230828105040791DAA4F7CABB43F2E0D\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlQuerySchemaQuotaV1Request.json",
    "content": "{\n    \"app_id\": \"tt********\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlQuerySchemaQuotaV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"20230828114955870A641D59241500963C\",\n    \"data\": {\n        \"long_term_schema_quota\": {\n            \"schema_used\": 6,\n            \"schema_limit\": 0\n        },\n        \"short_term_schema_quota\": {\n            \"schema_limit\": 0,\n            \"schema_used\": 0\n        }\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlQuerySchemaV1Request.json",
    "content": "{\n    \"schema\": \"sslocal://miniapp?ticket=v1_*****\",\n    \"app_id\": \"tt*****\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUrlSchema/AppsUrlQuerySchemaV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt******\",\n        \"path\": \"page/index\",\n        \"query\": \"{}\",\n        \"create_time\": 1682075227,\n        \"expire_time\": 0\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023********7AB1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_comment\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetFansV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_fans\": \"200\",\n                \"total_fans\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetItemV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_issue\": \"200\",\n                \"new_play\": \"200\",\n                \"total_issue\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetLikeV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_like\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetProfileV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"profile_uv\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserBCGetShareV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_share\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetCommentV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_comment\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetFansV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_fans\": \"200\",\n                \"total_fans\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetItemV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_issue\": \"200\",\n                \"new_play\": \"200\",\n                \"total_issue\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetLikeV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_like\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetProfileV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"profile_uv\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsUser/AppsUserGetShareV1Response.json",
    "content": "{\n    \"data\": {\n        \"result_list\": [\n            {\n                \"date\": \"yyyy-MM-dd\",\n                \"new_share\": \"200\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsConvertOpenItemIdToEncryptIdV1Request.json",
    "content": "{\n    \"video_ids\": [\n        \"xxxxxxx\"\n    ],\n    \"access_key\": \"ttxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsConvertOpenItemIdToEncryptIdV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"convert_result\": {\n            \"video1\": \"result1\",\n            \"video2\": \"result2\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsConvertVideoIdToOpenItemIdV1Request.json",
    "content": "{\n    \"video_ids\": [\n        \"xxxxxxx\"\n    ],\n    \"app_id\": \"ttxxxxx\",\n    \"access_key\": \"ttxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsConvertVideoIdToOpenItemIdV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"convert_result\": {\n            \"video1\": \"result1\",\n            \"video2\": \"result2\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsVideoBCQueryV1Request.json",
    "content": "{\n    \"item_ids\": [\n        \"@4F9W0/CQCZFnaXXwZow5E6Ku1WSGOvuDPJxyqAKiL1MVavn513fjeWIujgn96zUF4+bMA*****\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsVideoBCQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"list\": [\n            {\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"create_time\": 1571075129,\n                \"video_status\": 5,\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"is_top\": false,\n                \"statistics\": {\n                    \"digg_count\": 200,\n                    \"download_count\": 10,\n                    \"play_count\": 300,\n                    \"share_count\": 10,\n                    \"forward_count\": 10,\n                    \"comment_count\": 100\n                },\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"is_reviewed\": true,\n                \"media_type\": 2\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsVideoQueryV1Request.json",
    "content": "{\n    \"item_ids\": [\n        \"@4F9W0/CQCZFnaXXwZow5E6Ku1WSGOvuDPJxyqAKiL1MVavn513fjeWIujgn96zUF4+bMA*****\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/AppsVideo/AppsVideoQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"list\": [\n            {\n                \"title\": \"测试视频 #测试话题 @抖音小助手\",\n                \"create_time\": 1571075129,\n                \"video_status\": 5,\n                \"share_url\": \"https://www.iesdouyin.com/share/video/QDlWd0EzdWVMU2Q0aU5tKzVaOElvVU03ODBtRHFQUCtLUHBSMHFRT21MVkFYYi9UMDYwemRSbVlxaWczNTd6RUJRc3MrM2hvRGlqK2EwNnhBc1lGUkpRPT0=/?region=CN&mid=6753173704399670023&u_code=12h9je425&titleType=title\",\n                \"cover\": \"https://p3-dy.byteimg.com/img/tos-cn-p-0015/cfa0d6421bdc4580876cb16974539ff6~c5_300x400.jpeg\",\n                \"is_top\": false,\n                \"statistics\": {\n                    \"digg_count\": 200,\n                    \"download_count\": 10,\n                    \"play_count\": 300,\n                    \"share_count\": 10,\n                    \"forward_count\": 10,\n                    \"comment_count\": 100\n                },\n                \"item_id\": \"@8hxdhauTCMppanGnM4ltGM780mDqPP+KPpR0qQOmLVAXb/T060zdRmYqig357zEBq6CZRp4NVe6qLIJW/V/x1w==\",\n                \"is_reviewed\": true,\n                \"media_type\": 2\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/ECommerce/ECommerceConfigLimitOperatePointV1Request.json",
    "content": "{\n    \"op_type\": 1,\n    \"single_add_limit\": 1000,\n    \"single_deduct_limit\": 500,\n    \"daily_add_count\": 100,\n    \"daily_deduct_count\": 10,\n    \"app_id\": \"tt5daf2b12cxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/ECommerce/ECommerceConfigRegisterMicroAppV1Request.json",
    "content": "{\n    \"extra\": \"GoP6udrOZF\",\n    \"app_id\": \"ttcfebb96250e12350\",\n    \"ecom_microapp_type\": 1,\n    \"callback_url\": \"https://www.your_domain.com/callback\",\n    \"preview_photo_url\": \"https://www.your_domain/image/preview.jpg\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/ECommerce/ECommerceCustomizationQueryStatusV1Request.json",
    "content": "{\n    \"open_id\": \"swmxmlAgxp\",\n    \"order_id\": \"BibkapfAI1\",\n    \"app_id\": \"aSxHCgA3Xb\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/ECommerce/ECommerceCustomizationQueryStatusV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"20230703102152510445xxxxxxxxxxxxxxxxx\",\n    \"data\": {\n        \"success_code\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Gift/GiftReceiveRewardRequest.json",
    "content": "{\n    \"uuid\": \"a017cd52-ca34-4a21-bab1-0844160d06e5\",\n    \"open_id\": \"ba253642-0590-40bc-40ca\",\n    \"gift_code\": \"mg1722924937_11229022\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Gift/GiftReceiveRewardResponse.json",
    "content": "{\n    \"gift_info\": {\n        \"play_type\": 1,\n        \"user_receive_guide\": [\n            \"玩小游戏10秒后获得白金礼包\"\n        ],\n        \"name\": \"白金强化碎片包\",\n        \"icon_url\": \"https://img.byte25cdn.org/image/198082103523233\",\n        \"gift_effective_start_time\": 1722873600,\n        \"gift_effective_end_time\": 1723737600,\n        \"gift_id\": \"222622358400\",\n        \"prop_list\": [\n            {\n                \"prop_id\": \"10111\",\n                \"name\": \"白金强化碎片\",\n                \"icon\": \"https://img.byte25cdn.org/image/1980821035232290\",\n                \"count\": 10\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/LiveBooking/LiveBookingTextCloseResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202302031653358743316EFB83F20A2EFF\",\n    \"success\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/LiveBooking/LiveBookingTextCreateRequest.json",
    "content": "{\n    \"text_type\": 1,\n    \"live_time\": 2300,\n    \"live_date\": 20230207,\n    \"content\": \"我开播了！\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/LiveBooking/LiveBookingTextCreateResponse.json",
    "content": "{\n    \"booking_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791GzsOPyKPpBzrguhLVgRaPH960zdRmYqig357zEB9uFLHcuBtEoO/E4e0aeFaw==\",\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202302031653083AB8B21E8B21A00A1709\",\n    \"success\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/LiveBooking/LiveBookingTextDetailResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"has_booking\": true,\n    \"log_id\": \"20230203165308973A2089C91ADF0FA8A2\",\n    \"text_booking\": {\n        \"content\": \"开播啦，快来看我直播吧！\",\n        \"create_time\": 1675414388,\n        \"live_date\": 0,\n        \"live_time\": 2300,\n        \"live_weekdays\": [\n            0,\n            1,\n            2,\n            3,\n            4,\n            5\n        ],\n        \"update_time\": 1675414388,\n        \"anchor_id\": 1234567890,\n        \"booking_id\": \"@9VwW0qOBUN9mJyD3bNxvGc791GzsOPyKPpBzrguhLVgRaPH960zdRmYqig357zEB9uFLHcuBtEoO/E4e0aeFaw==\"\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/LiveBooking/LiveBookingVideoListResponse.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202302021133341E87A25AECA9CD010AFE\",\n    \"data\": {\n        \"list\": [\n            {\n                \"live_time\": 1675558800,\n                \"video_id\": \"@9VwW0qOBUN9mJyD3bNxv222PvCAOZF1oA+jJlcVafb660zdRmYqig357zEBoP/2eHYOuMy2cwI03CiA5g==\",\n                \"anchor_id\": 1234567890,\n                \"booking_id\": \"@9VwW0qOBUN9mJyD3b222791GztOvGFOZdwqQyiLFUbafL/60zdRmYqig357zEB13vjXinzjt7bzw9KEZPK0A==\"\n            },\n            {\n                \"anchor_id\": 1234567890,\n                \"booking_id\": \"@9VwW0qOBUN9mJyD3bN2221GzsPvCBOJxyqQukK1QXavT160zdRmYqig357zEBmxxxX7Vwxya6hMcJsZwB7w==\",\n                \"live_time\": 1675566000,\n                \"video_id\": \"@9VwW0qOBUN9mJyD33vCFOJB0oQ6nLVQRaPf560zdRmYqig357zEBGZVatEKryCbIyd/dNBPkMw==\"\n            }\n        ],\n        \"total\": 2\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxAddRoomTaskV2Request.json",
    "content": "{\n    \"task_name\": \"测试的任务名称\",\n    \"task_settle_type\": 9,\n    \"start_page\": \"page/detail/detail?id=123\",\n    \"task_icon\": \"https://p3-developer-sign.bytemaimg.com/tos-cn-i-ke512zj2cu/01cefe0ce3c3479d845dcb861ca018b1~tplv-ke512zj2cu-jpg.jpeg?x-expires=1718424829&x-signature=7vw6D8rEUIDZXHAd4veMedSjlLo%3D\",\n    \"room_title\": \"测试的直播间标题\",\n    \"task_end_time\": 1709782399,\n    \"task_desc\": \"任务描述: 東門之池，可以漚麻。彼美淑姬，可與晤歌。東門之池，可以漚紵。彼美淑姬，可與晤語。\",\n    \"form_tag\": \"娱乐测试\",\n    \"content_tag\": \"漫画\",\n    \"refer_videos\": [\n        \"https://v.douyin.com/SHAfHPu/\",\n        \"https://v.douyin.com/SHASjbd/\"\n    ],\n    \"refer_ma_captures\": [\n        \"https://p3-developer-sign.bytemaimg.com/tos-cn-i-ke512zj2cu/1bcfc89de30f4b0fb2000d69f6d36d08~tplv-ke512zj2cu-jpg.jpeg?x-expires=1718424958&x-signature=KA4V5kcK%2FnLtjz5HtfhNz06uce4%3D\",\n        \"https://p6-developer-sign.bytemaimg.com/tos-cn-i-ke512zj2cu/e840d9158f784733a9f0f27bd60ad433~tplv-ke512zj2cu-jpg.jpeg?x-expires=1718425011&x-signature=zltShSxIkbLay7dlA1oR4KwoyPM%3D\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxAddRoomTaskV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"SUCCESS\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_id\": 720992698146361,\n        \"task_url\": \"https://m.zjbyte.net/share/douyin/?token=e32199427d4ebe5b*****3b9a86784ab&share_channel=scan\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxAddTaskV2Request.json",
    "content": "{\n    \"task_name\": \"测试12333\",\n    \"access_token\": \"xxxx\",\n    \"task_settle_type\": 1,\n    \"appid\": \"tt933ee5830c062fa6\",\n    \"start_page\": \"page/index=1\",\n    \"anchor_title\": \"测试锚点标题\",\n    \"task_icon\": \"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.soutu123.cn%2Felement_origin_min_pic%2F01%2F35%2F26%2F55573bdad4cb2f4.jpg%21%2Ffw%2F700%2Fquality%2F90%2Funsharp%2Ftrue%2Fcompress%2Ftrue&refer=http%3A%2F%2Fpic.soutu123.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621156196&t=848be9cae3f5bfb86a12d5021cbf9c1f\",\n    \"task_start_time\": 1618285226,\n    \"task_end_time\": 1620963626,\n    \"task_desc\": \"1. sss <br>2.sss2\",\n    \"refer_videos\": [ \"http://douyin.com/Z0JRdbe/\", \"http://douyin.com/beeagag/\" ],\n    \"task_tags\": [ \"测试类\", \"心理\" ],\n    \"refer_ma_captures\": [ \"https://static.runoob.com/images/demo/demo1.jpg\", \"https://static.runoob.com/images/demo/demo2.jpg\" ],\n    \"douyin_ids\": [ \"lw123456\", \"lv789\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxAddTaskV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_id\": 720992698146361\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryAppTaskIdV2Request.json",
    "content": "{\n    \"create_start_time\": 1657728000,\n    \"create_end_time\": 1658073600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryAppTaskIdV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_ids\": [\n            1130941336206704600,\n            1130954062622638100,\n            1130965975075143700\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryBillLinkV2Request.json",
    "content": "{\n    \"bill_date\": \"2023-11-11\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryBillLinkV2Response.json",
    "content": "{\n    \"data\": {\n        \"bill_link\": \"https://p9-taskbox-sign.byteimg.com/tos-cn-i-ma097vhtnq/fd3fdb160c7a4593a4aee47267c78.csv?x-expires=1701064092&x-signature=c1BKmfVnvByJFTHGqWGWPXz00XE%3D\"\n    },\n    \"err_no\": 12345,\n    \"err_msg\": \"aZv2LzZdM8\",\n    \"log_id\": \"yZj5AgQF2E\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryTaskInfoV2Request.json",
    "content": "{\n    \"query_params_type\": 1,\n    \"query_params_content\": \"3421314523543241\",\n    \"page_num\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryTaskInfoV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"page_count\": 1,\n        \"total\": 1,\n        \"app_id\": \"ttf31985a46c214faf\",\n        \"tasks\": [\n            {\n                \"anchor_title\": \"一个测试任务\",\n                \"appid\": \"ttcfdbb96650e33350\",\n                \"payment_allocate_ratio\": 7000,\n                \"platform_address_app\": \"subPackage/pages/taskDetail/index?taskId=7159000769277214764&enter_from=7\",\n                \"platform_address_web\": \"http://boe.m.zjbyte.net/share/douyin/?token=bd9ce2083d6aed332dcd9f9721b91ec4&share_channel=scan\",\n                \"refer_ma_captures\": [\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/368d6285a0514fd3a230c2bd0873f2d3~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=F8XZRENkmZOanX5JZt9LoiaQiws%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/f83566dd4b924791bd0364af588cad76~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=2NBX9lYCvAyq681nR%2FGUlZudvZU%3D\"\n                ],\n                \"refer_video_captures\": [\n                    \"\"\n                ],\n                \"reject_reason\": \"落地页发生变更\",\n                \"start_page\": \"page/detail/detail?id=1\",\n                \"status\": 5,\n                \"task_desc\": \"一个测试任务aaa一个测试任务aaa一个测试任务aaa一个测试任务aaa一个测试任务aaa\",\n                \"task_end_time\": 1669695653,\n                \"task_icon\": \"http://p-boe-sign.bytedance.net/tos-boe-i-giyy2m8f28/93e9ed06180c4c15b397e81653b20313~tplv-giyy2m8f28-144x144.image?x-orig-authkey=boeorigin&x-orig-expires=1763898974&x-orig-sign=BydBniNTuG%2FoYlVhHNVIRdZNcaU%3D\",\n                \"task_id\": 7159000769277214764,\n                \"task_name\": \"一个测试任务aaa\",\n                \"task_refund_period\": 0,\n                \"task_settle_type\": 1,\n                \"task_start_time\": 1666846303,\n                \"task_tags\": [\n                    \"娱乐测试\",\n                    \"小说\"\n                ],\n                \"task_type\": 1,\n                \"oriented_talent_rel_list\": [\n                    {\n                        \"cooperation_state\": 2,\n                        \"douyin_id\": \"lw123456\"\n                    },\n                    {\n                        \"cancel_operator\": 1,\n                        \"cooperation_state\": 3,\n                        \"douyin_id\": \"lv789\"\n                    }\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryVideoSummaryDataV2Request.json",
    "content": "{\n    \"video_ids\": [ \"939316235146214973\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxQueryVideoSummaryDataV2Response.json",
    "content": "{\n    \"data\": [\n        {\n            \"billing_gmv_td\": 42131038,\n            \"biling_refund_gmv_td\": 657030,\n            \"video_id\": 7918906790713390000,\n            \"task_id\": 3058041294486364000,\n            \"agent_id\": \"a2GotnoTIz\",\n            \"publish_time\": 1685664000\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxUpdateStatusV2Request.json",
    "content": "{\n    \"task_id\": 12333,\n    \"task_status\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxUpdateStatusV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_id\": 720992698146361\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxUpdateTaskV2Request.json",
    "content": "{\n    \"task_id\": 12333,\n    \"task_name\": \"测试12333\",\n    \"task_settle_type\": 1,\n    \"appid\": \"tt933ee5830c062fa6\",\n    \"start_page\": \"xxx\",\n    \"anchor_title\": \"测试锚点标\",\n    \"task_icon\": \"xxx\",\n    \"task_start_time\": 1618285226,\n    \"task_end_time\": 1620963626,\n    \"task_desc\": \"1. sss <br>2.sss2\",\n    \"refer_videos\": [\n        \"http://boe.v.douyin.com/Z0JRdbe/\",\n        \"http://boe.v.douyin.com/Z0JFXvp/\"\n    ],\n    \"task_tags\": [ \"测试类\", \"心理\" ],\n    \"refer_ma_captures\": [\n        \"https://static.runoob.com/images/demo/demo1.jpg\",\n        \"https://static.runoob.com/images/demo/demo2.jpg\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/MatchTaskBox/MatchTaskBoxUpdateTaskV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"task_id\": 720992698146361\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionAddAppTemplateV2Request.json",
    "content": "{\n    \"template_id\": 12259,\n    \"keyword_list\": [ \"时间\", \"风格\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionAddAppTemplateV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"msg_id\": \"MSG123456\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionCreateTemplateV2Request.json",
    "content": "{\n    \"title\": \"xxx\",\n    \"keyword_list\": [ \"xxx\", \"xx\" ],\n    \"category_ids\": \"8,9,16\",\n    \"classification\": 1,\n    \"host_list\": [ \"douyin\", \"toutiao\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionNotifyUserV2Request.json",
    "content": "{\n    \"msg_id\": \"MSG38489d04608c5f0fdeb565fc5114afff6410*******\",\n    \"open_id\": \"36d4bd3c8****\",\n    \"data\": {\n        \"物品名称\": \"测试值0\",\n        \"购买金额\": \"测试值1\"\n    },\n    \"page\": \"pages/index?a=b\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionQueryAppTemplateV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"total_count\": 1,\n        \"template_list\": [\n            {\n                \"msg_id\": \"MSG122591232\",\n                \"template_id\": 12259,\n                \"classification\": 1,\n                \"title\": \"拍摄通知\",\n                \"keyword_list\": [\n                    \"时间\",\n                    \"地点\"\n                ],\n                \"category_name\": \"摄影/扩印\",\n                \"host_list\": [\n                    \"toutiao\"\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionQueryCreatedTemplateListV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"total_count\": 1,\n        \"template_list\": [\n            {\n                \"title\": \"xxxx\",\n                \"keyword_list\": [\n                    \"xx\",\n                    \"xxx\"\n                ],\n                \"classification\": 1,\n                \"host_list\": [\n                    \"toutiao\",\n                    \"douyin\"\n                ],\n                \"operating_time\": 1672835937,\n                \"status\": 1,\n                \"fail_reason\": \"\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/NotificationSubscription/NotificationSubscriptionQueryTemplateListV2Response.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"total_count\": 1,\n        \"template_list\": [\n            {\n                \"template_id\": 12259,\n                \"classification\": 1,\n                \"title\": \"拍摄通知\",\n                \"keyword_list\": [\n                    \"时间\",\n                    \"地点\"\n                ],\n                \"category_name\": \"摄影/扩印\",\n                \"host_list\": [\n                    \"toutiao\"\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDataV2Request.json",
    "content": "{\n    \"page_size\": 1,\n    \"start_time\": 17217979,\n    \"end_time\": 4780363493,\n    \"componentId_list\": [],\n    \"page_no\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDataV2Response.json",
    "content": "{\n    \"data\": {\n        \"DataList\": [\n            {\n                \"ComponentClickPv\": 50,\n                \"ComponentClickUv\": 6,\n                \"ComponentId\": \"4cbc57c0949fa07ba718f1202d8c5ac6\",\n                \"ComponentName\": \"陈设测试\",\n                \"ComponentReportPv\": 171,\n                \"ComponentReportUv\": 6,\n                \"ComponentShowPv\": 42,\n                \"ComponentShowUv\": 9\n            },\n            {\n                \"ComponentClickPv\": 10,\n                \"ComponentClickUv\": 1,\n                \"ComponentId\": \"093e4cd2135a967dabad43f96564c7db\",\n                \"ComponentName\": \"陈设测试1\",\n                \"ComponentReportPv\": 1,\n                \"ComponentReportUv\": 1,\n                \"ComponentShowPv\": 1,\n                \"ComponentShowUv\": 1\n            },\n            {\n                \"ComponentClickPv\": 9,\n                \"ComponentClickUv\": 1,\n                \"ComponentId\": \"61adda99594c19e7733fc8af512388ae\",\n                \"ComponentName\": \"陈设测试4\",\n                \"ComponentReportPv\": 1,\n                \"ComponentReportUv\": 1,\n                \"ComponentShowPv\": 1,\n                \"ComponentShowUv\": 1\n            },\n            {\n                \"ComponentClickPv\": 7,\n                \"ComponentClickUv\": 1,\n                \"ComponentId\": \"caa8daa5a7fe93a65b736392f698e56f\",\n                \"ComponentName\": \"陈设测试3\",\n                \"ComponentReportPv\": 1,\n                \"ComponentReportUv\": 1,\n                \"ComponentShowPv\": 1,\n                \"ComponentShowUv\": 1\n            },\n            {\n                \"ComponentClickPv\": 8,\n                \"ComponentClickUv\": 1,\n                \"ComponentId\": \"f0f696d9d808e04cb2528c762a79dbb4\",\n                \"ComponentName\": \"陈设测试2\",\n                \"ComponentReportPv\": 1,\n                \"ComponentReportUv\": 1,\n                \"ComponentShowPv\": 1,\n                \"ComponentShowUv\": 1\n            },\n            {\n                \"ComponentClickPv\": 9,\n                \"ComponentClickUv\": 1,\n                \"ComponentId\": \"fbca42a8c3ce85cc20704b50eae6b94c\",\n                \"ComponentName\": \"陈设测试5\",\n                \"ComponentReportPv\": 4,\n                \"ComponentReportUv\": 1,\n                \"ComponentShowPv\": 1,\n                \"ComponentShowUv\": 1\n            }\n        ],\n        \"Total\": 6\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"20230625113633EA2ABA88EB7F721B6E4D\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDetailV2Request.json",
    "content": "{\n    \"start_time\": 1113398621,\n    \"end_time\": 377200,\n    \"componentId_list\": [],\n    \"is_query_live\": true,\n    \"is_query_video\": false,\n    \"page_no\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithDetailV2Response.json",
    "content": "{\n    \"data\": {\n        \"LiveData\": {\n            \"Total\": 1,\n            \"DataList\": [\n                {\n                    \"Data\": {\n                        \"ComponentClickPv\": 9,\n                        \"ComponentClickUv\": 2,\n                        \"ComponentId\": \"\",\n                        \"ComponentName\": \"\",\n                        \"ComponentReportPv\": 1,\n                        \"ComponentReportUv\": 1,\n                        \"ComponentShowPv\": 2,\n                        \"ComponentShowUv\": 2\n                    },\n                    \"RoomCreateTime\": 1686131868,\n                    \"RoomDuration\": 4,\n                    \"RoomId\": 7241881205325499000,\n                    \"ShortInfo\": {\n                        \"AccountType\": 0,\n                        \"Avat\": \"https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813_acf168dca4854fb390763275689ec289.jpeg?from=3782654143\",\n                        \"AwemeShortID\": \"huochetou655\",\n                        \"Nickname\": \"火车头🚞\"\n                    }\n                }\n            ]\n        },\n        \"VideoData\": {\n            \"DataList\": [\n                {\n                    \"Data\": {\n                        \"ComponentClickPv\": 9,\n                        \"ComponentClickUv\": 2,\n                        \"ComponentId\": \"\",\n                        \"ComponentName\": \"\",\n                        \"ComponentReportPv\": 1,\n                        \"ComponentReportUv\": 1,\n                        \"ComponentShowPv\": 2,\n                        \"ComponentShowUv\": 2\n                    },\n                    \"ItemAddr\": \"http://v5-i.douyinvod.com/79ba3e546339ea5448ca053f51ddacfd/6497be8a/video/tos/cn/tos-cn-ve-15c001-alinc2/o4UgCQGInJdSFBqzgDbUAzSzI8VenkAACYG9fA/?a=2176&ch=289&cr=0&dr=0&lr=all&cd=0%7C0%7C0%7C0&br=1074&bt=1074&cs=0&ds=3&ft=Cppx.nnrThWH6FiY0.bmo0P&mime_type=video_mp4&qs=0&rc=NTc8Njk7ZWc0NTU6aGQzN0BpanNscTk6ZjQ4bDMzNGkzM0A2LzNeL2FeXzAxLV4xMTI0YSNlNWwvcjRnNi1gLS1kLS9zcw%3D%3D&l=20230625111150D4EFD41F08830F2202F3&btag=e00008000&cdn_n80=1\",\n                    \"ItemCover\": \"https://p26-sign.douyinpic.com/tos-cn-p-0015/ogFKCenh9AAsgIyGkADEfSBAVAkgJMtEgkbjZ6~c5_300x400.jpeg?x-expires=1688871600&x-signature=D820qyRcZEBCYQ9rJhmLyNLnN5E%3D&from=3213915784_large&s=PackSourceEnum_OPENPLATFORM_SCREEN&se=false&sc=cover&biz_tag=aweme_video&l=20230625111150D4EFD41F08830F2202F3\",\n                    \"ItemCreateTime\": 1686131868,\n                    \"ItemDuration\": 4,\n                    \"ItemId\": 7241881205325499000,\n                    \"ItemTitle\": \"\",\n                    \"ItemVv\": 86,\n                    \"ShortInfo\": {\n                        \"AccountType\": 0,\n                        \"Avat\": \"https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813_acf168dca4854fb390763275689ec289.jpeg?from=3782654143\",\n                        \"AwemeShortID\": \"huochetou655\",\n                        \"Nickname\": \"火车头🚞\"\n                    }\n                }\n            ],\n            \"Total\": 1\n        }\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"20230625111150D4EFD41F08830F2202F3\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithOverviewV2Request.json",
    "content": "{\n    \"start_time\": 4129985245788524837,\n    \"end_time\": 6136550683620028954,\n    \"componentId_list\": [ \"3ND5vHMmKz\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithOverviewV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"log_id\": \"20240109180849D46806ACB8D19E0802F9\",\n    \"data\": {\n        \"ComponentDataInfoList\": [\n            {\n                \"ClueUcnt\": 0,\n                \"ComponentClickUv\": 1,\n                \"ComponentReportPv\": 0,\n                \"ComponentReportUv\": 0,\n                \"ComponentShowPv\": 1,\n                \"Date\": \"20231128\",\n                \"ValidClueCnt\": 0,\n                \"ClueCnt\": 0,\n                \"ValidClueUcnt\": 0,\n                \"ComponentShowUv\": 1,\n                \"ComponentClickPv\": 1\n            }\n        ],\n        \"ComponentOverviewData\": {\n            \"ValidClueUcnt\": 0,\n            \"ClueCnt\": 0,\n            \"ComponentClickPv\": 1,\n            \"ComponentReportPv\": 0,\n            \"ComponentReportUv\": 0,\n            \"ValidClueCnt\": 0,\n            \"ClueUcnt\": 0,\n            \"ComponentClickUv\": 1,\n            \"ComponentShowPv\": 1,\n            \"ComponentShowUv\": 1\n        }\n    },\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithSourceV2Request.json",
    "content": "{\n    \"start_time\": 1113398621,\n    \"end_time\": 377200,\n    \"componentId_list\": []\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Component/PlatformDataAnalysisQueryComponentWithSourceV2Response.json",
    "content": "{\n    \"data\": {\n        \"ScenesDataList\": [\n            {\n                \"Data\": {\n                    \"ComponentClickPv\": 24,\n                    \"ComponentClickUv\": 2,\n                    \"ComponentReportPv\": 21,\n                    \"ComponentReportUv\": 2,\n                    \"ComponentShowPv\": 9,\n                    \"ComponentShowUv\": 2\n                },\n                \"Scenes\": \"solid_entrance\",\n                \"ScenesName\": \"固定入口\"\n            },\n            {\n                \"Data\": {\n                    \"ComponentClickPv\": 9,\n                    \"ComponentClickUv\": 2,\n                    \"ComponentReportPv\": 1,\n                    \"ComponentReportUv\": 1,\n                    \"ComponentShowPv\": 2,\n                    \"ComponentShowUv\": 2\n                },\n                \"Scenes\": \"video\",\n                \"ScenesName\": \"短视频\"\n            },\n            {\n                \"Data\": {\n                    \"ComponentClickPv\": 60,\n                    \"ComponentClickUv\": 7,\n                    \"ComponentReportPv\": 157,\n                    \"ComponentReportUv\": 8,\n                    \"ComponentShowPv\": 36,\n                    \"ComponentShowUv\": 10\n                },\n                \"Scenes\": \"other\",\n                \"ScenesName\": \"其它\"\n            }\n        ]\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"20230624224047AC0C108A4419A091657E\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Live/PlatformDataAnalysisQueryLiveWithShortIdV2Request.json",
    "content": "{\n    \"host_name\": \"douyin\",\n    \"aweme_short_id_list\": [],\n    \"page_no\": 1,\n    \"page_size\": 10,\n    \"start_time\": 620444184735,\n    \"end_time\": 1644457405\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Live/PlatformDataAnalysisQueryLiveWithShortIdV2Response.json",
    "content": "{\n    \"data\": {\n        \"ShortDataList\": [\n            {\n                \"Data\": {\n                    \"PayCustomerCnt\": 0,\n                    \"PayOrderAmount\": 0,\n                    \"RoomDuration\": 37532,\n                    \"RoomHighestOnlineCount\": 6,\n                    \"RoomNewFans\": 0,\n                    \"RoomSessionCnt\": 58\n                },\n                \"ShortInfo\": {\n                    \"AccountType\": 1,\n                    \"Avat\": \"https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_87906d32936af5f7c66d8bdf10149a7f.jpeg?from=3782654143\",\n                    \"AwemeShortID\": \"lmn7455\",\n                    \"Nickname\": \"喵喵喵喵\"\n                }\n            }\n        ],\n        \"Total\": 5\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOrderDataV2Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"ttxxxfffffffff\",\n        \"app_name\": \"小程序名称\",\n        \"order_data\": {\n            \"ext_702453453599\": {\n                \"anchor_id\": \"149148\",\n                \"app_id\": \"ttxxxfffffffff\",\n                \"app_name\": \"小程序名称\",\n                \"delivery_success_amount\": \"85\",\n                \"nick_name\": \"test_v3_65\",\n                \"order_status\": \"已退款\",\n                \"pay_amount\": \"175\",\n                \"pay_time\": \"1668222318\",\n                \"refund_success_amount\": \"165\",\n                \"room_id\": \"49483114\"\n            },\n            \"ext_702453453699\": {\n                \"anchor_id\": \"149148\",\n                \"app_id\": \"ttxxxfffffffff\",\n                \"app_name\": \"小程序名称\",\n                \"delivery_success_amount\": \"85\",\n                \"nick_name\": \"test_v3_65\",\n                \"order_status\": \"已退款\",\n                \"pay_amount\": \"175\",\n                \"pay_time\": \"1668222319\",\n                \"refund_success_amount\": \"165\",\n                \"room_id\": \"49483114\"\n            }\n        },\n        \"total_num\": 12400,\n        \"has_more\": true\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"xxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeOverviewDataV2Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"ttxxxfffffffff\",\n        \"app_name\": \"小程序名称\",\n        \"over_view_data\": {\n            \"app_id\": \"ttxxxfffffffff\",\n            \"app_name\": \"小程序名称\",\n            \"delivery_success_amount\": \"100\",\n            \"delivery_success_order_cnt\": \"10\",\n            \"live_anchors_cnt\": \"1\",\n            \"live_duration\": \"12000\",\n            \"live_session_cnt\": \"2\",\n            \"max_watch_user_cnt\": \"30\",\n            \"pay_amount\": \"40\",\n            \"pay_order_cnt\": \"20\",\n            \"per_watch_duration\": \"10\",\n            \"refund_success_amount\": \"160\",\n            \"refund_success_order_cnt\": \"80\",\n            \"watch_duration\": \"10\",\n            \"watch_user_cnt\": \"100\"\n        }\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"xxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/SmallRoom/PlatformDataAnalysisQuerySmallHomeRoomDataV2Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"ttxxxfffffffff\",\n        \"app_name\": \"小程序名称\",\n        \"room_data\": {\n            \"1001\": {\n                \"anchor_id\": \"12345\",\n                \"app_id\": \"ttxxxfffffffff\",\n                \"app_name\": \"小程序名称\",\n                \"delivery_success_amount\": \"50\",\n                \"delivery_success_order_cnt\": \"60\",\n                \"end_time\": \"1672900091\",\n                \"live_duration\": \"6000\",\n                \"max_watch_user_cnt\": \"2\",\n                \"nick_name\": \"主播nick_name\",\n                \"pay_amount\": \"10\",\n                \"pay_order_cnt\": \"20\",\n                \"per_watch_duration\": \"10\",\n                \"refund_success_amount\": \"30\",\n                \"refund_success_order_cnt\": \"40\",\n                \"start_time\": \"1672900091\",\n                \"watch_user_cnt\": \"100000\"\n            },\n            \"1002\": {\n                \"anchor_id\": \"12345\",\n                \"app_id\": \"ttxxxfffffffff\",\n                \"app_name\": \"小程序名称\",\n                \"delivery_success_amount\": \"50\",\n                \"delivery_success_order_cnt\": \"60\",\n                \"end_time\": \"1672900091\",\n                \"live_duration\": \"6000\",\n                \"max_watch_user_cnt\": \"3\",\n                \"nick_name\": \"我测试的\",\n                \"pay_amount\": \"10\",\n                \"pay_order_cnt\": \"20\",\n                \"per_watch_duration\": \"10\",\n                \"refund_success_amount\": \"30\",\n                \"refund_success_order_cnt\": \"40\",\n                \"start_time\": \"1672900091\",\n                \"watch_user_cnt\": \"100000\"\n            }\n        },\n        \"total_num\": 2,\n        \"has_more\": false\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"xxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealDataWithConversionV2Request.json",
    "content": "{\n    \"scenes_list\": [],\n    \"start_time\": 7308623629,\n    \"end_time\": 32830,\n    \"host_name\": \"douyin\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealDataWithConversionV2Response.json",
    "content": "{\n    \"data\": {\n        \"Data\": {\n            \"MpDrainagePv\": 3661,\n            \"MpDrainageUv\": 882,\n            \"PayOrderCount\": 81,\n            \"RefundOrderCount\": 9,\n            \"RefundPeopleCount\": 5,\n            \"CreateOrderCount\": 221,\n            \"CreateUserCount\": 51,\n            \"MpShowPv\": 121517,\n            \"MpShowUv\": 5497,\n            \"PayPeopleCount\": 45\n        }\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryDealOverviewDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"deal_overview_data\": {\n            \"create_order_count\": 3,\n            \"pay_order_count\": 1,\n            \"create_order_amount\": 3,\n            \"pay_order_amount\": 1,\n            \"success_user_cnt\": 1,\n            \"refund_order_cnt\": 0,\n            \"sale_product_cnt\": 1\n        },\n        \"deal_data_list\": [\n            {\n                \"time\": \"2022-12-27\",\n                \"create_order_count\": 3,\n                \"pay_order_count\": 1,\n                \"create_order_amount\": 3,\n                \"pay_order_amount\": 1,\n                \"success_user_cnt\": 1,\n                \"refund_order_cnt\": 0,\n                \"sale_product_cnt\": 1\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveDealDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"deal_overview_data\": {\n            \"create_user_count\": 0,\n            \"show_count\": 0,\n            \"create_order_count\": 0,\n            \"customer_once_price\": 0,\n            \"pay_order_count\": 0,\n            \"refund_order_amount\": 0,\n            \"sale_product_cnt\": 0,\n            \"click_count\": 0,\n            \"create_order_amount\": 0,\n            \"refund_success_order_cnt\": 0,\n            \"refund_success_user_cnt\": 0,\n            \"success_user_cnt\": 0,\n            \"order_once_price\": 0,\n            \"refund_order_cnt\": 0,\n            \"pay_order_amount\": 0,\n            \"refund_success_order_amount\": 0\n        },\n        \"deal_data_list\": [\n            {\n                \"time\": \"2022-12-27 15:04:05\",\n                \"create_user_count\": 0,\n                \"show_count\": 0,\n                \"create_order_count\": 0,\n                \"customer_once_price\": 0,\n                \"pay_order_count\": 0,\n                \"refund_order_amount\": 0,\n                \"sale_product_cnt\": 0,\n                \"click_count\": 0,\n                \"create_order_amount\": 0,\n                \"refund_success_order_cnt\": 0,\n                \"refund_success_user_cnt\": 0,\n                \"success_user_cnt\": 0,\n                \"order_once_price\": 0,\n                \"refund_order_cnt\": 0,\n                \"pay_order_amount\": 0,\n                \"refund_success_order_amount\": 0\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"live_data_overview\": {\n            \"cumulative_audience_count\": 100,\n            \"online_user_count\": 50,\n            \"per_capita_time\": 60000,\n            \"increased_fans_count\": 4,\n            \"comment_count\": 40,\n            \"share_count\": 10,\n            \"like_times\": 300\n        },\n        \"live_data_list\": [\n            {\n                \"time\": \"2006-01-02 15:04:05\",\n                \"cumulative_audience_count\": 100,\n                \"comment_count\": 10,\n                \"share_count\": 5,\n                \"like_times\": 10\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryLiveRoomV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"current_live_room\": [\n            {\n                \"anchor_name\": \"主播名称A\",\n                \"live_room_id\": 111,\n                \"live_room_name\": \"直播间名称A\",\n                \"create_time\": 1671620183\n            }\n        ],\n        \"history_live_room\": [\n            {\n                \"anchor_name\": \"主播名称A\",\n                \"live_room_id\": 222,\n                \"live_room_name\": \"直播间名称B\",\n                \"create_time\": 1671610183\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryProductDealDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"total\": 1,\n        \"deal_data_list\": [\n            {\n                \"product_id\": 12356,\n                \"product_name\": \"产品名称\",\n                \"pay_amount\": 4,\n                \"pay_product_cnt\": 2,\n                \"pay_user_cnt\": 1\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Transaction/PlatformDataAnalysisQueryVideoDealDataV2Response.json",
    "content": "{\n    \"data\": {\n        \"video_deal_data_list\": [\n            {\n                \"mp_show_uv\": 166,\n                \"refund_order_cnt\": 6,\n                \"clue_cnt\": 0,\n                \"create_order_amount\": 350,\n                \"create_order_cnt\": 0,\n                \"customer_once_price\": 21,\n                \"mp_drainage_pv\": 771,\n                \"video_play_user_cnt\": 0,\n                \"create_customer_cnt\": 16,\n                \"mp_drainage_uv\": 56,\n                \"mp_show_pv\": 0,\n                \"time\": \"2023-11-25\",\n                \"video_play_cnt\": 0,\n                \"clue_ucnt\": 0,\n                \"order_once_price\": 18,\n                \"pay_customer_cnt\": 16,\n                \"pay_order_amount\": 350,\n                \"refund_customer_cnt\": 3,\n                \"valid_clue_cnt\": 0,\n                \"item_uv\": 256,\n                \"item_vv\": 702,\n                \"pay_order_cnt\": 0,\n                \"refund_amount\": 60,\n                \"valid_clue_ucnt\": 0\n            },\n            {\n                \"refund_amount\": 60,\n                \"valid_clue_ucnt\": 0,\n                \"mp_drainage_pv\": 771,\n                \"mp_show_uv\": 166,\n                \"order_once_price\": 18,\n                \"pay_customer_cnt\": 16,\n                \"pay_order_cnt\": 0,\n                \"video_play_cnt\": 43,\n                \"video_play_user_cnt\": 0,\n                \"customer_once_price\": 21,\n                \"create_order_amount\": 350,\n                \"mp_drainage_uv\": 56,\n                \"refund_order_cnt\": 6,\n                \"mp_show_pv\": 9,\n                \"pay_order_amount\": 350,\n                \"clue_cnt\": 0,\n                \"clue_ucnt\": 0,\n                \"create_customer_cnt\": 16,\n                \"create_order_cnt\": 0,\n                \"item_uv\": 256,\n                \"item_vv\": 702,\n                \"refund_customer_cnt\": 3,\n                \"time\": \"2023-12-19\",\n                \"valid_clue_cnt\": 0\n            }\n        ],\n        \"video_deal_overview_data\": {\n            \"clue_ucnt\": 0,\n            \"create_order_cnt\": 19,\n            \"mp_show_pv\": 539,\n            \"mp_show_uv\": 166,\n            \"video_play_cnt\": 702,\n            \"video_play_user_cnt\": 0,\n            \"clue_cnt\": 0,\n            \"item_uv\": 256,\n            \"mp_drainage_uv\": 56,\n            \"order_once_price\": 18,\n            \"pay_order_amount\": 350,\n            \"refund_order_cnt\": 6,\n            \"valid_clue_cnt\": 0,\n            \"customer_once_price\": 21,\n            \"mp_drainage_pv\": 771,\n            \"pay_order_cnt\": 19,\n            \"refund_amount\": 60,\n            \"create_order_amount\": 350,\n            \"item_vv\": 702,\n            \"pay_customer_cnt\": 16,\n            \"refund_customer_cnt\": 3,\n            \"valid_clue_ucnt\": 0,\n            \"create_customer_cnt\": 16\n        }\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20240108212802ECEDCB8331F7EA16E3D1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryBehaviorDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"sum\": {\n            \"active_user_num\": 113,\n            \"new_user_num\": 74,\n            \"total_user_num\": 285227,\n            \"share_time\": 8,\n            \"open_time\": 190,\n            \"per_user_open_time\": 1.6814,\n            \"per_user_stay_time\": 349603,\n            \"avg_stay_time\": 136095\n        },\n        \"behaviors\": [\n            {\n                \"time_type\": 1,\n                \"time\": \"2022-12-26\",\n                \"active_user_num\": 113,\n                \"new_user_num\": 74,\n                \"total_user_num\": 285227,\n                \"share_time\": 8,\n                \"open_time\": 190,\n                \"per_user_open_time\": 1.6814,\n                \"per_user_stay_time\": 349603,\n                \"avg_stay_time\": 136095\n            },\n            {\n                \"time_type\": 1,\n                \"time\": \"2022-12-27\",\n                \"active_user_num\": 402,\n                \"new_user_num\": 356,\n                \"total_user_num\": 285583,\n                \"share_time\": 24,\n                \"open_time\": 563,\n                \"per_user_open_time\": 1.4004,\n                \"per_user_stay_time\": 90556,\n                \"avg_stay_time\": 49672\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryClientDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"app_version\": [\n            {\n                \"name\": \"23.7.0\",\n                \"value\": 370\n            },\n            {\n                \"name\": \"23.6.0\",\n                \"value\": 101\n            }\n        ],\n        \"brand\": [\n            {\n                \"name\": \"苹果\",\n                \"value\": 256\n            },\n            {\n                \"name\": \"华为\",\n                \"value\": 90\n            }\n        ],\n        \"lib_version\": [\n            {\n                \"name\": \"2.77.1.0\",\n                \"value\": 511\n            },\n            {\n                \"name\": \"2.76.0.10\",\n                \"value\": 34\n            }\n        ],\n        \"model\": [\n            {\n                \"name\": \"iphone14,5\",\n                \"value\": 42\n            },\n            {\n                \"name\": \"iphone12,1\",\n                \"value\": 36\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryPageDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"page_list\": [\n            {\n                \"page\": \"pages/index/index\",\n                \"page_avg_stay_time\": 12552,\n                \"page_pv\": 1311,\n                \"page_share_time\": 3,\n                \"page_uv\": 582\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRealTimeUserDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"sum\": {\n            \"active_user_num\": 100,\n            \"open_time\": 40\n        },\n        \"behaviors\": [\n            {\n                \"time\": \"00:00:00\",\n                \"active_user_num\": 15,\n                \"open_time\": 18\n            },\n            {\n                \"time\": \"01:00:00\",\n                \"active_user_num\": 10,\n                \"open_time\": 16\n            },\n            {\n                \"time\": \"02:00:00\",\n                \"active_user_num\": 10,\n                \"open_time\": 16\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryRetentionDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"retention_data_list\": [\n            {\n                \"time\": \"2022-12-21\",\n                \"active_user_num\": 28,\n                \"retention_rate_list\": [\n                    {\n                        \"day\": 1,\n                        \"rate\": 0.1422\n                    },\n                    {\n                        \"day\": 2,\n                        \"rate\": 0.0596\n                    },\n                    {\n                        \"day\": 3,\n                        \"rate\": 0.0458\n                    },\n                    {\n                        \"day\": 4,\n                        \"rate\": 0.0275\n                    },\n                    {\n                        \"day\": 5,\n                        \"rate\": 0.0871\n                    },\n                    {\n                        \"day\": 6,\n                        \"rate\": 0.0642\n                    },\n                    {\n                        \"day\": 7,\n                        \"rate\": 0\n                    },\n                    {\n                        \"day\": 14,\n                        \"rate\": 0\n                    },\n                    {\n                        \"day\": 30,\n                        \"rate\": 0\n                    }\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQuerySceneDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"scene_list\": [\n            {\n                \"scene_id\": \"video\",\n                \"scene_name\": \"短视频\",\n                \"scene_avg_stay_time\": 8564.375,\n                \"scene_avg_stay_time_list\": [\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"00:00:00\",\n                        \"scene_avg_stay_time\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"01:00:00\",\n                        \"scene_avg_stay_time\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"02:00:00\",\n                        \"scene_avg_stay_time\": 1826\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"03:00:00\",\n                        \"scene_avg_stay_time\": 0\n                    }\n                ],\n                \"scene_new_uv\": 415,\n                \"scene_new_uv_list\": [\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"00:00:00\",\n                        \"scene_new_uv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"01:00:00\",\n                        \"scene_new_uv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"02:00:00\",\n                        \"scene_new_uv\": 4\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"03:00:00\",\n                        \"scene_new_uv\": 2\n                    }\n                ],\n                \"scene_open_pv\": 436,\n                \"scene_open_pv_list\": [\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"00:00:00\",\n                        \"scene_open_pv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"01:00:00\",\n                        \"scene_open_pv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"02:00:00\",\n                        \"scene_open_pv\": 4\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"03:00:00\",\n                        \"scene_open_pv\": 2\n                    }\n                ],\n                \"scene_pv\": 708,\n                \"scene_pv_list\": [\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"00:00:00\",\n                        \"scene_pv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"01:00:00\",\n                        \"scene_pv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"02:00:00\",\n                        \"scene_pv\": 4\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"03:00:00\",\n                        \"scene_pv\": 2\n                    }\n                ],\n                \"scene_uv\": 434,\n                \"scene_uv_list\": [\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"00:00:00\",\n                        \"scene_uv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"01:00:00\",\n                        \"scene_uv\": 0\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"02:00:00\",\n                        \"scene_uv\": 4\n                    },\n                    {\n                        \"time_type\": 2,\n                        \"time\": \"03:00:00\",\n                        \"scene_uv\": 2\n                    }\n                ]\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/User/PlatformDataAnalysisQueryUserPortraitDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"total_user\": 485,\n        \"province\": [\n            {\n                \"name\": \"广东\",\n                \"value\": 74\n            },\n            {\n                \"name\": \"江苏\",\n                \"value\": 54\n            }\n        ],\n        \"city\": [\n            {\n                \"name\": \"深圳\",\n                \"value\": 21\n            },\n            {\n                \"name\": \"北京\",\n                \"value\": 20\n            }\n        ],\n        \"gender\": [\n            {\n                \"name\": \"male\",\n                \"value\": 378\n            },\n            {\n                \"name\": \"female\",\n                \"value\": 225\n            }\n        ],\n        \"age\": [\n            {\n                \"name\": \"-18\",\n                \"value\": 20\n            },\n            {\n                \"name\": \"18-23\",\n                \"value\": 136\n            },\n            {\n                \"name\": \"24-30\",\n                \"value\": 188\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveDataWithIdV2Request.json",
    "content": "{\n    \"start_time\": 1679241600,\n    \"end_time\": 1679328000,\n    \"query_bind_type\": 1,\n    \"aweme_short_id_list\": [ \"今天又明天\", \"明天何其多\" ],\n    \"item_id_list\": [ \"7169582199207939932\", \"7169582199207457932\" ],\n    \"open_item_id_list\": [ \"@+mBxX3X5nqAF2xpmBxlSuRAyt+dfQfc7UnuQdDXzWUB9BtjSmH12d3fcFVF++2xOEzYKH+kboOjsmFRO+ahTAQ==\", \"@+mBxX3X5nqAF2xpmBxlSuRAyt+dfQfc7U32ReT7+UkJ8C4jV3H2wk1C8FVF++2xOkETGWYts5haD9aCpAKVqEQ==\" ],\n    \"query_data_type\": 4,\n    \"page_no\": 1,\n    \"page_size\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveDataWithIdV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"data_list\": [\n            {\n                \"item_id\": \"7169582199207939932\",\n                \"open_item_id_list\": \"@+mBxX3X5nqAF2xpmBxlSuRAyt+dfQfc7UnuQdDXzWUB9BtjSmH12d3fcFVF++2xOEzYKH+kboOjsmFRO+ahTAQ==\",\n                \"item_title\": \"无敌战神\",\n                \"item_cover\": \"xxx\",\n                \"item_addr\": \"xxx\",\n                \"item_aweme_shortid\": \"今天又明天\",\n                \"item_aweme_type\": \"1\",\n                \"item_aweme_name\": \"xxx\",\n                \"item_aweme_avatar\": \"xxx\",\n                \"item_duration\": \"449\",\n                \"item_create_time\": \"1679241689\",\n                \"item_last_frame_watch_cnt\": 2,\n                \"item_completion_rate\": \"10%\",\n                \"item_comment_count\": \"1\",\n                \"item_like_count\": \"1\",\n                \"item_share_count\": \"1\",\n                \"item_vv\": \"20\",\n                \"room_id\": \"7169582199207939932\",\n                \"app_type\": \"1128\",\n                \"room_aweme_shortid\": \"今天又明天\",\n                \"room_aweme_type\": \"1\",\n                \"room_aweme_nickname\": \"xxx\",\n                \"room_aweme_avt\": \"xxx\",\n                \"room_duration\": \"449\",\n                \"room_create_time\": \"1679241689\",\n                \"room_finish_time\": \"1679241989\",\n                \"room_highest_online_count\": \"1\",\n                \"room_once_watch_duration\": \"10\",\n                \"room_comment_count\": \"1\",\n                \"room_like_count\": \"1\",\n                \"room_share_count\": \"1\",\n                \"room_comment_user_count\": \"1\",\n                \"room_like_user_count\": \"1\",\n                \"room_share_user_count\": \"1\",\n                \"mp_show_pv\": \"2\",\n                \"mp_click_pv\": \"2\",\n                \"mp_drainage_pv\": \"2\",\n                \"item_uv\": \"20\",\n                \"mp_show_uv\": \"2\",\n                \"mp_click_uv\": \"2\",\n                \"mp_drainage_uv\": \"2\",\n                \"room_show_pv\": \"3\",\n                \"room_show_uv\": \"3\",\n                \"room_watch_pv\": \"3\",\n                \"room_watch_uv\": \"3\",\n                \"room_watch_rate\": \"100%\",\n                \"room_interactive_rate\": \"0%\",\n                \"room_uv_price\": \"0\",\n                \"mp_click_rate\": \"100%\",\n                \"pay_order_cnt\": \"1\",\n                \"pay_customer_cnt\": \"1\",\n                \"pay_order_amount\": \"1\",\n                \"customer_once_price\": \"1\",\n                \"order_once_price\": \"1\",\n                \"refund_customer_cnt\": \"0\",\n                \"refund_order_cnt\": \"0\",\n                \"refund_amount\": \"0\",\n                \"bc_relation_bind_type\": \"0\"\n            },\n            {\n                \"room_id\": \"7169582199207939932\",\n                \"app_type\": \"1128\",\n                \"room_aweme_shortid\": \"今天又明天\",\n                \"room_aweme_type\": \"1\",\n                \"room_aweme_nickname\": \"xxx\",\n                \"room_aweme_avt\": \"xxx\",\n                \"room_duration\": \"449\",\n                \"room_create_time\": \"1679241689\",\n                \"room_finish_time\": \"1679241989\",\n                \"room_highest_online_count\": \"1\",\n                \"room_once_watch_duration\": \"10\",\n                \"room_comment_count\": \"1\",\n                \"room_like_count\": \"1\",\n                \"room_share_count\": \"1\",\n                \"room_comment_user_count\": \"1\",\n                \"room_like_user_count\": \"1\",\n                \"room_share_user_count\": \"1\",\n                \"mp_show_pv\": \"2\",\n                \"mp_click_pv\": \"2\",\n                \"mp_drainage_pv\": \"2\",\n                \"mp_show_uv\": \"2\",\n                \"mp_click_uv\": \"2\",\n                \"mp_drainage_uv\": \"2\",\n                \"room_show_pv\": \"3\",\n                \"room_show_uv\": \"3\",\n                \"room_watch_pv\": \"3\",\n                \"room_watch_uv\": \"3\",\n                \"room_watch_rate\": \"100%\",\n                \"room_interactive_rate\": \"0%\",\n                \"room_uv_price\": \"0\",\n                \"mp_click_rate\": \"100%\",\n                \"pay_order_cnt\": \"1\",\n                \"pay_customer_cnt\": \"1\",\n                \"pay_order_amount\": \"1\",\n                \"customer_once_price\": \"1\",\n                \"order_once_price\": \"1\",\n                \"refund_customer_cnt\": \"0\",\n                \"refund_order_cnt\": \"0\",\n                \"refund_amount\": \"0\",\n                \"bc_relation_bind_type\": \"0\"\n            }\n        ],\n        \"sum\": 20,\n        \"detail_data\": {\n            \"1679241600\": {\n                \"item_id\": \"7169582199207939932\",\n                \"open_item_id_list\": \"@+mBxX3X5nqAF2xpmBxlSuRAyt+dfQfc7UnuQdDXzWUB9BtjSmH12d3fcFVF++2xOEzYKH+kboOjsmFRO+ahTAQ==\",\n                \"item_title\": \"无敌战神\",\n                \"item_cover\": \"xxx\",\n                \"item_addr\": \"xxx\",\n                \"item_aweme_shortid\": \"今天又明天\",\n                \"item_aweme_type\": \"1\",\n                \"item_aweme_name\": \"xxx\",\n                \"item_aweme_avatar\": \"xxx\",\n                \"item_duration\": \"449\",\n                \"item_create_time\": \"1679241689\",\n                \"item_last_frame_watch_cnt\": 2,\n                \"item_completion_rate\": \"10%\",\n                \"item_comment_count\": \"1\",\n                \"item_like_count\": \"1\",\n                \"item_share_count\": \"1\",\n                \"item_vv\": \"20\",\n                \"mp_show_pv\": \"2\",\n                \"mp_click_pv\": \"2\",\n                \"mp_drainage_pv\": \"2\",\n                \"item_uv\": \"20\",\n                \"mp_show_uv\": \"2\",\n                \"mp_click_uv\": \"2\",\n                \"mp_drainage_uv\": \"2\",\n                \"pay_order_cnt\": \"1\",\n                \"pay_customer_cnt\": \"1\",\n                \"pay_order_amount\": \"1\",\n                \"customer_once_price\": \"1\",\n                \"order_once_price\": \"1\",\n                \"refund_customer_cnt\": \"0\",\n                \"refund_order_cnt\": \"0\",\n                \"refund_amount\": \"0\",\n                \"bc_relation_bind_type\": \"0\"\n            }\n        }\n    },\n    \"log_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Request.json",
    "content": "{\n    \"start_time\": 1679241600,\n    \"end_time\": 1679328000,\n    \"host_name\": \"douyin\",\n    \"query_bind_type\": 0,\n    \"aweme_short_id_list\": [ \"今天又明天\", \"明天何其多\" ],\n    \"query_data_type\": 4\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryShortLiveIdWithAwemeIdV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"item_data\": {},\n        \"live_data\": {\n            \"129273123\": [ \"7169582199207939932\", \"7169582199683939932\" ],\n            \"112273113\": [ \"7169892199207939932\", \"7169582129207939932\" ]\n        },\n        \"over_view_data\": {\n            \"room_session_cnt\": \"4\",\n            \"room_broadcast_cnt\": \"2\" \n        }\n    },\n    \"log_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoDataV2Request.json",
    "content": "{\n    \"aweme_short_id_list\": [],\n    \"item_id_list\": [],\n    \"open_item_id_list\": [],\n    \"start_time\": 5177295280,\n    \"end_time\": 85726091,\n    \"host_name\": \"douyin\",\n    \"query_bind_type\": 4\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoDataV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"video_deal_overview_data\": {\n            \"video_play_cnt\": 6005,\n            \"mp_show_pv\": 5026,\n            \"mp_click_pv\": 25,\n            \"create_order_cnt\": 0,\n            \"pay_order_cnt\": 0,\n            \"mp_drainage_pv\": 0,\n            \"mp_drainage_uv\": 0,\n            \"mp_show_uv\": 0,\n            \"mp_click_uv\": 0,\n            \"video_play_user_cnt\": 2000,\n            \"pay_customer_cnt\": 0,\n            \"pay_order_amount\": 0,\n            \"customer_once_price\": 0,\n            \"order_once_price\": 0,\n            \"refund_customer_cnt\": 0,\n            \"refund_order_cnt\": 0,\n            \"refund_amount\": 0\n        },\n        \"video_deal_data_list\": [\n            {\n                \"time\": \"2023-03-20\",\n                \"video_play_cnt\": 6005,\n                \"mp_show_pv\": 5026,\n                \"mp_click_pv\": 25,\n                \"create_order_cnt\": 0,\n                \"pay_order_cnt\": 0,\n                \"mp_drainage_pv\": 0,\n                \"mp_drainage_uv\": 0,\n                \"mp_show_uv\": 0,\n                \"mp_click_uv\": 0,\n                \"video_play_user_cnt\": 2000,\n                \"pay_customer_cnt\": 0,\n                \"pay_order_amount\": 0,\n                \"customer_once_price\": 0,\n                \"order_once_price\": 0,\n                \"refund_customer_cnt\": 0,\n                \"refund_order_cnt\": 0,\n                \"refund_amount\": 0\n            },\n            {\n                \"time\": \"2023-03-21\",\n                \"video_play_cnt\": 6005,\n                \"mp_show_pv\": 5026,\n                \"mp_click_pv\": 25,\n                \"create_order_cnt\": 0,\n                \"pay_order_cnt\": 0,\n                \"mp_drainage_pv\": 0,\n                \"mp_drainage_uv\": 0,\n                \"mp_show_uv\": 0,\n                \"mp_click_uv\": 0,\n                \"video_play_user_cnt\": 2000,\n                \"pay_customer_cnt\": 0,\n                \"pay_order_amount\": 0,\n                \"customer_once_price\": 0,\n                \"order_once_price\": 0,\n                \"refund_customer_cnt\": 0,\n                \"refund_order_cnt\": 0,\n                \"refund_amount\": 0\n            }\n        ]\n    },\n    \"log_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoWithSourceV2Request.json",
    "content": "{\n    \"start_time\": 268677957895199601,\n    \"end_time\": 1550656589714520118,\n    \"host_name\": \"bwVY0ZzgtM\",\n    \"aweme_short_id_list\": [ \"YsJYkhFIGF\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/PlatformDataAnalysis/Video/PlatformDataAnalysisQueryVideoWithSourceV2Response.json",
    "content": "{\n    \"data\": {\n        \"DataList\": [\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 0,\n                    \"MpDrainageUv\": 0,\n                    \"MpShowPv\": 34,\n                    \"MpShowUv\": 13\n                },\n                \"Scenes\": \"homepage_follow\",\n                \"ScenesName\": \"关注页\",\n                \"VideoPlayCount\": 0\n            },\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 0,\n                    \"MpDrainageUv\": 0,\n                    \"MpShowPv\": 20,\n                    \"MpShowUv\": 13\n                },\n                \"Scenes\": \"others_homepage\",\n                \"ScenesName\": \"他人主页\",\n                \"VideoPlayCount\": 0\n            },\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 0,\n                    \"MpDrainageUv\": 0,\n                    \"MpShowPv\": 1,\n                    \"MpShowUv\": 1\n                },\n                \"Scenes\": \"homepage_fresh\",\n                \"ScenesName\": \"同城页\",\n                \"VideoPlayCount\": 0\n            },\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 0,\n                    \"MpDrainageUv\": 0,\n                    \"MpShowPv\": 5,\n                    \"MpShowUv\": 5\n                },\n                \"Scenes\": \"general_search\",\n                \"ScenesName\": \"综搜页\",\n                \"VideoPlayCount\": 0\n            },\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 15,\n                    \"MpDrainageUv\": 5,\n                    \"MpShowPv\": 331,\n                    \"MpShowUv\": 325\n                },\n                \"Scenes\": \"homepage_hot\",\n                \"ScenesName\": \"推荐页\",\n                \"VideoPlayCount\": 0\n            },\n            {\n                \"CommonData\": {\n                    \"MpDrainagePv\": 86,\n                    \"MpDrainageUv\": 19,\n                    \"MpShowPv\": 377,\n                    \"MpShowUv\": 352\n                },\n                \"Scenes\": \"other\",\n                \"ScenesName\": \"其它\",\n                \"VideoPlayCount\": 0\n            }\n        ]\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Product/Region/ProductAppRegionAddV1Request.json",
    "content": "{\n    \"bind_type\": 2,\n    \"region_id\": \"130400\",\n    \"path\": \"page/test/index\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Product/Region/ProductAppRegionAddV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"data_id\": \"region_7276042845767827500\",\n    \"err_msg\": \"成功\",\n    \"log_id\": \"02169414664986000000000000000000000ffff0a706f5dd63726\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Product/Region/ProductAppRegionModifyV1Request.json",
    "content": "{\n    \"origin_region\": \"440300\",\n    \"current_region\": \"440400\",\n    \"path\": \"page/path/index\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityAddSelfTestAccountsV2Request.json",
    "content": "{\n    \"activity_id\": \"GkvRWDIIaU\",\n    \"test_accounts\": [ \"RZtS0BMEH7\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityBindUserToSidebarActivityV2Request.json",
    "content": "{\n    \"open_id\": \"Cv4PoJXaTPnxxxx\",\n    \"activity_id\": \"720998824905xxxx532\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityCreatePromotionActivityV2Request.json",
    "content": "{\n    \"promotion_activity\": {\n        \"coupon_meta_id\": \"71923xxxxxxxx\",\n        \"activity_name\": \"直播间11.11大促\",\n        \"receive_limit\": 1,\n        \"live_activity\": {\n            \"coupon_task_type\": 2,\n            \"clue_component_id\": \"aGgKcLCYCKxxxxxx\",\n            \"notice_text\": \"发放时注意营销感\"\n        },\n        \"send_scene\": 1\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityCreatePromotionActivityV2Response.json",
    "content": "{\n    \"data\": {\n        \"activity_id\": \"7310298xxxxxx\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityModifyPromotionActivityV2Request.json",
    "content": "{\n    \"promotion_activity\": {\n        \"activity_id\": \"702345xxxxxx\",\n        \"activity_name\": \"全新的营销活动标题\",\n        \"sidebar_activity\": {\n            \"jump_text\": \"去使用\",\n            \"short_title\": \"免费看一集\",\n            \"valid_begin_time\": 1676984342,\n            \"high_value_content\": \"15个鸡翅仅9.9元\",\n            \"valid_end_time\": 1676984442,\n            \"recent_bubble_text\": \"领福利\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityQueryBindedUserV2Request.json",
    "content": "{\n    \"open_id\": \"XSXIyPJtQs\",\n    \"activity_id\": \"N7kfmjJh6n\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityQueryBindedUserV2Response.json",
    "content": "{\n    \"is_binded\": false\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityQueryPromotionActivityV2Request.json",
    "content": "{\n    \"activity_id\": \"735057544386xxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityQueryPromotionActivityV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20240401180130D96605C00A6FE1041CFA\",\n    \"promotion_activity\": {\n        \"status\": 2,\n        \"send_scene\": 1,\n        \"receive_limit\": 1,\n        \"activity_name\": \"直播间发放活动1\",\n        \"activity_id\": \"738989xxxxxxx\",\n        \"live_activity\": {\n            \"clue_component_id\": \"YUX4DnyksSxxxxxx\",\n            \"notice_text\": \"主播发放提示语\",\n            \"coupon_task_type\": 1\n        },\n        \"coupon_meta_id\": \"7340989xxxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Activity/PromotionActivityUpdatePromotionActivityStatusV2Request.json",
    "content": "{\n    \"activity_id\": \"73290xxxxxxxx\",\n    \"status\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/DeveloperActivity/PromotionCouponCreateDeveloperActivityV1Request.json",
    "content": "{\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"721807xxxxxx5644204\",\n    \"merchant_activity_id\": \"abc\",\n    \"coupon_stock_number\": 100,\n    \"activity_name\": \"小程序内发券同步\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/DeveloperActivity/PromotionCouponCreateDeveloperActivityV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20230602111931B8431F7C63978600E24C\",\n    \"data\": {\n        \"activity_id\": \"702345xxxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/DeveloperActivity/PromotionCouponDeleteDeveloperActivityV1Request.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"activity_id\": \"7239968241735630892\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponBatchConsumeCouponV1Request.json",
    "content": "{\n    \"open_id\": \"ba253642-0590-40bc-xxx\",\n    \"consume_out_no\": \"123\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_id_list\": [\n        \"702345xxxxxx\",\n        \"702345xxxxxx\"\n    ],\n    \"order_id\": \"614167279916\",\n    \"consume_time\": 1676966474\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponBatchConsumeCouponV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"results\": [\n            {\n                \"coupon_id\": \"702345xxxxxx\",\n                \"err_no\": 0,\n                \"err_msg\": \"验券成功\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponBatchRollbackConsumeCouponV1Request.json",
    "content": "{\n    \"open_id\": \"ba253642-0590-40bc-xxx\",\n    \"consume_out_no\": \"123xxxxxxx\",\n    \"rollback_consume_out_no\": \"456xxxxxxx\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_id_list\": [\n        \"702345xxxxxx\",\n        \"702345xxxxxx\"\n    ],\n    \"order_id\": \"614167279916\",\n    \"rollback_consume_time\": 1676966474\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponBatchRollbackConsumeCouponV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"results\": [\n            {\n                \"coupon_id\": \"702345xxxxxx\",\n                \"err_no\": 0,\n                \"err_msg\": \"验券成功\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetBillDownloadUrlV1Request.json",
    "content": "{\n    \"bill_type\": \"receive_record\",\n    \"bill_date\": \"20230405\",\n    \"app_id\": \"ttec789ac573xxxxxx01\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetBillDownloadUrlV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"bill_download_url\": \"https://p0-open-promotion-private.byteimg.com/tos-cn-i-gyhr0m0lve/20160405_tt123456789_coupon_record.csv\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetCouponReceiveInfoV1Request.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650exxxx\",\n    \"open_id\": \"Cv4PoJXaTPnxxxx\",\n    \"coupon_status\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetCouponReceiveInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202304201146560B814XXXDB9D0B051956\",\n    \"data\": {\n        \"coupon_receive_list\": [\n            {\n                \"discount_type\": 2,\n                \"receive_desc\": \"领取描述\",\n                \"valid_end_time\": 1678716000,\n                \"talent_open_id\": \"Cv4PoJXaxxx63rNu\",\n                \"valid_begin_time\": 1678705200,\n                \"consume_path\": \"pages/index/index\",\n                \"coupon_id\": \"720998824905xxxx532\",\n                \"coupon_status\": 10,\n                \"discount_amount\": 1000,\n                \"min_pay_amount\": 10,\n                \"consume_desc\": \"使用描述\",\n                \"coupon_name\": \"券名称\",\n                \"merchant_meta_no\": \"merchant_demo\",\n                \"talent_account\": \"473945xxx83\",\n                \"receive_time\": 1678709372\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetTalentCouponV1Request.json",
    "content": "{\n    \"account_type\": 1,\n    \"talent_account\": \"7932234\",\n    \"open_id\": \"\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"702345xxxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponGetTalentCouponV1Response.json",
    "content": "{\n    \"data\": {\n        \"account_type\": 1,\n        \"talent_account\": \"7932234\",\n        \"app_id\": \"ttec789ac573xxxxxx01\",\n        \"coupon_meta_id\": \"702345xxxxxxx\",\n        \"status\": 1,\n        \"stock_limit\": 100\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"20230418153707479F50CDEC0653C4E448\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponSendCouponToDesignatedUserV1Request.json",
    "content": "{\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"open_id\": \"ba253642-0590-40bc-xxx\",\n    \"activity_id\": \"721807xxxxxx5644204\",\n    \"merchant_coupon_id\": \"uniq_coupon\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponSendCouponToDesignatedUserV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"20230602141441E708D3A77C64701C88EB\",\n    \"data\": {\n        \"coupon_info\": {\n            \"coupon_id\": \"70924xxxx555366\",\n            \"coupon_status\": 10,\n            \"discount_amount\": 1000,\n            \"discount_type\": 2,\n            \"merchant_meta_no\": \"45ed-8f3d\",\n            \"min_pay_amount\": 2000,\n            \"valid_begin_time\": 1685686441,\n            \"coupon_name\": \"奶茶立减10元券\",\n            \"receive_time\": 1685686482,\n            \"valid_end_time\": 1685772841\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponSetTalentCouponV1Request.json",
    "content": "{\n    \"account_type\": 1,\n    \"talent_account\": \"7932234\",\n    \"open_id\": \"\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"702345xxxxxxs\",\n    \"stock_limit\": 200,\n    \"award_stock_limit\": 20\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponUpdateTalentCouponStatusV1Request.json",
    "content": "{\n    \"account_type\": 1,\n    \"talent_account\": \"7932234\",\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"702345xxxxxxx\",\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionCouponUpdateTalentCouponStockV1Request.json",
    "content": "{\n    \"account_type\": 1,\n    \"talent_account\": \"54130000582\",\n    \"app_id\": \"ttcfdbbxxxxx\",\n    \"coupon_meta_id\": \"7223221208xxxx\",\n    \"action\": \"increase\",\n    \"number\": 20,\n    \"unique_key\": \"20230418152200abcd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponCreateCouponMetaV2Request.json",
    "content": "{\n    \"coupon_meta\": {\n        \"merchant_meta_no\": \"123xxxxxx\",\n        \"coupon_name\": \"三亚10日游专享券\",\n        \"discount_type\": 1,\n        \"discount_amount\": 1000,\n        \"min_pay_amount\": 2000,\n        \"receive_begin_time\": 1676984342,\n        \"receive_end_time\": 1676984442,\n        \"valid_type\": 1,\n        \"valid_duration\": 86400,\n        \"valid_begin_time\": 1676984342,\n        \"valid_end_time\": 1676984542,\n        \"consume_path\": \"pages/coupons/index?spm=1111&utm=22222\",\n        \"stock_number\": 1000,\n        \"receive_desc\": \"每人限领一张\",\n        \"consume_desc\": \"满500元可用\",\n        \"callback_url\": \"https://www.abc.com/xx/xx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponCreateCouponMetaV2Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\",\n    \"data\": {\n        \"coupon_meta_id\": \"702345xxxxxx\"\n    },\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponDeleteCouponMetaV1Request.json",
    "content": "{\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"702345xxxxxx\",\n    \"merchant_meta_no\": \"123xxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponGetCouponMetaStatisticsV1Request.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"coupon_meta_id\": \"7241832741367447613\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponGetCouponMetaStatisticsV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202306081640346D6CE7AD7121F504D69E\",\n    \"data\": {\n        \"activity_stats\": [\n            {\n                \"activity_id\": \"7242154741227077690\",\n                \"consumed_num\": 0,\n                \"received_num\": 1\n            }\n        ],\n        \"talent_stats\": [\n            {\n                \"talent_account\": \"7932234\",\n                \"talent_open_id\": \"Cv4PoJXaTPn63rNu\",\n                \"exposed_num\": 1234,\n                \"received_num\": 812,\n                \"consumed_num\": 764\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponModifyCouponMetaV2Request.json",
    "content": "{\n    \"coupon_meta\": {\n        \"coupon_meta_id\": \"721807xxxxxx5644204\",\n        \"coupon_name\": \"三亚10日游专享券\",\n        \"receive_begin_time\": 1676984342,\n        \"receive_end_time\": 1676984442,\n        \"valid_type\": 1,\n        \"valid_begin_time\": 1676984342,\n        \"valid_end_time\": 1676984542,\n        \"consume_path\": \"pages/coupons/index?spm=1111&utm=22222\",\n        \"receive_desc\": \"每人限领一张\",\n        \"consume_desc\": \"满500元使用\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponQueryActivityMetaDataV1Request.json",
    "content": "{\n    \"open_id\": \"f74be57c-7356-4868-814b-dd20cf20ddca\",\n    \"send_scene\": 4,\n    \"coupon_meta_id\": \"7288255536846340xxx\",\n    \"coupon_name\": \"好券模版\",\n    \"page_num\": 1,\n    \"page_size\": 10,\n    \"status\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponQueryActivityMetaDataV1Response.json",
    "content": "{\n    \"data\": {\n        \"total\": 1,\n        \"activity_list\": [\n            {\n                \"discount_type\": 1,\n                \"receive_end_time\": 1696995547,\n                \"remain_stock\": 10,\n                \"app_icon\": \"\",\n                \"consume_time_desc\": \"领取后 3000000 自然日内有效\",\n                \"coupon_icon\": \"https://p9-dexxer-sign.bytxxxxmg.com/tos-cn-i-zptclditwk/067a8aa4b371f26xxxxxxcab319.png~tplv-ke512zj2cu-144x144.jpeg?x-expires=2008056593&x-signature=vN4nWq%2B9fvcq2vNIX2I5HgedfMo%3D\",\n                \"coupon_meta_name\": \"api-im渠道\",\n                \"discount_amount\": 100000,\n                \"receive_begin_time\": 1696649954,\n                \"activity_id\": \"728779470083xxxxxx\",\n                \"activity_status\": 1,\n                \"app_name\": \"ii\",\n                \"discount_type_name\": \"立减券\",\n                \"app_id\": \"ttcfdbb966xxxxx0\",\n                \"consume_desc\": \"无门槛立减\",\n                \"coupon_meta_id\": \"7288xxxxxxxx340156\",\n                \"share_fission_desc\": \"分享被领取后无奖励\",\n                \"support_share_fission\": true,\n                \"total_stock\": 10\n            }\n        ]\n    },\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02169699342137500000000000000000000ffff0a7039acbdb087\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponQueryCouponMetaV2Request.json",
    "content": "{\n    \"coupon_meta_id\": \"702345xxxxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponQueryCouponMetaV2Response.json",
    "content": "{\n    \"coupon_meta\": {\n        \"coupon_meta_id\": \"702345xxxxxx\",\n        \"coupon_name\": \"三亚10日游专享券\",\n        \"merchant_meta_no\": \"KnV0oAsxg6\",\n        \"discount_type\": 1,\n        \"discount_amount\": 1000,\n        \"min_pay_amount\": 2000,\n        \"receive_begin_time\": 1676984342,\n        \"receive_end_time\": 1676984442,\n        \"valid_type\": 1,\n        \"valid_begin_time\": 1676984342,\n        \"valid_end_time\": 1676984542,\n        \"consume_path\": \"pages/coupons/index?spm=1111&utm=22222\",\n        \"stock_number\": 1000,\n        \"receive_desc\": \"领取须知\",\n        \"consume_desc\": \"使用须知\",\n        \"callback_url\": \"https://www.abcde.com/xx/xx\",\n        \"status\": 2,\n        \"related_type\": 1,\n        \"origin_id\": \"7309123xxxxxx\",\n        \"secret_source\": 1\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"log_id\": \"202008121419360101980821035705926A\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStatusV1Request.json",
    "content": "{\n    \"coupon_meta_id\": \"702345xxxxxxx\",\n    \"coupon_meta_status\": 1,\n    \"app_id\": \"ttec789ac573xxxxxx01\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/Promotion/CouponMeta/PromotionCouponUpdateCouponMetaStockV1Request.json",
    "content": "{\n    \"app_id\": \"ttec789ac573xxxxxx01\",\n    \"coupon_meta_id\": \"702345xxxxxxs\",\n    \"unique_key\": \"202302224522342425\",\n    \"action\": \"increase\",\n    \"number\": 200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCancelAuthOrderV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad712312312313213\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCreateAuthOrderV1Request.json",
    "content": "{\n    \"admissible_token\": \"twerwe123\",\n    \"out_auth_order_no\": \"out_order_1\",\n    \"notify_url\": \"https://www.asdasd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperCreateAuthOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"auth_order_id\": \"ad712312312313213\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperFinishAuthOrderV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad712312312313213\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAdmissibleAuthV1Request.json",
    "content": "{\n    \"open_id\": \"ffwqeqgyqwe312\",\n    \"total_amount\": 100,\n    \"merchant_uid\": \"71243123123\",\n    \"service_id\": \"64\",\n    \"scene\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAdmissibleAuthV1Response.json",
    "content": "{\n    \"data\": {\n        \"admissibility\": 1,\n        \"admissible_token\": \"gwqegqwey13123\",\n        \"expire_seconds\": 1200\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAuthOrderV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad712312312313213\",\n    \"out_auth_order_no\": \"out_order_1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Auth/TradeAuthDeveloperQueryAuthOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt312312313123\",\n        \"auth_order_id\": \"ad712312312313213\",\n        \"out_auth_order_no\": \"out_order_1\",\n        \"total_amount\": 100,\n        \"service_id\": \"64\",\n        \"scene\": 1,\n        \"status\": \"SERVING\",\n        \"open_id\": \"ffwqeqgyqwe312\",\n        \"merchant_uid\": \"71243123123\",\n        \"sign_time\": 1698128528000,\n        \"notify_url\": \"https://www.asdasd\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperClosePayOrderV1Request.json",
    "content": "{\n    \"pay_order_id\": \"ad712312662434\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperCreatePayOrderV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad7123123123123\",\n    \"out_pay_order_no\": \"out_pay_order_no_1\",\n    \"total_amount\": 100,\n    \"fee_detail_list\": [\n        {\n            \"title\": \"油费\",\n            \"amount\": 100,\n            \"description\": \"租车产生的油费\",\n            \"quantity\": 1\n        }\n    ],\n    \"notify_url\": \"https://www.asdasd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperCreatePayOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"pay_order_id\": \"ad712312662434\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperQueryPayOrderV1Request.json",
    "content": "{\n    \"pay_order_id\": \"ad712312662434\",\n    \"out_pay_order_no\": \"out_pay_order_no_1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Pay/TradeAuthDeveloperQueryPayOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt312312313123\",\n        \"auth_order_id\": \"ad7123123123123\",\n        \"out_pay_order_no\": \"out_pay_order_no_1\",\n        \"pay_order_id\": \"ad712312662434\",\n        \"status\": \"SUCCESS\",\n        \"total_amount\": 100,\n        \"fee_detail_list\": [\n            {\n                \"title\": \"油费\",\n                \"amount\": 100,\n                \"description\": \"租车产生的油费\",\n                \"quantity\": 1\n            }\n        ],\n        \"pay_channel\": 10,\n        \"channel_pay_id\": \"TPeqw123123213\",\n        \"pay_time\": 1698128528000,\n        \"merchant_uid\": \"713123123132\",\n        \"notify_url\": \"https://www.asdasd\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperCreateRefundV1Request.json",
    "content": "{\n    \"pay_order_id\": \"ad7123123123123\",\n    \"out_pay_refund_no\": \"out_pay_refund_no_1\",\n    \"refund_total_amount\": 100,\n    \"fee_detail_list\": [\n        {\n            \"title\": \"油费\",\n            \"amount\": 100,\n            \"description\": \"租车产生的油费\",\n            \"quantity\": 1\n        }\n    ],\n    \"refund_reason\": \"申请退款\",\n    \"notify_url\": \"https://www.asdasd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperCreateRefundV1Response.json",
    "content": "{\n    \"data\": {\n        \"pay_refund_id\": \"ad712312662312\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperQueryRefundV1Request.json",
    "content": "{\n    \"pay_refund_id\": \"ad712312662312\",\n    \"out_pay_refund_no\": \"out_pay_refund_no_1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/AuthDeposit/Refund/TradeAuthDeveloperQueryRefundV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt71313213\",\n        \"status\": \"SUCCESS\",\n        \"pay_order_id\": \"ad7123123123123\",\n        \"pay_refund_id\": \"ad712312662312\",\n        \"out_pay_refund_no\": \"out_pay_refund_no_1\",\n        \"refund_total_amount\": 100,\n        \"refund_reason\": \"申请退款\",\n        \"fee_detail_list\": [\n            {\n                \"title\": \"油费\",\n                \"amount\": 100,\n                \"description\": \"租车产生的油费\",\n                \"quantity\": 1\n            }\n        ],\n        \"refund_at\": 1698128528000,\n        \"notify_url\": \"https://www.asdasd\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperCreateSignPayV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad7123123123123\",\n    \"out_pay_order_no\": \"out_pay_order_no_1\",\n    \"total_amount\": 100,\n    \"merchant_uid\": \"7123123123\",\n    \"expire_seconds\": 300,\n    \"notify_url\": \"https://www.asdasd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperCreateSignPayV1Response.json",
    "content": "{\n    \"data\": {\n        \"pay_order_id\": \"ad712312662434\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperQuerySignPayV1Request.json",
    "content": "{\n    \"pay_order_id\": \"ad712312662434\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Pay/TradeAuthDeveloperQuerySignPayV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt312312313123\",\n        \"auth_order_id\": \"ad7123123123123\",\n        \"out_pay_order_no\": \"out_pay_order_no_1\",\n        \"pay_order_id\": \"ad712312662434\",\n        \"status\": \"SUCCESS\",\n        \"total_amount\": 100,\n        \"pay_channel\": 10,\n        \"channel_pay_id\": \"TPeqw123123213\",\n        \"pay_time\": 1698128528000,\n        \"merchant_uid\": \"713123123132\",\n        \"notify_url\": \"https://www.asdasd\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperCreateSignRefundV1Request.json",
    "content": "{\n    \"pay_order_id\": \"ad7123123123123\",\n    \"out_pay_refund_no\": \"out_pay_refund_no_1\",\n    \"refund_total_amount\": 100,\n    \"refund_reason\": \"申请退款\",\n    \"notify_url\": \"https://www.asdasd\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperCreateSignRefundV1Response.json",
    "content": "{\n    \"data\": {\n        \"pay_refund_id\": \"ad712312662312\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperQuerySignRefundV1Request.json",
    "content": "{\n    \"pay_refund_id\": \"ad712312662312\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Refund/TradeAuthDeveloperQuerySignRefundV1Response.json",
    "content": "{\n    \"data\": {\n        \"refund_list\": [\n            {\n                \"app_id\": \"tt71313213\",\n                \"status\": \"SUCCESS\",\n                \"pay_order_id\": \"ad7123123123123\",\n                \"pay_refund_id\": \"ad712312662312\",\n                \"out_pay_refund_no\": \"out_pay_refund_no_1\",\n                \"refund_total_amount\": 100,\n                \"refund_reason\": \"申请退款\",\n                \"refund_at\": 1698128528000,\n                \"create_at\": 1698128526000,\n                \"notify_url\": \"https://www.asdasd\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperQuerySignOrderV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad712312312313213\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperQuerySignOrderV1Response.json",
    "content": "{\n    \"data\": {\n        \"app_id\": \"tt312312313123\",\n        \"auth_order_id\": \"ad712312312313213\",\n        \"out_auth_order_no\": \"out_order_1\",\n        \"service_id\": \"64\",\n        \"status\": \"CANCEL\",\n        \"cancel_source\": 1,\n        \"open_id\": \"ffwqeqgyqwe312\",\n        \"sign_time\": 1698128528000,\n        \"notify_url\": \"https://www.asdasd\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeAuthDeveloper/PeriodicDeduction/Sign/TradeAuthDeveloperTerminateSignV1Request.json",
    "content": "{\n    \"auth_order_id\": \"ad712312312313213\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperFulfillPushStatusV1Request.json",
    "content": "{\n    \"order_id\": \"motb123123131\",\n    \"item_order_id_list\": [ \"motb123123132\" ],\n    \"to_status\": \"fulfilling\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperOrderQueryV1Request.json",
    "content": "{\n    \"out_order_no\": \"5x70VYh3of\",\n    \"order_id\": \"ac97KUfZJk\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperOrderQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"order_id\": \"motb52726742593307630520952\",\n        \"out_order_no\": \"ext_order_123\",\n        \"app_id\": \"tt123123123\",\n        \"pay_status\": \"PROCESS\",\n        \"pay_time\": 1692775192000,\n        \"pay_channel\": 1,\n        \"channel_pay_id\": \"2iu2082897r9hflquf\",\n        \"trade_time\": 1692775192000,\n        \"total_amount\": 1000,\n        \"discount_amount\": 0,\n        \"merchant_uid\": \"287484783\",\n        \"item_order_list\": [\n            {\n                \"item_order_id\": \"motb52726742593307630520952\",\n                \"sku_id\": \"1234123\",\n                \"item_order_amount\": 100\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperQueryCPSV1Request.json",
    "content": "{\n    \"order_id\": \"4kLRt6sr38\",\n    \"out_order_no\": \"S28IAfHiE5\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperQueryCPSV1Response.json",
    "content": "{\n    \"log_id\": \"ZENl7Tyibl\",\n    \"data\": {\n        \"order_id\": \"55mL78Gm1c\",\n        \"out_order_no\": \"S7dyiECO4T\",\n        \"total_commission_amount\": 1,\n        \"cps_item_list\": [\n            {\n                \"commission_amount\": 1,\n                \"commission_user_nickname\": \"owxulioyCe\",\n                \"source_type\": 1,\n                \"commission_rate\": 1,\n                \"sell_amount\": 1,\n                \"commission_user_douyinid\": \"d6jZBvnONT\",\n                \"task_id\": \"cclOwkyvq6\",\n                \"item_order_id\": \"65tbsv9DF8\",\n                \"status\": 1,\n                \"item_id\": 3102676463474216000\n            }\n        ]\n    },\n    \"err_no\": 1,\n    \"err_msg\": \"RDefuZRvyF\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperRefundAuditCallbackV1Request.json",
    "content": "{\n    \"refund_id\": \"motb71237362\",\n    \"refund_audit_status\": 2,\n    \"deny_message\": \"不同意退款\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperRefundCreateV1Request.json",
    "content": "{\n    \"order_id\": \"motb123123131\",\n    \"out_refund_no\": \"ext_123123\",\n    \"cp_extra\": \"extra_info\",\n    \"order_entry_schema\": {\n        \"path\": \"page/xxx\",\n        \"params\": \"{\\\"id\\\":1}\"\n    },\n    \"refund_total_amount\": 100,\n    \"notify_url\": \"https://xxx\",\n    \"item_order_detail\": [\n        {\n            \"item_order_id\": \"xxx\",\n            \"refund_amount\": 100\n        }\n    ],\n    \"refund_reason\": [\n        {\n            \"code\": 101,\n            \"text\": \"不想要了\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperRefundCreateV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\",\n    \"data\": {\n        \"refund_id\": \"motb7922312\",\n        \"refund_audit_deadline\": 151231321231\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperRefundQueryV1Request.json",
    "content": "{\n    \"refund_id\": \"ot1231231\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperRefundQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"refund_list\": [\n            {\n                \"merchant_audit_detail\": {\n                    \"audit_status\": \"AGREE\",\n                    \"need_refund_audit\": 1,\n                    \"refund_audit_deadline\": 1673253628929\n                },\n                \"create_at\": 1671994501000,\n                \"refund_at\": 1672994501000,\n                \"refund_status\": \"SUCCESS\",\n                \"refund_total_amount\": 1992,\n                \"item_order_detail\": [\n                    {\n                        \"item_order_id\": \"motb700000000101\",\n                        \"refund_amount\": 996\n                    },\n                    {\n                        \"refund_amount\": 996,\n                        \"item_order_id\": \"motb700000000102\"\n                    }\n                ],\n                \"message\": \"\",\n                \"order_id\": \"motb700000000777\",\n                \"out_refund_no\": \"ext_refund_no_812832\",\n                \"refund_id\": \"motb7000000007666\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"2022092115392201020812109511046\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperSettleCreateV1Request.json",
    "content": "{\n    \"out_order_no\": \"out_order_example_1\",\n    \"out_settle_no\": \"out_settle_example_1\",\n    \"settle_desc\": \"分账描述\",\n    \"settle_params\": \"[{\\\"merchant_uid\\\":\\\"分账方商户号1\\\",\\\"amount\\\":100}]\",\n    \"ext\": \"test\",\n    \"notify_url\": \"https://www.xxxx.com\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperSettleCreateV1Response.json",
    "content": "{\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"02169349723582500000000000000000000ffff0a707cb7a97ae9\",\n    \"data\": {\n        \"wallet_settle_id\": \"7273456075280828716\",\n        \"settle_id\": \"ots72735132864849697720652\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperSettleQueryV1Request.json",
    "content": "{\n    \"out_order_no\": \"\",\n    \"out_settle_no\": \"\",\n    \"order_id\": \"ot7053735385750849836\",\n    \"settle_id\": \"\",\n    \"app_id\": \"test123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperSettleQueryV1Response.json",
    "content": "{\n    \"data\": [\n        {\n            \"settle_amount\": 20,\n            \"cp_extra\": \"\",\n            \"out_settle_no\": \"out_settle_id_motb72736435031531871160652\",\n            \"order_id\": \"motb72736435031531871160652\",\n            \"out_order_no\": \"test_1693540312890\",\n            \"platform_ticket\": 0,\n            \"rake\": 0,\n            \"settle_at\": 1693540334000,\n            \"settle_detail\": \"商户号boe_real_pay-分成金额(分)4\",\n            \"commission\": 16,\n            \"item_order_id\": \"\",\n            \"settle_id\": \"ots72735132864850025400652\",\n            \"settle_status\": \"SUCCESS\"\n        }\n    ],\n    \"err_msg\": \"\",\n    \"err_no\": 0,\n    \"log_id\": \"2023090114051928011C13A3AFCC67A50E\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperTagQueryV1Request.json",
    "content": "{\n    \"goods_type\": 101\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/TradeBasicDeveloper/TradeBasicDeveloperTagQueryV1Response.json",
    "content": "{\n    \"data\": {\n        \"tag_detail_list\": [\n            {\n                \"tag_group_id\": \"tag_group_7267090101199847468\",\n                \"rule_list\": [\n                    {\n                        \"refund_rule\": {\n                            \"biz_status\": \"FULFILL_WAIT\",\n                            \"merchant_audit_type\": 2,\n                            \"refund_type\": 3\n                        },\n                        \"rule_id\": \"refund_rule_7267012070992805932\",\n                        \"rule_type\": 1\n                    },\n                    {\n                        \"refund_rule\": {\n                            \"biz_status\": \"FULFILLING\",\n                            \"merchant_audit_type\": 1,\n                            \"refund_type\": 2\n                        },\n                        \"rule_id\": \"refund_rule_7267012070992838700\",\n                        \"rule_type\": 1\n                    },\n                    {\n                        \"refund_rule\": {\n                            \"biz_status\": \"FULFILL_DONE\",\n                            \"merchant_audit_type\": 2,\n                            \"refund_type\": 1\n                        },\n                        \"rule_id\": \"refund_rule_7267012070992871468\",\n                        \"rule_type\": 1\n                    }\n                ],\n                \"tag_list\": [\n                    {\n                        \"biz_line\": 2001,\n                        \"goods_type\": 101,\n                        \"tag_descs\": [\n                            \"号码实名定制前可全额退款\"\n                        ],\n                        \"tag_id\": \"tag_7267090101199487020\",\n                        \"tag_name\": \"未制卡全额退\",\n                        \"tag_type\": 1\n                    },\n                    {\n                        \"tag_name\": \"制卡后协商退\",\n                        \"tag_type\": 1,\n                        \"biz_line\": 2001,\n                        \"goods_type\": 101,\n                        \"tag_descs\": [\n                            \"号码制卡完成后如有特殊退款诉求可与卖家协商退款\"\n                        ],\n                        \"tag_id\": \"tag_7267090101199519788\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"02169279434515800000000000000000000ffff0a9824e43dffea\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/AppsJsCode2SessionV2Request.json",
    "content": "﻿{\n    \"appid\": \"ttabc****\",\n    \"secret\": \"d428**************7\",\n    \"anonymous_code\": \"\",\n    \"code\": \"iOyVA5hc*******\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/AppsJsCode2SessionV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"session_key\": \"hZy6t19VPjFqm********\",\n        \"openid\": \"V3WvSshYq9******\",\n        \"anonymous_openid\": \"\",\n        \"unionid\": \"f7510d9ab***********\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/AppsTokenV2Request.json",
    "content": "﻿{\n    \"appid\": \"ttabc*****\",\n    \"secret\": \"d428***********\",\n    \"grant_type\": \"client_credential\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/AppsTokenV2Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"access_token\": \"0801121***********\",\n        \"expires_in\": 7200\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/AppsCapacityUploadMaterialV1Response.json",
    "content": "{\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"data\": {\n        \"path\": \"xxxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityCreateClueComponentInfoV1Request.json",
    "content": "{\n    \"config_name\": \"线索组件测试1\",\n    \"region\": \"110101\",\n    \"category_id\": \"8,9,12\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityCreateClueComponentInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"xxxx\",\n    \"data\": {\n        \"config_id\": \"xxxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityDeleteClueComponentInfoV1Request.json",
    "content": "{\n    \"config_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityQueryClueComponentInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"log_id\": \"xxx\",\n    \"data\": {\n        \"clue_component_list\": [\n            {\n                \"config_id\": \"xxx\",\n                \"config_name\": \"xxx\",\n                \"region\": \"xxx\",\n                \"category_id\": \"xxx\",\n                \"state\": \"xxx\",\n                \"region_name\": \"xxx\",\n                \"category_name\": \"xxx\"\n            }\n        ],\n        \"cert_status\": false,\n        \"total\": 32\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/ClueComponent/AppsCapacityUpdateClueComponentInfoV1Request.json",
    "content": "{\n    \"config_id\": \"xxx\",\n    \"config_name\": \"线索组件测试1\",\n    \"region\": \"110101\",\n    \"category_id\": \"8,9,12\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityBindDoudianAccountV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"doudian_account_status\": 1,\n        \"doudian_register_url\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityCreateDoudianAppV1Request.json",
    "content": "{\n    \"shop_name\": \"xxx\",\n    \"note\": \"xxx\",\n    \"screen_shot_list\": [ \"xxx\", \"xxx\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityCreateDoudianAppV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"doudian_appid\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryBindDoudianAccountV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"doudian_account_status\": 3,\n        \"account\": \"x\",\n        \"user_name\": \"xx\",\n        \"subject\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianAppV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"bind_status\": 3,\n        \"doudian_appid\": \"xxx\",\n        \"doudian_app_name\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Doudian/AppsCapacityQueryDoudianShopInfoV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"\",\n    \"data\": {\n        \"ShopIdList\": [\n            {\n                \"MaAppId\": \"tt36b44009a99e9b32\",\n                \"ShopId\": 123456,\n                \"ShopName\": \"店铺\",\n                \"ToutiaoId\": 1234567890,\n                \"DoudianAppId\": 23333\n            }\n        ]\n    },\n    \"log_id\": \"20230702174602467E6D65A8F43145964D\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Mount/AppsCapacityApplyCapacityV1Request.json",
    "content": "{\n    \"capacity_key\": \"video_self_mount\",\n    \"apply_reason\": \"申请原因\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Capacity/Mount/AppsCapacityQueryApplyStatusV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"data\": {\n        \"status\": 1,\n        \"reason\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Censor/AppsCensorImageRequest.json",
    "content": "﻿{\n    \"app_id\": \"ttxxxxxxxxxxxxxxxx\",\n    \"access_token\": \"0d495e15563015e3f599c742384f546cac4ce63911464106af8094a0581bae7386dcff77b1b9b6fc4c16b69c9048ba2a2846c7ae8d8f07aa8b84a52bcb4d560a5b8724d99f8816600b5xxxxxxxxxx\",\n    \"image\": \"https://image.url\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Censor/AppsCensorImageResponse.json",
    "content": "﻿{\n    \"error\": 0,\n    \"message\": \"image censor success\",\n    \"predicts\": [\n        {\n            \"model_name\": \"anniversary_flag\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"bloody\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_boom\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"cartoon_leader\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"fandongtaibiao\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"leader_recognition\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_money\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"plant_ppx\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"porn\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"sensitive_flag\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_sensitive_map\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"sensitive_text\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_social_event\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"high_risk_terrorist_uniform\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"party_founding_memorial\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"cartoon_porn\",\n            \"hit\": false\n        },\n        {\n            \"model_name\": \"great_hall\",\n            \"hit\": false\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Chat/AppsChatCustomerServiceUrlResponse.json",
    "content": "{\n    \"data\": {\n        \"url\": \"https://lf3-csp.bytetos.com/xxx.html\"\n    },\n    \"err_no\": 0,\n    \"err_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/CustomerService/AppsCustomerServiceUrlResponse.json",
    "content": "{\n    \"data\": {\n        \"url\": \"https://lf3-csp.bytetos.com/xxx.html\"\n    },\n    \"err_no\": 0,\n    \"err_tips\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Live/AppsLiveSetBlackWhiteListV1Request.json",
    "content": "{\n    \"app_id\": \"ttc19ab7275ea4a7****\",\n    \"uniq_id\": \"douyinhao\",\n    \"type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Message/AppsMessageCustomSendRequest.json",
    "content": "﻿{\n    \"open_id\": \"\",\n    \"msg_type\": \"text\",\n    \"content\": \"\",\n    \"pic_url\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Order/AppsOrderDeleteRequest.json",
    "content": "{\n    \"access_token\": \"accfggdggxx\",\n    \"openid\": \"dsfasgagagahadhaxxx\",\n    \"appname\": \"douyin\",\n    \"order_id\": \"AQAATGagQ7KQCxMJEj7kHuUjTxxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Order/AppsOrderPushV2Request.json",
    "content": "﻿{\n    \"client_key\": \"\",\n    \"access_token\": \"\",\n    \"ext_shop_id\": \"\",\n    \"app_name\": \"douyin\",\n    \"open_id\": \"\",\n    \"update_time\": 0,\n    \"order_detail\": \"\",\n    \"order_type\": 0,\n    \"scene\": \"\",\n    \"launch_from\": \"\",\n    \"location\": \"\",\n    \"extra\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Order/AppsOrderPushV2Response.json",
    "content": "﻿{\n    \"err_code\": 40014,\n    \"err_msg\": \"bad access token\",\n    \"body\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Qrcode/AppsQrcodeRequest.json",
    "content": "﻿{\n    \"appname\": \"toutiao\",\n    \"access_token\": \"XXX\",\n    \"path\": \"\",\n    \"width\": 430,\n    \"line_color\": {\n        \"r\": 0,\n        \"g\": 0,\n        \"b\": 0\n    },\n    \"background\": {\n        \"r\": 255,\n        \"g\": 255,\n        \"b\": 255\n    },\n    \"set_icon\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/ShareConfig/AppsShareConfigRequest.json",
    "content": "﻿{\n    \"appid\": \"tt5daf2b12c28****\",\n    \"uniq_id\": \"20107****\",\n    \"access_token\": \"08011218466f624b33532f75514364726168334243325a7********\",\n    \"type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/ShareConfig/AppsShareConfigResponse.json",
    "content": "﻿{\n    \"data\": \"success\",\n    \"err_no\": 0,\n    \"err_tips\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/SubscribeNotification/AppsSubscribeNotificationDeveloperNotifyV1Request.json",
    "content": "﻿{\n    \"access_token\": \"b13b4c7679150245dac2249aafd8aca8e9dceaff9e22cee05e1d30fb67e18916358d73c235fcaab9007ec0976ee40d26ee56a43c32398b9d6680105e5535cd1ef40a803d790668581************\",\n    \"app_id\": \"31198cf00b********\",\n    \"tpl_id\": \"MSG38489d04608c5f0fdeb565fc5114afff6410*******\",\n    \"open_id\": \"36d4bd3c8****\",\n    \"data\": {\n        \"版本号\": \"v1.0\",\n        \"版本描述\": \"新版本发布了\"\n    },\n    \"page\": \"pages/index?a=b\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxAddTaskRequest.json",
    "content": "﻿{\n    \"task_name\": \"测试12333\",\n    \"access_token\": \"xxxx\",\n    \"task_settle_type\": 1,\n    \"appid\": \"tt933ee5830c062fa6\",\n    \"start_page\": \"xxx\",\n    \"anchor_title\": \"测试锚点标\",\n    \"task_icon\": \"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.soutu123.cn%2Felement_origin_min_pic%2F01%2F35%2F26%2F55573bdad4cb2f4.jpg%21%2Ffw%2F700%2Fquality%2F90%2Funsharp%2Ftrue%2Fcompress%2Ftrue&refer=http%3A%2F%2Fpic.soutu123.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621156196&t=848be9cae3f5bfb86a12d5021cbf9c1f\",\n    \"task_start_time\": 1618285226,\n    \"task_end_time\": 1620963626,\n    \"task_desc\": \"1. sss <br>2.sss2\",\n    \"refer_videos\": [\n        \"http://boe.v.douyin.com/Z0JRdbe/\",\n        \"http://boe.v.douyin.com/Z0JFXvp/\"\n    ],\n    \"task_tags\": [\"测试类\", \"心理\"],\n    \"refer_ma_captures\": [\n        \"https://static.runoob.com/images/demo/demo1.jpg\",\n        \"https://static.runoob.com/images/demo/demo2.jpg\"\n    ],\n    \"refer_video_captures\": [\"https://static.runoob.com/images/demo/demo3.jpg\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxAddTaskResponse.json",
    "content": "﻿{\n    \"message\": \"success\",\n    \"error\": 0,\n    \"data\": {\n        \"task_id\": \"12848125\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxQueryAppTaskIdRequest.json",
    "content": "{\n    \"access_token\": \"ba253642059040bc9bdf9a1334\",\n    \"appid\": \"abcdefgh123456\",\n    \"create_start_time\": 1657728000,\n    \"create_end_time\": 1658073600\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxQueryAppTaskIdResponse.json",
    "content": "{\n    \"data\": [ 1130941336206704680, 1130954062622638121, 1130965975075143722 ],\n    \"error\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxQueryTaskVideoDataRequest.json",
    "content": "{\n    \"access_token\": \"ba253642059040bc9bdf9a1334\",\n    \"appid\": \"abcdefgh123456\",\n    \"task_ids\": [\n        1129795595081908261\n    ],\n    \"video_publish_start_time\": 1660114780,\n    \"video_publish_end_time\": 1660492800\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxQueryTaskVideoDataResponse.json",
    "content": "{\n    \"data\": [\n        {\n            \"author\": \"test_author1\",\n            \"clicks\": 107,\n            \"comments\": 109,\n            \"douyin_id\": \"id1234561\",\n            \"expected_profit\": 0.01,\n            \"likes\": 104,\n            \"micro_app_title\": \"Title\",\n            \"publish_time\": 1660060800,\n            \"shares\": 106,\n            \"task_id\": 1127955394961539110,\n            \"task_name\": \"test_task_name\",\n            \"video_id\": 1129775324556119340,\n            \"VideoLink\": \"test_link\",\n            \"video_title\": \"test_title\",\n            \"video_views\": 108\n        },\n        {\n            \"author\": \"test_author2\",\n            \"clicks\": 106,\n            \"comments\": 109,\n            \"douyin_id\": \"id1234562\",\n            \"expected_profit\": 0.01,\n            \"likes\": 103,\n            \"micro_app_title\": \"104\",\n            \"publish_time\": 1660060800,\n            \"shares\": 105,\n            \"task_id\": 1127955394961539111,\n            \"task_name\": \"mock数据2\",\n            \"video_id\": 1130773033035337001,\n            \"VideoLink\": \"该视频链接不可查看，原不可查看原因可能为：审核下架、被作者删除、仅作者本人或好友可见\",\n            \"video_title\": \"该视频标题不可查看，不可查看原因可能为：审核下架、被作者删除、仅作者本人或好友可见\",\n            \"video_views\": 108\n        }\n    ],\n    \"error\": 0,\n    \"message\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateOrientTalentsRequest.json",
    "content": "{\n    \"access_token\": \"0801121846315443627a326645433874682b7347326\",\n    \"appid\": \"ttf31985a46c214faf\",\n    \"douyin_ids\": [\n        \"lw1352552\",\n        \"9423515316\"\n    ],\n    \"op_type\": 1,\n    \"task_id\": 7218760632718443557\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateOrientTalentsResponse.json",
    "content": "{\n    \"data\": {\n        \"update_info_list\": [\n            {\n                \"douyin_id\": \"lw1352552\",\n                \"update_result\": \"请求成功，已添加\"\n            }\n        ]\n    },\n    \"message\": \"success\",\n    \"error\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateStatusRequest.json",
    "content": "{\n    \"access_token\": \"122131231231*******\",\n    \"task_id\": 112233,\n    \"appid\": \"tt933ee5830c062fa6\",\n    \"task_status\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateStatusResponse.json",
    "content": "{\n    \"message\": \"success\",\n    \"error\": 0,\n    \"data\": {\n        \"task_id\": \"12848125\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateTaskRequest.json",
    "content": "{\n    \"access_token\": \"122131231231*******\",\n    \"task_id\": 112233,\n    \"task_name\": \"测试12333\",\n    \"task_settle_type\": 1,\n    \"appid\": \"tt933ee5830c062fa6\",\n    \"start_page\": \"xxx\",\n    \"anchor_title\": \"测试锚点标\",\n    \"task_icon\": \"xxx\",\n    \"task_start_time\": 1618285226,\n    \"task_end_time\": 1620963626,\n    \"task_desc\": \"1. sss <br>2.sss2\",\n    \"refer_videos\": [\n        \"http://boe.v.douyin.com/Z0JRdbe/\",\n        \"http://boe.v.douyin.com/Z0JFXvp/\"\n    ],\n    \"task_tags\": [ \"测试类\", \"心理\" ],\n    \"refer_ma_captures\": [\n        \"https://static.runoob.com/images/demo/demo1.jpg\",\n        \"https://static.runoob.com/images/demo/demo2.jpg\"\n    ],\n    \"refer_video_captures\": [ \"https://static.runoob.com/images/demo/demo3.jpg\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/TaskBox/AppsTaskBoxUpdateTaskResponse.json",
    "content": "{\n    \"message\": \"success\",\n    \"error\": 0,\n    \"data\": {\n        \"task_id\": \"12848125\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Video/AppsConvertOpenItemIdToEncryptIdRequest.json",
    "content": "﻿{\n    \"video_ids\": [\n        \"@ty******************\",\n        \"@ty******************\",\n        \"@ty******************\"\n    ],\n    \"access_key\": \"tt*************\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Video/AppsConvertOpenItemIdToEncryptIdResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"data\": {\n        \"convert_result\": {\n            \"@ty******************\": \"dm**************\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Video/AppsConvertVideoIdToOpenItemIdRequest.json",
    "content": "﻿{\n    \"app_id\": \"tt5d***\",\n    \"video_ids\": [\n        \"131041******************\",\n        \"131042******************\",\n        \"131051******************\"\n    ],\n    \"access_key\": \"tt5d***********\",\n    \"access_token\": \"0801121846********\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Apps/Video/AppsConvertVideoIdToOpenItemIdResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"data\": {\n        \"convert_result\": {\n            \"13104******\": \"Qy**************\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateOrderV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_order_no\": \"out_order_no_1\",\n    \"total_amount\": 12800,\n    \"subject\": \"测试商品\",\n    \"body\": \"测试商品\",\n    \"valid_time\": 180,\n    \"sign\": \"d716027b7b5a91a3319a061d818cc9cc\",\n    \"cp_extra\": \"一些附加信息\",\n    \"notify_url\": \"https://xxx.com/callback\",\n    \"disable_msg\": 0,\n    \"msg_page\": \"pages/index\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateOrderV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"data\": {\n        \"order_id\": \"6819903302604491021\",\n        \"order_token\": \"CgwIARDiDRibDiABKAESTgpMbBhsCG7V1MPGAvpICgUSyGcuNOVb/BnCOi9EXgAxIxDqLTwCA6Hd3tNrCde28o0qjmAJQsmLrD18ifr5QktalszSSmTpHCqEm3h55xoA\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateRefundV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_order_no\": \"out_order_no_1\",\n    \"out_refund_no\": \"out_refund_no_1\",\n    \"total_amount\": 19800,\n    \"refund_amount\": 19800,\n    \"reason\": \"订单退款\",\n    \"cp_extra\": \"\",\n    \"notify_url\": \"\",\n    \"sign\": \"6eeb2a4d336f9c7c38f05acb598b7dcc\",\n    \"thirdparty_id\": \"\",\n    \"disable_msg\": 0,\n    \"msg_page\": \"\",\n    \"all_settle\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateRefundV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"refund_no\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateReturnV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_settle_no\": \"sd_T220416122114165008287419707173\",\n    \"settle_no\": \"7067781639492913452\",\n    \"out_return_no\": \"out_return_7067781639492913452\",\n    \"merchant_uid\": \"XCXP_000003089\",\n    \"return_amount\": 30,\n    \"return_desc\": \"分账回退demo\",\n    \"notify_url\": \"\",\n    \"cp_extra\": \"2856\",\n    \"sign\": \"d98e6af1c490b36f7b72e2037f81a511\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayCreateReturnV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"return_info\": {\n        \"cp_extra\": \"\",\n        \"fail_reason\": \"SUCCESS\",\n        \"finish_time\": 1647332403,\n        \"merchant_uid\": \"XCXP_000003087\",\n        \"out_return_no\": \"ttcfdbb96650e33350\",\n        \"out_settle_no\": \"ot_settle_7067682742942583084_2\",\n        \"return_amount\": 1,\n        \"return_no\": \"7075228873218099500\",\n        \"return_status\": \"SUCCESS\",\n        \"settle_no\": \"7075237473193855276\",\n        \"thirdparty_id\": \"tta4bad2073b9009c7\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryOrderV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_order_no\": \"out_order_no_1\",\n    \"sign\": \"569168789858734fecef2d5ae604ff1a\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryOrderV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"out_order_no\": \"out_order_no_1\",\n    \"order_id\": \"6979643835974486313\",\n    \"payment_info\": {\n        \"total_fee\": 68800,\n        \"order_status\": \"SUCCESS\",\n        \"pay_time\": \"2021-07-01 01:43:15\",\n        \"way\": 2,\n        \"channel_no\": \"2021070122001432551415940569\",\n        \"channel_gateway_no\": \"12107010014028882037\",\n        \"seller_uid\": \"6943058549596520\",\n        \"item_id\": \"6943058549596520\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryRefundV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_refund_no\": \"out_refund_no_1\",\n    \"sign\": \"47d7b7c65b9d2d6a1142e84c7ee202e5\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryRefundV1Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"refundInfo\": {\n        \"refund_no\": \"N7067470744111892000\",\n        \"refund_amount\": 190,\n        \"refund_status\": \"SUCCESS\",\n        \"refunded_at\": 1645523798,\n        \"is_all_settled\": false,\n        \"cp_extra\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryReturnV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"return_no\": \"7069590250007333000\",\n    \"out_return_no\": \"7067781639492913452\",\n    \"sign\": \"d98e6af1c490b36f7b72e2037f81a511\",\n    \"thirdparty_id\": \"tta4bad2073b900000\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQueryReturnV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"return_info\": {\n        \"cp_extra\": \"\",\n        \"fail_reason\": \"SUCCESS\",\n        \"finish_time\": 1647332403,\n        \"merchant_uid\": \"XCXP_000003087\",\n        \"out_return_no\": \"ttcfdbb96650e33350\",\n        \"out_settle_no\": \"ot_settle_7067682742942583084_2\",\n        \"return_amount\": 1,\n        \"return_no\": \"7075228873218099500\",\n        \"return_status\": \"SUCCESS\",\n        \"settle_no\": \"7075237473193855276\",\n        \"thirdparty_id\": \"tta4bad2073b9009c7\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQuerySettleV1Request.json",
    "content": "﻿{\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"out_settle_no\": \"out_settle_no_1\",\n    \"sign\": \"ad484fa21a1fd788490c25ac3779a73a\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPayQuerySettleV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"settle_info\": {\n        \"settle_no\": \"69822583687211557\",\n        \"settle_amount\": 5990,\n        \"settle_status\": \"SUCCESS\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPaySettleV1Request.json",
    "content": "﻿{\n    \"out_settle_no\": \"out_settle_no_1\",\n    \"out_order_no\": \"out_order_no_1\",\n    \"settle_desc\": \"分账\",\n    \"notify_url\": \"https://your.callback.url\",\n    \"cp_extra\": \"2856\",\n    \"app_id\": \"tt07e3715e98c9aac0\",\n    \"sign\": \"d98e6af1c490b36f7b72e2037f81a511\",\n    \"settle_params\": \"[{\\\"merchant_uid\\\":\\\"696458350318359362\\\",\\\"amount\\\":60}]\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/Order/AppsECPaySettleV1Response.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"settle_no\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSCreateMerchantRequest.json",
    "content": "﻿{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"access_token\": \"abc123czxhc84392s123ahdbz9213cdnzujncjznuqh12389834bhdb8bchzj8182jdsjaju123\",\n    \"thirdparty_id\": \"\",\n    \"component_access_token\": \"\",\n    \"sub_merchant_id\": \"test_receive_92\",\n    \"type\": 2,\n    \"callback_url\": \"https://www.bytedance.com/cn\",\n    \"channels\": [\"wx\"],\n    \"merchant_type\": 2,\n    \"merchant_name\": \"北京字节跳动有限公司\",\n    \"merchant_short_name\": \"字节跳动\",\n    \"province_code\": \"110000\",\n    \"city_code\": \"110100\",\n    \"district_code\": \"110107\",\n    \"registered_addr\": \"北京市海淀区北三环西路43号2号楼三层303室\",\n    \"business_license\": {\n        \"business_license_type\": 3,\n        \"business_license_code\": \"130429199205274617\",\n        \"business_license_picurl\": {\n            \"wx\": \"tos-cn-i-01omznotxb/565352443d7c44b79aa135583ad64d11\"\n        },\n        \"begin_date\": \"20211231\",\n        \"end_date\": \"99991231\",\n        \"address\": \"浙江省杭州市\"\n    },\n    \"legal_person\": {\n        \"id_type\": 1,\n        \"id_no\": \"13213429731104601X\",\n        \"name\": \"张三\",\n        \"front_pic_url\": {\n            \"wx\": \"tos-cn-i-01omznotxb/ad03b8461e48478c980d03f34d611625\"\n        },\n        \"back_pic_url\": {\n            \"wx\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\"\n        },\n        \"begin_date\": \"20211231\",\n        \"exp_date\": \"99991231\",\n        \"address\": \"北京市海淀区北三环西路43号2号楼三层303室\"\n    },\n    \"merchant_card_info\": {\n        \"account_name\": \"北京字节跳动有限公司\",\n        \"account_no\": \"110932121411301\",\n        \"bank_full_name\": \"招商银行股份有限公司北京首体支行\",\n        \"settle_type\": 2,\n        \"card_type\": \"DC\",\n        \"settlement_cert_pic\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\",\n        \"relation_cert_pic\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\",\n        \"other_cert_pics\": [\n            \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\",\n            \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\"\n        ]\n    },\n    \"merchant_operation_info\": {\n        \"manage_name\": \"张三\",\n        \"manage_mobile\": \"18388888888\",\n        \"manage_person_type\": 2,\n        \"manage_id_no\": \"110101199003078531\",\n        \"manage_email\": \"bytedance@163.com\",\n        \"shop_name\": \"字节跳动\",\n        \"shop_url\": \"http://www.bytedance.com\",\n        \"id_type\": 1,\n        \"id_begin_date\": \"20211231\",\n        \"id_exp_date\": \"99991231\",\n        \"id_front_pic_url\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\",\n        \"id_back_pic_url\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\",\n        \"business_authorization_letter\": \"tos-cn-i-01omznotxb/1e19e6ba8b1e4755a886ab6a7447496c\"\n    },\n    \"industry_code\": [\"1520\"],\n    \"sign\": \"5ee5474aff4e5623f464fd6bf12322bf\",\n    \"out_order_id\": \"s90219201291021920121212x-02\",\n    \"create_name\": \"李四\",\n    \"beneficiary_type\": \"LEGAL\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSCreateMerchantResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"成功\",\n    \"apply_id\": \"SMA202202212156514\",\n    \"merchant_id\": \"70372492201318182840\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSQueryMerchantStatusRequest.json",
    "content": "﻿{\n    \"app_id\": \"ttdb96ad2b44aeff3301\",\n    \"sign\": \"c639b06f45e74c7b8025acbb45f04bb1\",\n    \"merchant_id\": \"69824283230789983130\",\n    \"sub_merchant_id\": \"\",\n    \"thirdparty_id\": \"ttc4a8b2155b82682f\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Apply/AppsECPaySaaSQueryMerchantStatusResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"merchant_status_info\": {\n        \"alipay\": {\n            \"status\": \"SUCCESS\",\n            \"reject_reason\": \"\",\n            \"legal_validation_url\": \"\",\n            \"legal_sign_url\": \"\",\n            \"merchant_id\": \"69824283230789983130\"\n        },\n        \"hz\": {\n            \"status\": \"PROCESSING\",\n            \"reject_reason\": \"\",\n            \"legal_validation_url\": \"\",\n            \"legal_sign_url\": \"\",\n            \"merchant_id\": \"69824283230789983130\"\n        },\n        \"wx\": {\n            \"status\": \"SUCCESS\",\n            \"reject_reason\": \"\",\n            \"legal_validation_url\": \"\",\n            \"legal_sign_url\": \"\",\n            \"merchant_id\": \"69824283230789983130\"\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddMerchantRequest.json",
    "content": "﻿{\n    \"component_access_token\": \"\",\n    \"thirdparty_component_id\": \"\",\n    \"url_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddMerchantResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"url\": \"\",\n    \"merchant_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddSubMerchantRequest.json",
    "content": "﻿{\n    \"sub_merchant_id\": \"\",\n    \"thirdparty_id\": \"\",\n    \"url_type\": 1,\n    \"sign\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAddSubMerchantResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"url\": \"\",\n    \"merchant_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAppAddSubMerchantRequest.json",
    "content": "﻿{\n    \"sub_merchant_id\": \"\",\n    \"app_id\": \"\",\n    \"url_type\": 1,\n    \"sign\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSAppAddSubMerchantResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"url\": \"\",\n    \"merchant_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSGetAppMerchantRequest.json",
    "content": "﻿{\n    \"app_id\": \"\",\n    \"thirdparty_id\": \"\",\n    \"url_type\": 1,\n    \"sign\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/PageLinks/AppsECPaySaaSGetAppMerchantResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"url\": \"\",\n    \"merchant_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawRequest.json",
    "content": "﻿{\n    \"thirdparty_id\": \"\",\n    \"app_id\": \"tt55ed2350ca8b68ec01\",\n    \"merchant_uid\": \"70775300146143419322\",\n    \"channel_type\": \"alipay\",\n    \"withdraw_amount\": 100,\n    \"out_order_id\": \"2022032320105034661545406055\",\n    \"sign\": \"6ba1cce7bb9b157102f2c382e72fdd11\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSMerchantWithdrawResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"order_id\": \"7078192267961368620\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceRequest.json",
    "content": "﻿{\n    \"thirdparty_id\": \"tta4bad2073b9009c7\",\n    \"app_id\": \"\",\n    \"merchant_uid\": \"70775300146143419322\",\n    \"channel_type\": \"alipay\",\n    \"sign\": \"6ba1cce7bb9b157409f321b82e72fdd1f\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryMerchantBalanceResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"account_info\": {\n        \"online_balance\": 20,\n        \"withdrawable_balacne\": 100000,\n        \"freeze_balance\": 200000\n    },\n    \"settle_info\": {\n        \"settle_type\": 2,\n        \"settle_account\": \"bytedance@163.com\",\n        \"bankcard_no\": \"\",\n        \"bank_name\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderRequest.json",
    "content": "﻿{\n    \"thirdparty_id\": \"tta4bad2073b9009c7\",\n    \"app_id\": \"\",\n    \"merchant_uid\": \"70775300146143419322\",\n    \"channel_type\": \"alipay\",\n    \"out_order_id\": \"2022032320105034661545406055\",\n    \"sign\": \"6ba1cce7bb9b157409f2cb82e72fdd1f\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsECPay/SaaS/Withdraw/AppsECPaySaaSQueryWithdrawOrderResponse.json",
    "content": "﻿{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"status\": \"SUCCESS\",\n    \"status_msg\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletAddCoinRequest.json",
    "content": "﻿{\n    \"openid\": \"jjiemnnuyiopqmpvmmiji\",\n    \"appid\": \"tt899008766\",\n    \"ts\": 1507530737,\n    \"zone_id\": \"1\",\n    \"pf\": \"android\",\n    \"present_counts\": 123,\n    \"bill_no\": \"89jjnjkkmmku939\",\n    \"mp_sig\": \"39271a12d8d56b0395981a0990a9e75ae239c54f419cb6235399fe70acf8ccfb\",\n    \"access_token\": \"hds2rt6bhgh5wfg5nf4gdh6\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletAddCoinResponse.json",
    "content": "﻿{\n    \"bill_no\": \"BillNo_123\",\n    \"balance\": 200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletGamePayRequest.json",
    "content": "﻿{\n    \"openid\": \"fge35vh5h3f2\",\n    \"appid\": \"tthdch45hd2df\",\n    \"zone_id\": \"1\",\n    \"mp_sig\": \"d1f0a41272f9b85618361323e1b19cd8cb0213f2\",\n    \"access_token\": \"hds2rt6bhgh5wfg5nf4gdh6\",\n    \"ts\": 1507530737,\n    \"pf\": \"android\",\n    \"amt\": 10,\n    \"bill_no\": \"1234567890000\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletGamePayResponse.json",
    "content": "﻿{\n    \"bill_no\": \"1578020538\",\n    \"balance\": 0,\n    \"used_gen_amt\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletGetBalanceRequest.json",
    "content": "﻿{\n    \"openid\": \"fge35vh5h3f2\",\n    \"appid\": \"tthdch45hd2df\",\n    \"zone_id\": \"1\",\n    \"mp_sig\": \"d1f0a41272f9b85618361323e1b19cd8cb0213f2\",\n    \"access_token\": \"hds2rt6bhgh5wfg5nf4gdh6\",\n    \"ts\": 1507530737,\n    \"pf\": \"android\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsGame/AppsGameWalletGetBalanceResponse.json",
    "content": "﻿{\n    \"errcode\": 0,\n    \"errmsg\": \"\",\n    \"balance\": 0,\n    \"gen_balance\": 0,\n    \"save_amt\": 0,\n    \"save_sum\": 0,\n    \"cost_sum\": 0,\n    \"present_sum\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsStorage/AppsRemoveUserStorageRequest.json",
    "content": "﻿{\n    \"kv_list\": [\n        {\n            \"key\": \"test\",\n            \"value\": \"{\\\"ttgame\\\":{\\\"score\\\":1}}\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsStorage/AppsSetUserStorageRequest.json",
    "content": "﻿{\n    \"kv_list\": [\n        {\n            \"key\": \"test\",\n            \"value\": \"{\\\"ttgame\\\":{\\\"score\\\":1}}\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeCreateOrderV2Request.json",
    "content": "{\n    \"goods_list\": [\n        {\n            \"quantity\": 1,\n            \"price\": 100,\n            \"goods_title\": \"火锅团购\",\n            \"goods_image\": \"https://xxx\",\n            \"labels\": \"随时退|免预约\",\n            \"goods_id\": \"goods_1\",\n            \"goods_id_type\": 2,\n            \"discount_amount\": 1,\n            \"date_rule\": \"周一至周日可用\",\n            \"goods_page\": {\n                \"path\": \"goods/infoxxxx\",\n                \"params\": \"{\\\"id\\\":\\\"xxxxxx\\\"}\"\n            },\n            \"order_valid_time\": {\n                \"valid_duration\": 100000\n            },\n            \"goods_book_info\": {\n                \"book_type\": 2,\n                \"cancel_policy\": 1\n            },\n            \"merchant_uid\": \"商户号xxx\"\n        }\n    ],\n    \"total_amount\": 100,\n    \"discount_amount\": 20,\n    \"phone_num\": \"19273654356\",\n    \"contact_name\": \"张三\",\n    \"extra\": \"xxx\",\n    \"open_id\": \"xxx\",\n    \"out_order_no\": \"132324\",\n    \"pay_notify_url\": \"https://xxxx\",\n    \"pay_expire_seconds\": 500,\n    \"order_entry_schema\": {\n        \"path\": \"pages/xxxindexxxx\",\n        \"params\": \"{\\\"id\\\":\\\"xxxxxx\\\"}\"\n    },\n    \"cp_extra\": \"xxxxx\",\n    \"price_calculation_detail\": {\n        \"calculation_type\": 1,\n        \"order_discount_detail\": {\n            \"goods_total_discount_amount\": 1,\n            \"marketing_detail_info\": [\n                {\n                    \"discount_amount\": 10,\n                    \"discount_range\": 1,\n                    \"id\": \"activity_id_xxxxxxx\",\n                    \"note\": \"活动优惠\",\n                    \"subtype\": \"商家侧子营销类型\",\n                    \"title\": \"[活动] 满 10.00 减 7.00 元\",\n                    \"type\": 4\n                },\n                {\n                    \"discount_amount\": 10,\n                    \"discount_range\": 2,\n                    \"id\": \"coupon_id_xxxxxxx\",\n                    \"note\": \"用券优惠\",\n                    \"subtype\": \"商家侧子营销类型默认值\",\n                    \"title\": \"[券] 减 0.01 元\",\n                    \"type\": 2\n                }\n            ],\n            \"order_total_discount_amount\": 20\n        },\n        \"goods_discount_detail\": [\n            {\n                \"goods_id\": \"goods_1\",\n                \"marketing_detail_info\": [\n                    {\n                        \"discount_amount\": 10,\n                        \"discount_range\": 1,\n                        \"id\": \"activity_id_xxxxxxx\",\n                        \"note\": \"活动优惠\",\n                        \"subtype\": \"商家侧子营销类型默认值\",\n                        \"title\": \"[活动] 满 10.00 减 7.00 元\",\n                        \"type\": 4\n                    },\n                    {\n                        \"discount_amount\": 10,\n                        \"discount_range\": 2,\n                        \"id\": \"coupon_id_xxxxxxx\",\n                        \"note\": \"用券优惠\",\n                        \"subtype\": \"商家侧子营销类型默认值\",\n                        \"title\": \"[券] 减 0.01 元\",\n                        \"type\": 2\n                    }\n                ],\n                \"quantity\": 1,\n                \"total_amount\": 100,\n                \"total_discount_amount\": 20\n            }\n        ],\n        \"item_discount_detail\": [\n            {\n                \"goods_id\": \"goods_1\",\n                \"marketing_detail_info\": [\n                    {\n                        \"discount_amount\": 10,\n                        \"discount_range\": 1,\n                        \"id\": \"activity_id_xxxxxxx\",\n                        \"note\": \"活动优惠\",\n                        \"subtype\": \"商家侧子营销类型默认值\",\n                        \"title\": \"[活动] 满 10.00 减 7.00 元\",\n                        \"type\": 4\n                    },\n                    {\n                        \"discount_amount\": 10,\n                        \"discount_range\": 2,\n                        \"id\": \"coupon_id_xxxxxxx\",\n                        \"note\": \"用券优惠\",\n                        \"subtype\": \"商家侧子营销类型默认值\",\n                        \"title\": \"[券] 减 0.01 元\",\n                        \"type\": 2\n                    }\n                ],\n                \"total_amount\": 100,\n                \"total_discount_amount\": 20\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeCreateOrderV2Response.json",
    "content": "{\n    \"data\": {\n        \"order_id\": \"ot7072366682238\",\n        \"out_order_no\": \"121321432\",\n        \"pay_order_id\": \"12423414234\",\n        \"pay_order_token\": \"544352343\",\n        \"item_order_info_list\": [\n            {\n                \"item_order_id_list\": [ \"ot70939408076069\" ],\n                \"goods_id\": \"700843652\",\n                \"item_order_detail\": [\n                    {\n                        \"item_order_id\": \"ot70939408076069\",\n                        \"price\": 80\n                    }\n                ]\n            }\n        ]\n    },\n    \"err_tips\": \"success\",\n    \"err_no\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeQueryCPSV2Request.json",
    "content": "{\n    \"order_id\": \"mock_order_id\",\n    \"out_order_no\": \"mock_out_order_no\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeQueryCPSV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"order_id\": \"ot7073664578173012264\",\n        \"out_order_no\": \"ext_ot7073664578173012264\",\n        \"payment_info\": {\n            \"pay_time\": \"2022-03-11 16:28:06\",\n            \"total_fee\": 20,\n            \"order_status\": \"SUCCESS\",\n            \"pay_channel\": 1,\n            \"channel_pay_id\": \"4313601110202203112588448957\",\n            \"seller_uid\": \"68882720803499563550\",\n            \"cp_extra\": \"\",\n            \"message\": \"CPS-团购测试商品\"\n        },\n        \"cps_info\": {\n            \"total_commission_amount\": 4,\n            \"cps_item_list\": [\n                {\n                    \"commission_amount\": 2,\n                    \"source_type\": 1,\n                    \"sell_amount\": 10,\n                    \"status\": 3,\n                    \"item_id\": \"7049587675082263815\",\n                    \"item_order_id\": \"ot7073664578173045032\",\n                    \"commission_rate\": 2500,\n                    \"commission_user_douyinid\": \"ax81nd873\",\n                    \"commission_user_nickname\": \"小毛驴\"\n                },\n                {\n                    \"sell_amount\": 10,\n                    \"status\": 2,\n                    \"item_id\": 7049587675082263815,\n                    \"item_order_id\": \"ot7073664578173061416\",\n                    \"commission_rate\": 2500,\n                    \"commission_amount\": 2,\n                    \"source_type\": 1,\n                    \"commission_user_douyinid\": \"ax81nd873\",\n                    \"commission_user_nickname\": \"小毛驴\"\n                }\n            ]\n        },\n        \"refund_info\": {\n            \"total_refund_amount\": 10,\n            \"refund_items\": [\n                {\n                    \"out_refund_no\": \"12894412389749193299\",\n                    \"refund_amount\": 10,\n                    \"refund_status\": \"已退款\",\n                    \"refund_at\": 1646989887000,\n                    \"item_order_id\": \"ot7073664578173061416\"\n                }\n            ]\n        },\n        \"delivery_info\": {\n            \"total_delivery_amount\": 10,\n            \"delivery_items\": [\n                {\n                    \"delivery_amount\": 10,\n                    \"delivery_status\": \"已核销\",\n                    \"delivery_at\": 1646989889000,\n                    \"item_order_id\": \"ot7073664578173045032\"\n                }\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeQueryOrderV2Request.json",
    "content": "{\n    \"order_id\": \"mock_order_id\",\n    \"out_order_no\": \"mock_out_order_no\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/PreOrder/AppsTradeQueryOrderV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"order_id\": \"mock_order_id\",\n        \"out_order_no\": \"mock_out_order_no\",\n        \"refund_amount\": 10000,\n        \"settle_amount\": 0,\n        \"total_fee\": 10000,\n        \"pay_time\": \"2021-12-12 00:00:00\",\n        \"order_status\": \"SUCCESS\",\n        \"pay_channel\": 1,\n        \"channel_pay_id\": \"2iu208bfi2897r9hflquf\",\n        \"seller_uid\": \"287484783\",\n        \"item_id\": \"9823789736\",\n        \"cp_extra\": \"\",\n        \"message\": \"SUCCESS\",\n        \"payment_order_id\": \"abc123\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Refund/AppsTradeCreateRefundV2Request.json",
    "content": "{\n    \"out_order_no\": \"123123131\",\n    \"out_refund_no\": \"123123\",\n    \"cp_extra\": \"extra_info\",\n    \"order_entry_schema\": {\n        \"path\": \"page/xxx\",\n        \"params\": \"{\\\"id\\\":1}\"\n    },\n    \"notify_url\": \"https://xxx\",\n    \"refund_total_amount\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Refund/AppsTradeCreateRefundV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"refund_id\": \"ot12312312\",\n        \"refund_audit_deadline\": 151231321231\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Refund/AppsTradeMerchantAuditCallbackV2Request.json",
    "content": "{\n    \"out_refund_no\": \"1123\",\n    \"refund_audit_status\": 2,\n    \"deny_message\": \"不同意退款\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Refund/AppsTradeQueryRefundV2Request.json",
    "content": "{\n    \"refund_id\": \"ot1231231\",\n    \"out_refund_no\": \"12313\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Refund/AppsTradeQueryRefundV2Response.json",
    "content": "{\n    \"data\": {\n        \"refund_list\": [\n            {\n                \"refund_at\": 1672994501000,\n                \"create_at\": 1672994428929,\n                \"refund_source\": 1,\n                \"refund_total_amount\": 1992,\n                \"refund_status\": \"SUCCESS\",\n                \"out_refund_no\": \"ext_refund_no_718536707992153502030519534\",\n                \"message\": \"\",\n                \"item_order_detail\": [\n                    {\n                        \"item_order_id\": \"800000000101757849613437984\",\n                        \"refund_amount\": 996\n                    },\n                    {\n                        \"item_order_id\": \"800000000101757824013547984\",\n                        \"refund_amount\": 996\n                    }\n                ],\n                \"merchant_audit_detail\": {\n                    \"audit_status\": \"AGREE\",\n                    \"deny_message\": \"\",\n                    \"need_refund_audit\": 1,\n                    \"refund_audit_deadline\": 1673253628929\n                },\n                \"order_id\": \"8000000001017577984\",\n                \"refund_id\": \"718536707992153502030519534\"\n            }\n        ]\n    },\n    \"err_no\": 0,\n    \"err_tips\": \"success\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Settlement/AppsTradeCreateSettleV2Request.json",
    "content": "{\n    \"out_order_no\": \"out_order_example_1\",\n    \"out_settle_no\": \"out_settle_example_1\",\n    \"item_order_id\": \"ot78318372940872837161\",\n    \"settle_desc\": \"分账描述\",\n    \"settle_params\": \"[{\\\"merchant_uid\\\":\\\"分账方商户号1\\\",\\\"amount\\\":100}]\",\n    \"cp_extra\": \"test\",\n    \"notify_url\": \"https://www.xxxx.com\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Settlement/AppsTradeCreateSettleV2Response.json",
    "content": "{\n    \"err_no\": 0, \n    \"err_tips\": \"success\", \n    \"data\": {\n        \"settle_id\": \"ot7053723547314981164\", \n        \"inner_settle_id\": \"7115250727504854611\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Settlement/AppsTradeQuerySettleV2Request.json",
    "content": "{\n    \"out_order_no\": \"\",\n    \"out_settle_no\": \"\",\n    \"order_id\": \"ot7053735385750849836\",\n    \"settle_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/Settlement/AppsTradeQuerySettleV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"\",\n    \"data\": [\n        {\n            \"out_order_no\": \"out_order_example_1\",\n            \"out_settle_no\": \"out_settle_example_1\",\n            \"order_id\": \"ot7053735385750849836\",\n            \"settle_id\": \"ot7053723547314981164\",\n            \"item_order_id\": \"ot78318372940872837161\",\n            \"settle_amount\": 1000,\n            \"settle_status\": \"SUCCESS\",\n            \"settle_detail\": \"商户号68882720803499563550-分成金额(分)840\",\n            \"settle_time\": 1639733782000,\n            \"rake\": 60,\n            \"commission\": 100,\n            \"cp_extra\": \"test\",\n            \"inner_settle_id\": \"7163169266042108164\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryPrepareV2Request.json",
    "content": "{\n    \"encrypted_data\": \"17104CFF079C9FDA51D14DD48E12876C\",\n    \"code\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryPrepareV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"verify_token\": \"xxx\",\n        \"out_order_no\": \"out123456\",\n        \"order_id\": \"ot123456\",\n        \"certificates\": [\n            {\n                \"encrypted_code\": \"xxx\",\n                \"certificate_id\": \"123456\",\n                \"item_order_id\": \"ot123\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryVerifyV2Request.json",
    "content": "{\n    \"verify_token\": \"xxx\",\n    \"order_id\": \"ot123456\",\n    \"certificates\": [\n        {\n            \"encrypted_code\": \"xxx\",\n            \"certificate_id\": \"123456\"\n        }\n    ],\n    \"poi_info\": \"{\\\"shop_name\\\":\\\"xx门店\\\",\\\"ext_valid_shop_id\\\":\\\"x0001\\\",\\\"valid_poi_id_str\\\":\\\"6601136930455291912\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeDeliveryVerifyV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"verify_results\": [\n            {\n                \"item_order_id\": \"ot123\",\n                \"certificate_code\": \"888888888888\",\n                \"result_code\": 0,\n                \"result_msg\": \"验券成功\",\n                \"verify_time\": 1658300479000\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradePushDeliveryV2Request.json",
    "content": "{\n    \"out_order_no\": \"out123456\",\n    \"item_order_list\": [\n        {\n            \"item_order_id\": \"ot123\"\n        },\n        {\n            \"item_order_id\": \"ot456\"\n        }\n    ],\n    \"use_all\": false,\n    \"poi_info\": \"{\\\"shop_name\\\":\\\"xx门店\\\",\\\"ext_valid_shop_id\\\":\\\"x0001\\\",\\\"valid_poi_id_str\\\":\\\"6601136930455291912\\\"}\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradePushDeliveryV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": {\n        \"delivery_id\": \"ots72469746338730662849975\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeQueryItemOrderInfoV2Request.json",
    "content": "{\n    \"order_id\": \"ot123456\",\n    \"item_order_id_list\": [\n        \"ot123\",\n        \"ot456\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/AppsTrade/WriteOff/AppsTradeQueryItemOrderInfoV2Response.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_tips\": \"success\",\n    \"data\": [\n        {\n            \"item_order_id\": \"item_order_id_example_1\",\n            \"item_order_status\": 1,\n            \"valid_start_time\": 1642491214992,\n            \"valid_end_time\": 1642491231992,\n            \"delivery_time\": 1642493214992\n        },\n        {\n            \"item_order_id\": \"item_order_id_example_2\",\n            \"item_order_status\": 2,\n            \"valid_start_time\": 1642491214992,\n            \"valid_end_time\": 1623491214992,\n            \"delivery_time\": 1642231214992\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentDeveloperDeleteRequest.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"reply_id\": \"7374690396980816451\",\n    \"access_token\": \"08011218467778704661796571716c3449565530496c374a4a673d3d\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentDeveloperDeleteResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"reply\": {\n        \"reply_id\": \"7374690396982816459\"\n    },\n    \"log_id\": \"2022083015421701022514515206E967D6\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentDeveloperReplyRequest.json",
    "content": "{\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"comment_id\": \"7374690396980816451\",\n    \"text\": \"感谢您的反馈，我们将尽心服务\",\n    \"access_token\": \"08011218467778704661796571716c3449565530496c374a4a673d3d\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentDeveloperReplyResponse.json",
    "content": "{\n    \"err_no\": 0,\n    \"err_msg\": \"success\",\n    \"reply\": {\n        \"reply_id\": \"7374690396982816459\"\n    },\n    \"log_id\": \"2022083015421701022514515206E967D6\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentOpenGetRequest.json",
    "content": "{\n    \"origin_id\": \"7089056237526450211\",\n    \"offset\": 0,\n    \"count\": 10,\n    \"biz_line\": 2,\n    \"app_id\": \"ttcfdbb96650e33350\",\n    \"access_token\": \"08011218467778704661796571716c3449565530496c374a4a673d3d\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Comment/CommentOpenGetResponse.json",
    "content": "{\n    \"data\": {\n        \"comment_list\": [\n            {\n                \"create_time\": \"2022-08-16 17:03:10 +0800 CST\",\n                \"group_id\": 7127552400897884972,\n                \"id\": 7132351211985978156,\n                \"imge_urls\": [\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/df334ebf9a584658804ee6d78bd2eae4~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=GTJeRCoH5pz6TcpgaiQ8ScFsdJ0%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/1e7d8ce45f194c4e8f2548d4ea07dfac~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=XMmGLWBMAuJRF6HKLF9HydEPYqc%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/b71f4464b34e446b9a15988b542f9979~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=kJHU7ojT9uQDDgMb5Elad6lzUPQ%3D\"\n                ],\n                \"ratings\": \"{\\\"course\\\":4,\\\"has_pic\\\":1,\\\"has_text\\\":1,\\\"overall\\\":1,\\\"quality\\\":1,\\\"service\\\":2,\\\"tag_course\\\":3,\\\"tag_overall\\\":1,\\\"tag_quality\\\":1,\\\"tag_service\\\":1}\",\n                \"status\": 1,\n                \"text\": \"这是一条评价文本\",\n                \"user\": {\n                    \"avatar_url\": \"https://p-boe.byted.org/aweme/1080x1080/aweme-avatar/tos-boe-o-0000_7059230b38ee45e7bc9b1aca1e47fa60.jpeg\",\n                    \"is_anonymous\": false,\n                    \"scree_name\": \"b**\"\n                },\n                \"devloper_reply_comments\": [\n                    {\n                        \"parent_comment_id\": \"7127552400897884972\",\n                        \"reply_id\": \"7127552411897884973\",\n                        \"text\": \"感谢反馈，我们将尽快解决您的问题\",\n                        \"create_time\": 1718187178\n                    }\n                ]\n            },\n            {\n                \"create_time\": \"2022-08-16 14:43:33 +0800 CST\",\n                \"group_id\": 7127552400897884972,\n                \"id\": 7132306540686689068,\n                \"imge_urls\": [\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/a6f9fdbef85e46a38e5f9658d944c371~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=NCAfjxrg6xkwk0fR5Ce3bqZLsVg%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/bbbb239d795d43caa9e6344c50eea30d~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=8GvyWdR1m%2FodD%2Bva%2F5bRyLlrkYo%3D\",\n                    \"http://p-boe-sign.bytedance.net/tos-boe-i-jj8k1kottx/5b947380375248c2be0a720d4a7dea86~tplv-giyy2m8f28-jpg.image?x-orig-authkey=boeorigin&x-orig-expires=1661848408&x-orig-sign=mxnJyKFF9KAKC6biMJKT1iMU8aw%3D\"\n                ],\n                \"ratings\": \"{\\\"has_pic\\\":1,\\\"has_text\\\":1}\",\n                \"status\": 1,\n                \"text\": \"这是一条评价文本2\",\n                \"user\": {\n                    \"avatar_url\": \"https://p-boe.byted.org/aweme/1080x1080/aweme-avatar/tos-boe-o-0000_7059230b38ee45e7bc9b1aca1e47fa60.jpeg\",\n                    \"is_anonymous\": false,\n                    \"scree_name\": \"b**\"\n                }\n            }\n        ],\n        \"count\": 57,\n        \"has_more\": true\n    },\n    \"err_msg\": \"success\",\n    \"err_no\": 0,\n    \"log_id\": \"2022083015421701022514515206E967D6\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Tags/TagsImageV2Request.json",
    "content": "﻿{\n    \"targets\": [\"ad\", \"porn\"],\n    \"tasks\": [\n        {\n            \"image\": \"https://image.url\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Tags/TagsImageV2Response.json",
    "content": "{\n    \"log_id\": \"2019010320551501001001621510071\",\n    \"data\": [\n        {\n            \"code\": 0,\n            \"task_id\": \"d18197c4-0f56-11e9-99a5-0242ac110004\",\n            \"data_id\": null,\n            \"predicts\": [\n                {\n                    \"prob\": 1,\n                    \"model_name\": \"image_ocr\",\n                    \"target\": \"ad\"\n                },\n                {\n                    \"prob\": 0,\n                    \"model_name\": \"image_qrcode\",\n                    \"target\": \"ad\"\n                }\n            ],\n            \"msg\": \"ok\"\n        },\n        {\n            \"code\": 0,\n            \"task_id\": \"d1aedc02-0f56-11e9-99a5-0242ac110004\",\n            \"data_id\": null,\n            \"predicts\": [\n                {\n                    \"prob\": 0.0005013857153244317,\n                    \"model_name\": \"image_porn\",\n                    \"target\": \"porn\"\n                },\n                {\n                    \"prob\": 0.022131478413939476,\n                    \"model_name\": \"image_vulgar\",\n                    \"target\": \"porn\"\n                }\n            ],\n            \"msg\": \"ok\"\n        }\n    ],\n    \"error_id\": \"7bf3b7e299e9448796aa99b44750df68\",\n    \"code\": 401,\n    \"message\": \"[app token sign fail] bad token\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Tags/TagsTextAntiDirtV2Request.json",
    "content": "﻿{\n    \"tasks\": [\n        {\n            \"content\": \"要检测的文本\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/ModelSamples/_/_Legacy/Tags/TagsTextAntiDirtV2Response.json",
    "content": "{\n    \"log_id\": \"202008181611370100150421452708466F\",\n    \"data\": [\n        {\n            \"msg\": \"\",\n            \"code\": 0,\n            \"task_id\": \"MICROAPP_6862233737027911687\",\n            \"predicts\": [\n                {\n                    \"prob\": 0,\n                    \"hit\": false,\n                    \"target\": null,\n                    \"model_name\": \"short_content_antidirt\"\n                }\n            ],\n            \"data_id\": null\n        }\n    ],\n    \"error_id\": \"7bf3b7e299e9448796aa99b44750df68\",\n    \"code\": 401\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n\t\t<TargetFrameworks>net472; net6.0</TargetFrameworks>\n\t\t<LangVersion>latest</LangVersion>\n\t\t<Nullable>enable</Nullable>\n\t\t<NullableReferenceTypes>true</NullableReferenceTypes>\n\t\t<IsPackable>false</IsPackable>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <None Remove=\".gitignore\" />\n        <Content Include=\"appsettings.json\">\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n            <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n            <CopyToPublishDirectory>Always</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n        <Content Include=\"EventSamples/**/*.json\" />\n        <Content Include=\"EventSamples/**/*.xml\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.8.0\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.3.0-preview.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.6.6\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.5.6\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.MicroApp\\SKIT.FlurlHttpClient.ByteDance.MicroApp.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/TestCase_ApiExecuteAppsECPayTests.cs",
    "content": "using System.Threading.Tasks;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    public class TestCase_ApiExecuteAppsECPayTests\n    {\n        [Fact(DisplayName = \"测试用例：担保支付请求签名\")]\n        public async Task TestECPayRequestSignature()\n        {\n            using var client = new DouyinMicroAppClient(new DouyinMicroAppClientOptions() { ECPaySalt = \"your_payment_salt\" });\n            var request = new Models.AppsECPayCreateOrderV1Request()\n            {\n                AppId = \"ttcfdbb9xxxxxxxxxxx\",\n                ComponentAppId = \"tta4bad200000xxxxxx\",\n                OutTradeNumber = \"test-02167569xxxxxx\",\n                TotalAmount = 2376,\n                Subject = \"test-payment_subject-test-paym...\",\n                Body = \"强烈推荐！经典腊汁肉夹馍团购价仅需7.92元！\",\n                ValidTime = 172800,\n                NotifyUrl = \"https://www.xxx.com\",\n                IsMessageDisabled = false,\n                MessagePagePath = \"pages/user/orderDetail/orderDetail?id=997979879879879879\"\n            };\n            _ = await client.ExecuteAppsECPayCreateOrderV1Async(request);\n            Assert.Equal(\"54f102e7115f8a6a3e6af4633dc33959\", request.Signature, ignoreCase: true);\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/TestCase_ApiExecuteTokenTests.cs",
    "content": "using System.Threading.Tasks;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    public class TestCase_ApiExecuteTokenTests\n    {\n        [Fact(DisplayName = \"测试用例：调用 API [POST] /token/v2/create\")]\n        public async Task TestExecuteAppsTokenV2()\n        {\n            var request = new Models.AppsTokenV2Request();\n            var response = await TestClients.Instance.ExecuteAppsTokenV2Async(request);\n\n            Assert.True(response.IsSuccessful());\n            Assert.NotEmpty(response.Data.AccessToken);\n            Assert.True(response.Data.ExpiresIn > 0);\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/TestCase_EventVerificationTests.cs",
    "content": "using Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi;\n    using SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.OpenApi.Events;\n\n    public class TestCase_EventVerificationTests\n    {\n        [Fact(DisplayName = \"测试用例：验签并解密 JSON 回调数据\")]\n        public void TestVerifyJsonEvent()\n        {\n            /* ByteDanceMicroAppClient */\n            {\n                string callbackRawJson = \"{\\\"ToUserName\\\":\\\"appid\\\",\\\"FromUserName\\\":\\\"openid\\\",\\\"CreateTime\\\":1577364225,\\\"MsgType\\\":\\\"text\\\",\\\"Content\\\":\\\"text content\\\"}\";\n                string callbackSecretJson = \"{\\\"Nonce\\\":\\\"1372623149\\\",\\\"TimeStamp\\\":\\\"1409659813\\\",\\\"Encrypt\\\":\\\"qc4kT4X+UzU6/qfguyGDpAd6mt2SmOYc1FE9DkulrGWTeHgMu3cPa1WQiNQ61+GMZI2DOzHbu4QVxduzuwh83Q3umURGKyRdNgaEY1GNGt+hhVOjLSkU8wHPNbZ8YfBGsZdZfdWxTy+e36Utetrw17T8MYcoHOhOcIml4dD8DU90SAL6oCA7AZrB8nh+J1kahSQ3c30D6LKlPk044cEWKkVBSzF2XWaPuaUIlUVXigknfFVAhfFFKAuQ7e6ftzJ2\\\",\\\"MsgSignature\\\":\\\"599c9a6a625fec4c7f13cbafbf4083491a515e6b\\\"}\";\n\n                var options = new DouyinMicroAppClientOptions()\n                {\n                    AppId = \"tt5823bf96d3bd56c7\",\n                    PushEncodingAESKey = \"jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C\",\n                    PushToken = \"QDG6eK\"\n                };\n                var client = new DouyinMicroAppClient(options);\n                var eventModel1 = client.DeserializeEventFromJson<Events.TextMessageEvent>(callbackRawJson);\n                var eventModel2 = client.DeserializeEventFromJson<Events.TextMessageEvent>(callbackSecretJson);\n\n                Assert.True(client.VerifyEventSignatureFromJson(callbackSecretJson));\n                Assert.Equal(\"appid\", eventModel1.ToUserName);\n                Assert.Equal(\"appid\", eventModel2.ToUserName);\n                Assert.Equal(\"openid\", eventModel1.FromUserName);\n                Assert.Equal(\"openid\", eventModel2.FromUserName);\n                Assert.Equal(\"text\", eventModel1.MessageType);\n                Assert.Equal(\"text\", eventModel2.MessageType);\n                Assert.Equal(1577364225L, eventModel1.CreateTimestamp);\n                Assert.Equal(1577364225L, eventModel2.CreateTimestamp);\n                Assert.Equal(\"text content\", eventModel1.Content);\n                Assert.Equal(\"text content\", eventModel2.Content);\n            }\n\n            /* ByteDanceMicroAppOpenApiClient */\n            {\n                string callbackRawJson = \"{\\\"FromUserName\\\":\\\"ByteDanceMicroApp\\\",\\\"CreateTime\\\":\\\"2019-01-14 12:45:10\\\",\\\"Event\\\":\\\"PUSH\\\",\\\"MsgType\\\":\\\"Ticket\\\",\\\"Ticket\\\":\\\"8c0da4968b0d1e28acbc1d738a56607d\\\"}\";\n                string callbackSecretJson = \"{\\\"Nonce\\\":\\\"1372623149\\\",\\\"TimeStamp\\\":\\\"1409659813\\\",\\\"Encrypt\\\":\\\"OheJ/nrK5Liim/H6TjL6ufUBwoxRP4sy2e0mS7IO47WESBIHgIXdGLwhs8iDCgMsPe0I78q2jUNtdO7w6+Vg+gtmEm5mbcljWv18Fs5hw91+hwID9uOGNC5ICeLGMMXW0uaGtqn8XgwXxtROAK220M5oRYK9MvmIoU/Q7Tvx1xnP4Jfunww+2mYqgD3YIYvTFVReX+3BeRuBh7zOK7tRbdqXaPbK/Cko0Vnt82rikDmItgXLUtJC4wxJohhXKZGb/12oFq6L/Uy+CtLqVLZMIH4uxlb5cO9exYfArVocZTc=\\\",\\\"MsgSignature\\\":\\\"e51e71c9087fc57ae1cf8eb25c0d1ba837db5b7c\\\"}\";\n                \n                var options = new DouyinMicroAppOpenApiClientOptions()\n                {\n                    ComponentAppId = \"tt5823bf96d3bd56c7\",\n                    PushEncodingAESKey = \"jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C\",\n                    PushToken = \"QDG6eK\"\n                };\n                var client = new DouyinMicroAppOpenApiClient(options);\n                var eventModel1 = client.DeserializeEventFromJson<ComponentPushTicketEvent>(callbackRawJson);\n                var eventModel2 = client.DeserializeEventFromJson<ComponentPushTicketEvent>(callbackSecretJson);\n\n                Assert.True(client.VerifyEventSignatureFromJson(callbackSecretJson));\n                Assert.Equal(\"ByteDanceMicroApp\", eventModel1.FromUserName);\n                Assert.Equal(\"ByteDanceMicroApp\", eventModel2.FromUserName);\n                Assert.Equal(\"PUSH\", eventModel1.Event);\n                Assert.Equal(\"PUSH\", eventModel2.Event);\n                Assert.Equal(\"2019-01-14 12:45:10\", eventModel1.CreateTimeString);\n                Assert.Equal(\"2019-01-14 12:45:10\", eventModel2.CreateTimeString);\n                Assert.Equal(\"Ticket\", eventModel1.MessageType);\n                Assert.Equal(\"Ticket\", eventModel2.MessageType);\n                Assert.Equal(\"8c0da4968b0d1e28acbc1d738a56607d\", eventModel1.Ticket);\n                Assert.Equal(\"8c0da4968b0d1e28acbc1d738a56607d\", eventModel2.Ticket);\n            }\n        }\n\n        [Fact(DisplayName = \"测试用例：验签并解密 XML 回调数据\")]\n        public void TestVerifyXmlEvent()\n        {\n            /* ByteDanceMicroAppClient */\n            {\n                string callbackRawXml = \"<xml><ToUserName><![CDATA[appid]]></ToUserName><FromUserName><![CDATA[openid]]></FromUserName><CreateTime>1577364225</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[text content]]></Content></xml>\";\n                string callbackSecretXml = \"<xml><Nonce>1372623149</Nonce><TimeStamp>1409659813</TimeStamp><Encrypt><![CDATA[MaEUhT8OKNhsVxpr0GbcJdK1imvt2M5bubdxDZ3/iHNJ83KHjOgGUoL8+JAzE3XWBMPpPVUNQR0euBK+hc/8THlA0fwcMFc7Ulkv+bMUgV31ZW8AFEP4c9usWOdK0CX/SJCQlfI42kCoqpOCAr8REYBZEdN6cS1ftxG9nXP2GeHey8ZUJZ72w6xELwoO63RZqbAb0AkAO34xmaIn5Pq1PgkSDKr2xGs2iGW3Tai4sBRpdbYO5uBFIadlGfoKN367TipodV4xt/N+zfijd2YLjbP/9gCMFUUr5PNhRr2WnICn5i9D5BkpvpLxDJz7v+NaHNmIF3f/S3hxLsmt0PpvVQ/qyKWrFDa9Zd/A3ezrUZkMocvj1xP4v0tg/OeILo/+ ]]></Encrypt><MsgSignature><![CDATA[e8216c03c516260d31278537e8c0d60b9c8080b1]]></MsgSignature></xml>\";\n\n                var options = new DouyinMicroAppClientOptions()\n                {\n                    AppId = \"tt5823bf96d3bd56c7\",\n                    PushEncodingAESKey = \"jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C\",\n                    PushToken = \"QDG6eK\"\n                };\n                var client = new DouyinMicroAppClient(options);\n                var eventModel1 = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackRawXml);\n                var eventModel2 = client.DeserializeEventFromXml<Events.TextMessageEvent>(callbackSecretXml);\n\n                Assert.True(client.VerifyEventSignatureFromXml(callbackSecretXml));\n                Assert.Equal(\"appid\", eventModel1.ToUserName);\n                Assert.Equal(\"appid\", eventModel2.ToUserName);\n                Assert.Equal(\"openid\", eventModel1.FromUserName);\n                Assert.Equal(\"openid\", eventModel2.FromUserName);\n                Assert.Equal(\"text\", eventModel1.MessageType);\n                Assert.Equal(\"text\", eventModel2.MessageType);\n                Assert.Equal(1577364225L, eventModel1.CreateTimestamp);\n                Assert.Equal(1577364225L, eventModel2.CreateTimestamp);\n                Assert.Equal(\"text content\", eventModel1.Content);\n                Assert.Equal(\"text content\", eventModel2.Content);\n            }\n\n            /* ByteDanceMicroAppOpenApiClient */\n            {\n                string callbackRawXml = \"<xml><FromUserName><![CDATA[ByteDanceMicroApp]]></FromUserName><CreateTime><![CDATA[2019-01-14 12:45:10]]></CreateTime><Event><![CDATA[PUSH]]></Event><MsgType><![CDATA[Ticket]]></MsgType><Ticket><![CDATA[8c0da4968b0d1e28acbc1d738a56607d]]></Ticket></xml>\";\n                string callbackSecretXml = \"<xml><Nonce>1372623149</Nonce><TimeStamp>1409659813</TimeStamp><Encrypt><![CDATA[Tq2Hc5b/5qnsAx5iKhxotEp447dkaa8qDfCnZbsyQu1VnU+GNilYjsNA8MOkUkN5f03Tsbgjy0DgSKjSuMpbGEms5FwDwvsWzBmyCHI+PK9TuAl3tT5t2LyOZ6LxoXuKMQ8yPRT86x9/6Qd4+nKYTlGUJSSYSoDX6oUOskESQQJhXZh2T6Sqz2MGmtimboH6y7quYD3gK1Rrk61tTAutVyXAPG9TAGf3Pg9+R1lYwlEdO5neVDp9PJFukESQEU5Y2F+CL5NSsKrGgStrmVY1pBDkbjsumDkno5rg6Mu4inDSHhVXKrUAbXLnCG7XuH3Tb06YP8+/4SrZBNY7329/Q2fvwwJyrAiL9MRvN5AaX1kNnpXi4nzYhAXefXaVJOsr2xeMq1VJ1yDYrCOu/rUEF/Iqb8inG26eeVQJ7tE3aXA=]]></Encrypt><MsgSignature><![CDATA[54649c9ee580d983f9b1a034b277055b233ff1de]]></MsgSignature></xml>\";\n\n                var options = new DouyinMicroAppOpenApiClientOptions()\n                {\n                    ComponentAppId = \"tt5823bf96d3bd56c7\",\n                    PushEncodingAESKey = \"jWmYm7qr5nMoAUwZRjGtBxmz3KA1tkAj3ykkR6q2B2C\",\n                    PushToken = \"QDG6eK\"\n                };\n                var client = new DouyinMicroAppOpenApiClient(options);\n                var eventModel1 = client.DeserializeEventFromXml<ComponentPushTicketEvent>(callbackRawXml);\n                var eventModel2 = client.DeserializeEventFromXml<ComponentPushTicketEvent>(callbackSecretXml);\n                \n                Assert.True(client.VerifyEventSignatureFromXml(callbackSecretXml));\n                Assert.Equal(\"ByteDanceMicroApp\", eventModel1.FromUserName);\n                Assert.Equal(\"ByteDanceMicroApp\", eventModel2.FromUserName);\n                Assert.Equal(\"PUSH\", eventModel1.Event);\n                Assert.Equal(\"PUSH\", eventModel2.Event);\n                Assert.Equal(\"2019-01-14 12:45:10\", eventModel1.CreateTimeString);\n                Assert.Equal(\"2019-01-14 12:45:10\", eventModel2.CreateTimeString);\n                Assert.Equal(\"Ticket\", eventModel1.MessageType);\n                Assert.Equal(\"Ticket\", eventModel2.MessageType);\n                Assert.Equal(\"8c0da4968b0d1e28acbc1d738a56607d\", eventModel1.Ticket);\n                Assert.Equal(\"8c0da4968b0d1e28acbc1d738a56607d\", eventModel2.Ticket);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/TestClients.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new DouyinMicroAppClient(new DouyinMicroAppClientOptions()\n            {\n                AppId = TestConfigs.DouyinMicroAppId,\n                AppSecret = TestConfigs.DouyinMicroAppSecret\n            });\n        }\n\n        public static readonly DouyinMicroAppClient Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/TestConfigs.cs",
    "content": "using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfigs\");\n                DouyinMicroAppId = config.GetProperty(\"AppId\").GetString()!;\n                DouyinMicroAppSecret = config.GetProperty(\"AppSecret\").GetString()!;\n                DouyinMicroAppAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly string DouyinMicroAppId;\n        public static readonly string DouyinMicroAppSecret;\n        public static readonly string DouyinMicroAppAccessToken;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.MicroApp.UnitTests/appsettings.json",
    "content": "{\n    \"TestConfigs\": {\n        \"AppId\": \"请在此填写用于测试的字节小程序 AppKey\",\n        \"AppSecret\": \"请在此填写用于测试的字节小程序 AppSecret\",\n        \"AccessToken\": \"请在此填写用于测试的字节小程序 AccessToken\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/IMPORTANT_CodeAnalyzeTests.cs",
    "content": "using System;\nusing System.IO;\nusing System.Reflection;\nusing SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests\n{\n    public class CodeAnalyzeTests\n    {\n        // NOTICE:\n        //   如果 Visual Studio 遇到 “缺少 SKIT.FlurlHttpClient.Tools.CodeAnalyzer 包” 的错误，\n        //   请参考此 Issue：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/issues/8\n\n        [Fact(DisplayName = \"代码质量分析\")]\n        public void CodeAnalyze()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(OceanEngineClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.OceanEngine\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(OceanEngineClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.OceanEngine.Models\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.OceanEngine/\"),\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/\"),\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/AdvertiserInfoRequest.json",
    "content": "﻿{\n    \"advertiser_ids\": [0],\n    \"fields\": [\"id\", \"name\", \"status\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/AdvertiserInfoResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": [\n        {\n            \"promotion_area\": \"\",\n            \"brand\": \"xxx\",\n            \"address\": \"\",\n            \"id\": 0,\n            \"name\": \"xxx\",\n            \"license_city\": \"\",\n            \"promotion_center_city\": \"\",\n            \"promotion_center_province\": \"\",\n            \"license_no\": \"xxx\",\n            \"license_url\": \"xxx\",\n            \"role\": \"ROLE_ADVERTISER\",\n            \"license_province\": \"\",\n            \"company\": \"xxx\",\n            \"create_time\": \"2020-01-01 12:34:56\"\n        }\n    ],\n    \"request_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/AdvertiserPublicInfoRequest.json",
    "content": "﻿{\n    \"advertiser_ids\": [0]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/AdvertiserPublicInfoResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": [\n        {\n            \"id\": 0,\n            \"name\": \"xxx\",\n            \"company\": \"xxx\",\n            \"first_industry_name\": \"xxx\",\n            \"second_industry_name\": \"xxx\"\n        }\n    ],\n    \"request_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Avatar/AdvertiserAvatarGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Avatar/AdvertiserAvatarGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"advertiser_id\": 123123123,\n        \"avatar_status\": 1,\n        \"avatar_reason\": \"xxxxxxx\",\n        \"source_status\": 1,\n        \"source_info\": \"xxxxxx\",\n        \"source_reason\": \"xxxxxsx\",\n        \"avatar_info\": {\n            \"web_uri\": \"web.business.image/2018850fa1ba94912a2f2\",\n            \"audit_web_uri\": \"web.business.image/21213120fa1ba94912a2f2\",\n            \"height\": 200,\n            \"width\": 200\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Avatar/AdvertiserAvatarSubmitRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"image_id\": \"xxx\",\n    \"source_info\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Avatar/AdvertiserAvatarSubmitResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"advertiser_id\": 123123123\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Budget/AdvertiserBudgetGetRequest.json",
    "content": "﻿{\n    \"advertiser_ids\": [0]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Budget/AdvertiserBudgetGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 100,\n                \"budget\": 100.01,\n                \"budget_mode\": \"BUDGET_MODE_DAY\"\n            }\n        ]\n    },\n    \"request_id\": \"request_id\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Budget/AdvertiserUpdateBudgetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"budget\": 0.0,\n    \"budget_mode\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Budget/AdvertiserUpdateBudgetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"request_id\": \"request_id\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundDailyStatisticsRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"start_date\": \"2018-01-01\",\n    \"end_date\": \"2018-05-01\",\n    \"page\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundDailyStatisticsResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 1,\n                \"date\": \"2018-01-01\",\n                \"balance\": 0,\n                \"cash_cost\": 1,\n                \"shared_wallet_cost\": 0,\n                \"cost\": 0,\n                \"income\": 0,\n                \"reward_cost\": 0,\n                \"transfer_in\": 0,\n                \"transfer_out\": 0\n            },\n            {\n                \"advertiser_id\": 1,\n                \"date\": \"2018-01-02\",\n                \"balance\": 0,\n                \"cash_cost\": 1,\n                \"shared_wallet_cost\": 0,\n                \"cost\": 0,\n                \"income\": 0,\n                \"reward_cost\": 0,\n                \"transfer_in\": 0,\n                \"transfer_out\": 0\n            }\n        ],\n        \"page_info\": {\n            \"page\": 1,\n            \"page_size\": 10,\n            \"total_number\": 2,\n            \"total_page\": 1\n        }\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"advertiser_id\": 1,\n        \"name\": \"xxx\",\n        \"emal\": \"xxx\",\n        \"balance\": 0,\n        \"valid_balance\": 0,\n        \"cash\": 0,\n        \"valid_cash\": 0,\n        \"grant\": 0,\n        \"union_grant\": 0,\n        \"search_grant\": 0,\n        \"common_grant\": 0,\n        \"default_grant\": 0,\n        \"valid_grant\": 0\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundTransactionGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"transaction_type\": \"TRANSFER\",\n    \"start_date\": \"2018-01-01\",\n    \"end_date\": \"2018-05-01\",\n    \"page\": 1,\n    \"page_size\": 10\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Fund/AdvertiserFundTransactionGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 1,\n                \"transaction_type\": \"TRANSFER\",\n                \"create_time\": \"2018-01-01 00:00:00\",\n                \"grant\": 0,\n                \"cash\": 0,\n                \"amount\": 0,\n                \"return_goods\": 0,\n                \"transaction_seq\": 0,\n                \"remitter\": 0,\n                \"payee\": 0\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationCreateV2Request.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"qualification_type\": \"QUALIFICATION_AD\",\n    \"qualifications\": [\n        {\n            \"ad_qualification_type\": \"AUTHORIZATION\",\n            \"qualification_img_id\": \"\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationCreateV2Response.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"status\": 2,\n        \"reject_reason\": \"\",\n        \"advertiser_id\": 3526908054,\n        \"others\": [\n            {\n                \"status\": 2,\n                \"picture_url\": \"https://passport-test.bytedance.com/external/attachment/download?file_sign=4882617-a3a67c47b8e5832e5d3008204214ccd7\",\n                \"attachment_id\": \"4882617\",\n                \"reject_reason\": \"\",\n                \"qualification_id\": 10000110\n            },\n            {\n                \"status\": 2,\n                \"picture_url\": \"https://passport-test.bytedance.com/external/attachment/download?file_sign=4882617-a3a67c47b8e5832e5d3008204214ccd7\",\n                \"attachment_id\": \"4882617\",\n                \"reject_reason\": \"\",\n                \"qualification_id\": 10000110\n            }\n        ],\n        \"promotion\": {\n            \"status\": 3,\n            \"content\": \"呵呵\",\n            \"qualification_id\": 10000175,\n            \"reject_reason\": \"\"\n        },\n        \"subject\": {\n            \"status\": 2,\n            \"has_effective_date\": false,\n            \"attachment_id\": \"4882617\",\n            \"check_type\": 1,\n            \"picture_url\": \"https://passport-test.bytedance.com/external/attachment/download?file_sign=4882617-a3a67c47b8e5832e5d3008204214ccd7\",\n            \"company_type\": 1,\n            \"proprietor_name\": \"呵呵呵\",\n            \"registered_province_name\": \"湖北\",\n            \"registered_city_name\": \"武汉\",\n            \"company_name\": \"信控共用-company-测试-误删\",\n            \"address\": \"biss\",\n            \"effective_date\": \"2020-01-01\",\n            \"registered_nation_name\": \"中国\",\n            \"qualification_code\": \"91630104MA752TJB5Y\",\n            \"qualification_type\": 1,\n            \"qualification_id\": 10000217,\n            \"reject_reason\": \"\"\n        }\n    },\n    \"request_id\": \"20190308160510127000000001536810\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationSelectV2Request.json",
    "content": "﻿{\n    \"advertiser_id\": \"123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationSelectV2Response.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"status\": 2,\n                \"reject_reason\": \"\",\n                \"audit_time\": null,\n                \"picture_preview_url\": \"https://passport.bytedance.com/external/attachment/preview?entity_no=9&amp;file_sign=xxx\",\n                \"qualification_type\": 0,\n                \"qualification_id\": 2489346,\n                \"image_list\": [\n                    {\n                        \"image_url\": \"https://www.ad.oceanengine.com/xxxx\",\n                        \"attachment_id\": 100000\n                    }\n                ]\n            }\n        ]\n    },\n    \"request_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationSubmitRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 3526908054,\n    \"subject\": {\n        \"company_name\": \"呵呵\",\n        \"company_type\": 1,\n        \"check_type\": 1,\n        \"qualification_type\": 1,\n        \"qualification_code\": \"91630104MA752TJB5Y\",\n        \"registered_nation_name\": \"中国\",\n        \"registered_province_name\": \"湖北\",\n        \"registered_city_name\": \"武汉\",\n        \"has_effective_date\": true,\n        \"effective_date\": \"2020-01-01\",\n        \"proprietor_name\": \"呵呵呵\",\n        \"address\": \"biss\",\n        \"attachment_id\": \"4882617\"\n    },\n    \"others\": [\n        {\n            \"qualification_id\": 10000109,\n            \"attachment_id\": \"4882553\"\n        },\n        {\n            \"attachment_id\": \"4882617\"\n        }\n    ],\n    \"promotion\": {\n        \"content\": \"呵呵\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertiser/Qualification/AdvertiserQualificationSubmitResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"request_id\": \"20190308160510127000000001536810\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingCostProtectStatusGetRequest.json",
    "content": "﻿{\n    \"ad_ids\": [0],\n    \"advertiser_id\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingCostProtectStatusGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"ad_id\": 123456,\n                \"status\": \"成本保障计算中\"\n            }\n        ]\n    },\n    \"request_id\": \"2020022010373501011023224213435\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingCreateRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"campaign_id\": 0,\n    \"budget_mode\": \"BUDGET_MODE_DAY\",\n    \"budget\": 1234,\n    \"name\": \"ad_create\",\n    \"download_url\": \"xxx\",\n    \"schedule_type\": \"SCHEDULE_START_END\",\n    \"flow_control_mode\": \"FLOW_CONTROL_MODE_FAST\",\n    \"start_time\": \"2017-04-27 00:00\",\n    \"end_time\": \"2017-04-29 23:59\",\n    \"bid\": 10,\n    \"app_type\": \"APP_ANDROID\",\n    \"package\": \"info.pkg\",\n    \"pricing\": \"PRICING_CPM\",\n    \"gender\": \"GENDER_FEMALE\",\n    \"age\": [\"AGE_BETWEEN_18_23\", \"AGE_ABOVE_50\"],\n    \"ac\": [\"WIFI\"],\n    \"android_osv\": \"4.1\",\n    \"platform\": [\"ANDROID\", \"IOS\"],\n    \"carrier\": [\"UNICOM\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingCreateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"ad_id\": 1\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"page\": 1,\n    \"page_size\": 10,\n    \"filtering\": {\n        \"ids\": [0],\n        \"pricing_list\": [\"PRICING_CPC\"],\n        \"campaign_id\": 0,\n        \"status\": \"AD_STATUS_AUDIT\"\n    },\n    \"fields\": [\"id\", \"name\", \"campaign_id\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"campaign_id\": 111,\n                \"id\": 222,\n                \"name\": \"xxx\",\n                \"ad_create_time\": \"2019-01-01\",\n                \"ad_modify_time\": \"2019-01-01\"\n            },\n            {\n                \"campaign_id\": 333,\n                \"id\": 666,\n                \"name\": \"xxx\",\n                \"ad_create_time\": \"2019-01-01\",\n                \"ad_modify_time\": \"2019-01-01\"\n            }\n        ],\n        \"page_info\": {\n            \"page\": 1,\n            \"page_size\": 10,\n            \"total_number\": 2,\n            \"total_page\": 1\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingRejectReasonRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 1234,\n    \"ad_ids\": [1234, 5678]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingRejectReasonResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"creative_reject\": [\n                    {\n                        \"creative_id\": 1234,\n                        \"reject_data\": [\n                            {\n                                \"reject_item\": \"\",\n                                \"reject_reason\": \"1. 您好，广告中含有虚假宣传或误导用户的内容，请修改，谢谢。 \\n\"\n                            }\n                        ]\n                    },\n                    {\n                        \"creative_id\": 5678,\n                        \"reject_data\": [\n                            {\n                                \"reject_item\": \"\",\n                                \"reject_reason\": \"1. 您好，广告中含有虚假宣传或误导用户的内容，请修改，谢谢。 \\n\"\n                            }\n                        ]\n                    }\n                ],\n                \"material_reject\": [],\n                \"ad_reject\": {\n                    \"ad_id\": 1234,\n                    \"reject_data\": []\n                }\n            },\n            {\n                \"creative_reject\": [],\n                \"material_reject\": [],\n                \"ad_reject\": {\n                    \"ad_id\": 5678,\n                    \"reject_data\": [\n                        {\n                            \"reject_item\": \"计划\",\n                            \"reject_reason\": \"1. 您好，请添加风险提示语：“具体金额以活动规则为准”。 \"\n                        }\n                    ]\n                }\n            }\n        ]\n    },\n    \"request_id\": \"2019081518283512700000100113146\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateBidRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"data\": [\n        {\n            \"ad_id\": 0,\n            \"bid\": 0\n        },\n        {\n            \"ad_id\": 1,\n            \"bid\": 0\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateBidResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"ad_ids\": [1, 2, 3],\n        \"errors\": [\n            {\n                \"error_message\": \"广告计划不存在\",\n                \"ad_id\": 11111111111111\n            }\n        ]\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateBudgetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"data\": [\n        { \"ad_id\": 0, \"budget\": 100 },\n        { \"ad_id\": 0, \"budget\": 100 }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateBudgetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"ad_ids\": [1, 2, 3],\n        \"errors\": [\n            {\n                \"error_message\": \"广告计划不存在\",\n                \"ad_id\": 11111111111111\n            }\n        ]\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"ad_id\": 0,\n    \"name\": \"xxx\",\n    \"schedule_type\": \"SCHEDULE_START_END\",\n    \"flow_control_mode\": \"FLOW_CONTROL_MODE_FAST\",\n    \"gender\": \"GENDER_MALE\",\n    \"age\": [\"AGE_BETWEEN_18_23\", \"AGE_BETWEEN_41_49\"],\n    \"ac\": [\"WIFI\"],\n    \"carrier\": [\"MOBILE\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"ad_id\": 1,\n        \"need_audit\": 1\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateStatusRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 123,\n    \"ad_ids\": [234, 345, 456, 567],\n    \"opt_status\": \"disable\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Advertising/AdvertisingUpdateStatusResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"ad_ids\": [1, 2, 3],\n        \"errors\": [\n            {\n                \"error_message\": \"广告计划不存在\",\n                \"ad_id\": 11111111111111\n            }\n        ]\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserCreateV2Request.json",
    "content": "﻿{\n    \"name\": \"xxx\",\n    \"company\": \"xx\",\n    \"role\": \"ROLE_CHILD_ADVERTISER\",\n    \"email\": \"xxx\",\n    \"promotion_area\": \"NATION\",\n    \"promotion_province\": 0,\n    \"promotion_city\": 0,\n    \"first_industry_id\": 0,\n    \"second_industry_id\": 0,\n    \"contact\": \"xxx\",\n    \"phone_number\": \"xxx\",\n    \"telephone\": \"xxx\",\n    \"address\": \"xx\",\n    \"license_no\": \"xxx\",\n    \"license_province\": 0,\n    \"license_city\": 0,\n    \"license_type\": 0,\n    \"brand\": \"xx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserCreateV2Response.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"advertiser_id\": 0\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserRechargeRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"transfer_type\": \"CASH\",\n    \"amount\": 1000\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserRechargeResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"transaction_seq\": \"123456789\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserRefundRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"amount\": 1000\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserRefundResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"transaction_seq\": \"123456789\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserSelectRequest.json",
    "content": "﻿{\n    \"page\": 1,\n    \"page_size\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserSelectResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [1, 2, 3],\n        \"page_info\": {\n            \"page\": 1,\n            \"page_size\": 10,\n            \"total_number\": 10,\n            \"total_page\": 1\n        }\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserUpdateRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"name\": \"xxx\",\n    \"contacter\": \"xxx\",\n    \"phonenumber\": \"xxx\",\n    \"telephone\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/Advertiser/AgentAdvertiserUpdateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"advertiser_id\": 0,\n        \"need_audit\": 0\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/AgentChildAgentSelectRequest.json",
    "content": "﻿{\n    \"page\": 1,\n    \"page_size\": 100\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/AgentChildAgentSelectResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"child_agent_ids\": [1, 2]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/AgentInfoRequest.json",
    "content": "﻿{\n    \"advertiser_ids\": [1, 2],\n    \"fields\": [\"xxx\", \"xxxx\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Agent/AgentInfoResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": [\n        {\n            \"agent_id\": 0,\n            \"agent_name\": \"xxx\",\n            \"customer_id\": 0,\n            \"customer_name\": \"0\",\n            \"company_id\": 0,\n            \"company_name\": \"xxx\",\n            \"account_status\": \"xxx\",\n            \"create_time\": \"2020-01-01 12:34:56\",\n            \"role\": \"xxx\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/BusinessPlatform/BusinessPlatformPartnerOrganizationListRequest.json",
    "content": "﻿{\n    \"organization_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/BusinessPlatform/BusinessPlatformPartnerOrganizationListResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"OK\",\n    \"request_id\": \"202109081725140102112191331607F047\",\n    \"data\": {\n        \"list\": [\n            {\n                \"partner_organization_id\": 0,\n                \"remark\": \"\",\n                \"status\": \"BOUND\"\n            },\n            {\n                \"partner_organization_id\": 1,\n                \"remark\": \"\",\n                \"status\": \"BOUND\"\n            },\n            {\n                \"partner_organization_id\": 2,\n                \"remark\": \"\",\n                \"status\": \"BOUND\"\n            }\n        ],\n        \"page_info\": {\n            \"page\": 1,\n            \"page_size\": 10,\n            \"total_number\": 3,\n            \"total_page\": 1\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignCreateRequest.json",
    "content": "﻿{\n    \"campaign_name\": \"CAMPAIGN_NAME\",\n    \"delivery_related_num\": \"DELIVERY_RELATED_NUM\",\n    \"landing_type\": \"LANDING_TYPE\",\n    \"operation\": \"OPERATION\",\n    \"advertiser_id\": 0,\n    \"budget\": 0.0,\n    \"budget_mode\": \"BUDGET_MODE\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignCreateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"campaign_id\": 1\n    },\n    \"request_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"fields\": [\"FIELDS\"],\n    \"filtering\": {\n        \"campaign_create_time\": \"CAMPAIGN_CREATE_TIME\",\n        \"campaign_name\": \"CAMPAIGN_NAME\",\n        \"ids\": [0],\n        \"landing_type\": \"LANDING_TYPE\",\n        \"status\": \"STATUS\"\n    },\n    \"page\": 0,\n    \"page_size\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"name\": \"xxx\",\n                \"id\": 0,\n                \"campaign_create_time\": \"2019-04-23 00:25:34\",\n                \"campaign_modify_time\": \"2019-04-23 00:25:34\"\n            },\n            {\n                \"name\": \"xxxx\",\n                \"id\": 1,\n                \"campaign_create_time\": \"2019-04-23 00:25:34\",\n                \"campaign_modify_time\": \"2019-04-23 00:25:34\"\n            }\n        ],\n        \"page_info\": {\n            \"page\": 1,\n            \"page_size\": 10,\n            \"total_number\": 2,\n            \"total_page\": 1\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignUpdateRequest.json",
    "content": "﻿{\n    \"budget_mode\": \"BUDGET_MODE\",\n    \"campaign_id\": 0,\n    \"campaign_name\": \"CAMPAIGN_NAME\",\n    \"modify_time\": 0,\n    \"advertiser_id\": 0,\n    \"budget\": 0.0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignUpdateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"campaign_id\": 1\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignUpdateStatusRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"campaign_ids\": [0],\n    \"opt_status\": \"OPT_STATUS\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Campaign/CampaignUpdateStatusResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"campaign_ids\": [1, 2, 3],\n        \"errors\": [\n            {\n                \"error_message\": \"广告组已删除\",\n                \"campaign_id\": 11111111111111\n            }\n        ]\n    },\n    \"request_id\": \"×××\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Creative/CreativeCreateV2Request.json",
    "content": "﻿{\n    \"is_feed_and_fav_see\": 0,\n    \"title_list\": [\n        {\n            \"creative_word_ids\": [0],\n            \"title\": \"TITLE\",\n            \"dpa_dict_ids\": [0]\n        }\n    ],\n    \"app_name\": \"APP_NAME\",\n    \"generate_derived_ad\": 0,\n    \"playable_url\": \"PLAYABLE_URL\",\n    \"scene_inventory\": \"SCENE_INVENTORY\",\n    \"web_url\": \"WEB_URL\",\n    \"third_industry_id\": 0,\n    \"creative_material_mode\": \"CREATIVE_MATERIAL_MODE\",\n    \"advanced_creative_title\": \"ADVANCED_CREATIVE_TITLE\",\n    \"sub_title\": \"SUB_TITLE\",\n    \"inventory_type\": [\"INVENTORY_TYPE\"],\n    \"source\": \"SOURCE\",\n    \"advanced_creative_type\": \"ADVANCED_CREATIVE_TYPE\",\n    \"track_url\": \"TRACK_URL\",\n    \"ies_core_user_id\": \"IES_CORE_USER_ID\",\n    \"phone_number\": \"PHONE_NUMBER\",\n    \"procedural_package_id\": 0,\n    \"ad_id\": 0,\n    \"is_presented_video\": 0,\n    \"image_list\": [\n        {\n            \"template_data_list\": [\n                {\n                    \"background_image_id\": \"BACKGROUND_IMAGE_ID\"\n                }\n            ],\n            \"image_ids\": [\"IMAGE_IDS\"],\n            \"video_id\": \"VIDEO_ID\",\n            \"image_id\": \"IMAGE_ID\",\n            \"image_mode\": \"IMAGE_MODE\",\n            \"template_id\": \"TEMPLATE_ID\"\n        }\n    ],\n    \"button_text\": \"BUTTON_TEXT\",\n    \"creatives\": [\n        {\n            \"template_data_list\": [\n                {\n                    \"background_image_id\": \"BACKGROUND_IMAGE_ID\"\n                }\n            ],\n            \"dpa_dict_ids\": [0],\n            \"title\": \"TITLE\",\n            \"derive_poster_cid\": 0,\n            \"creative_word_ids\": [0],\n            \"image_id\": \"IMAGE_ID\",\n            \"dpa_template\": 0,\n            \"third_party_id\": \"THIRD_PARTY_ID\",\n            \"image_mode\": \"IMAGE_MODE\",\n            \"dpa_video_task_ids\": [\"DPA_VIDEO_TASK_IDS\"],\n            \"video_id\": \"VIDEO_ID\",\n            \"image_ids\": [\"IMAGE_IDS\"],\n            \"template_id\": \"TEMPLATE_ID\",\n            \"dpa_video_template_type\": \"DPA_VIDEO_TEMPLATE_TYPE\"\n        }\n    ],\n    \"advertiser_id\": 0,\n    \"action_text\": \"ACTION_TEXT\",\n    \"track_url_send_type\": \"TRACK_URL_SEND_TYPE\",\n    \"commerce_cards\": [\n        {\n            \"source\": \"SOURCE\",\n            \"title\": \"TITLE\"\n        }\n    ],\n    \"action_track_url\": \"ACTION_TRACK_URL\",\n    \"is_comment_disable\": 0,\n    \"creative_auto_generate_switch\": 0,\n    \"video_play_done_track_url\": \"VIDEO_PLAY_DONE_TRACK_URL\",\n    \"creative_display_mode\": \"CREATIVE_DISPLAY_MODE\",\n    \"video_play_effective_track_url\": \"VIDEO_PLAY_EFFECTIVE_TRACK_URL\",\n    \"smart_inventory\": 0,\n    \"ad_keywords\": [\"AD_KEYWORDS\"],\n    \"video_play_track_url\": \"VIDEO_PLAY_TRACK_URL\",\n    \"form_url\": \"FORM_URL\",\n    \"promotion_card\": {\n        \"enable_store_pack\": true,\n        \"product_selling_points\": [\"PRODUCT_SELLING_POINTS\"],\n        \"product_description\": \"PRODUCT_DESCRIPTION\",\n        \"call_to_action\": \"CALL_TO_ACTION\",\n        \"enable_personal_action\": true,\n        \"product_image_id\": \"PRODUCT_IMAGE_ID\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Creative/CreativeCreateV2Response.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"modify_time\": 0,\n        \"ad_id\": 0,\n        \"creatives\": [\n            {\n                \"creative_id\": 0,\n                \"title\": \"xx\"\n            }\n        ],\n        \"advertiser_id\": 0\n    },\n    \"request_id\": \"xx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Creative/CreativeGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"filtering\": {\n        \"campaign_id\": 0,\n        \"ad_id\": 0,\n        \"creative_ids\": [0],\n        \"creative_title\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Creative/CreativeGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"page_info\": {\n            \"page_size\": 100,\n            \"page\": 1,\n            \"total_number\": 3698,\n            \"total_page\": 37\n        },\n        \"list\": [\n            {\n                \"status\": \"CREATIVE_STATUS_AUDIT\",\n                \"advertiser_id\": 0,\n                \"ad_id\": 0,\n                \"title\": \"xx\",\n                \"creative_id\": 0,\n                \"video_id\": null,\n                \"creative_word_ids\": [],\n                \"image_id\": null,\n                \"metarials\": [\n                    {\n                        \"image_id\": \"xx\",\n                        \"video_id\": null,\n                        \"title\": null\n                    }\n                ],\n                \"third_party_id\": null,\n                \"image_mode\": \"CREATIVE_IMAGE_MODE_SMALL\",\n                \"image_ids\": [\"xx\"],\n                \"creative_create_time\": \"2020-12-31 11:22:33\",\n                \"creative_modify_time\": \"2020-12-31 11:22:33\",\n                \"opt_status\": \"CREATIVE_STATUS_ENABLE\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/CustomerCenter/Advertiser/CustomerCenterAdvertiserListRequest.json",
    "content": "﻿{\n    \"cc_account_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/CustomerCenter/Advertiser/CustomerCenterAdvertiserListResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 1,\n                \"advertiser_name\": \"xxx\"\n            }\n        ],\n        \"page_info\": {\n            \"total_number\": 1,\n            \"page\": 1,\n            \"page_size\": 100,\n            \"total_page\": 1\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Enterprise/EnterpriseInfoRequest.json",
    "content": "﻿{\n    \"e_douyin_ids\": [\"xxx\", \"xxx\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Enterprise/EnterpriseInfoResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"e_douyin_id\": \"xxx\",\n                \"e_douyin_name\": \"xxx\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageAdvertiserGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"image_ids\": [\"xxx\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageAdvertiserGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"page_info\": {\n            \"total_number\": 226,\n            \"page\": 1,\n            \"page_size\": 20,\n            \"total_page\": 12\n        },\n        \"list\": [\n            {\n                \"format\": \"JPEG\",\n                \"url\": \"\",\n                \"material_id\": 111,\n                \"height\": 1863,\n                \"width\": 1242,\n                \"signature\": \"\",\n                \"id\": \"\",\n                \"size\": 65016\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageAdvertiserResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"size\": 249372,\n        \"width\": 965,\n        \"format\": \"jpeg\",\n        \"url\": \"xxx\",\n        \"signature\": \"xxx\",\n        \"id\": \"xxx\",\n        \"height\": 965\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageAdvertisingResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"size\": 249372,\n        \"width\": 965,\n        \"material_id\": 111,\n        \"format\": \"jpeg\",\n        \"url\": \"xxx\",\n        \"signature\": \"xxx\",\n        \"id\": \"xxx\",\n        \"height\": 965\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"filtering\": {\n        \"image_ids\": [\"xxx\"]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileImageGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"page_info\": {\n            \"total_number\": 226,\n            \"page\": 1,\n            \"page_size\": 20,\n            \"total_page\": 12\n        },\n        \"list\": [\n            {\n                \"format\": \"JPEG\",\n                \"material_id\": 111,\n                \"url\": \"\",\n                \"height\": 1863,\n                \"width\": 1242,\n                \"signature\": \"\",\n                \"id\": \"\",\n                \"size\": 65016,\n                \"create_time\": \"2020-03-01 11:21:02\",\n                \"filename\": \"xxx\"\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileMaterialBindRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"target_advertiser_ids\": [1, 2],\n    \"video_ids\": [\"aaaa\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileMaterialBindResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"fail_list\": [\n            {\n                \"video_id\": \"vxxxx\",\n                \"fail_reason\": \"VIDEO_BINDING_EXISTED\",\n                \"target_advertiser_id\": 0\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoAdvertiserGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"video_ids\": [\"xxx\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoAdvertiserGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"format\": \"mp4\",\n                \"url\": \"\",\n                \"height\": 640,\n                \"width\": 368,\n                \"poster_url\": \"\",\n                \"size\": 7581506,\n                \"id\": \"×××\",\n                \"signature\": \"×××\",\n                \"bit_rate\": 1782131,\n                \"duration\": 40.01\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoAdvertisingResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"video_id\": \"xxx\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoDeleteRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"video_ids\": [\"aaaa\"]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoDeleteResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"fail_video_ids\": []\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoGetRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoGetResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"page_info\": {\n            \"total_number\": 27,\n            \"total_page\": 2,\n            \"page_size\": 20,\n            \"page\": 1\n        },\n        \"list\": [\n            {\n                \"format\": \"mp4\",\n                \"url\": \"\",\n                \"poster_url\": \"×××\",\n                \"height\": 360,\n                \"width\": 640,\n                \"bit_rate\": 566247,\n                \"signature\": \"×××\",\n                \"duration\": 6.369,\n                \"id\": \"×××\",\n                \"size\": 450804,\n                \"create_time\": \"2020-03-01 11:21:02\",\n                \"filename\": \"xxx\"\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoUpdateRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"videos\": []\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/File/FileVideoUpdateResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {}\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Fund/FundSharedWalletBalanceGetRequest.json",
    "content": "﻿{\n    \"advertiser_ids\": [1111]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Fund/FundSharedWalletBalanceGetResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"OK\",\n    \"request_id\": \"xxxxxxxxxxxxxx\",\n    \"data\": {\n        \"list\": [\n            {\n                \"balance_detail\": [\n                    {\n                        \"billing_inventory\": \"DEFAULT\",\n                        \"balance\": 5000.0\n                    },\n                    {\n                        \"billing_inventory\": \"UNION\",\n                        \"balance\": 0.0\n                    }\n                ],\n                \"status\": \"SUCCESS\",\n                \"status_message\": \"Success\",\n                \"advertiser_id\": 1\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Majordomo/Advertiser/MajordomoAdvertiserSelectRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Majordomo/Advertiser/MajordomoAdvertiserSelectResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 1,\n                \"advertiser_name\": \"xxx\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AccessTokenRequest.json",
    "content": "﻿{\n    \"app_id\": 0,\n    \"secret\": \"xxx\",\n    \"grant_type\": \"auth_code\",\n    \"auth_code\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AccessTokenResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"access_token\": \"\",\n        \"expires_in\": 86400,\n        \"refresh_token\": \"\",\n        \"advertiser_ids\": [1, 2, 3],\n        \"refresh_token_expires_in\": 604800\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AdvertiserGetRequest.json",
    "content": "﻿{\n    \"app_id\": 0,\n    \"secret\": \"xxx\",\n    \"access_token\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AdvertiserGetResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"list\": [\n            {\n                \"advertiser_id\": 12312321,\n                \"advertiser_name\": \"test_developer\",\n                \"advertiser_role\": 1,\n                \"is_valid\": true,\n                \"account_role\": \"CUSTOMER_OPERATOR\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AppAccessTokenRequest.json",
    "content": "﻿{\n    \"app_id\": 0,\n    \"secret\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2AppAccessTokenResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"app_access_token\": \"\",\n        \"expires_in\": 86400\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2RefreshTokenRequest.json",
    "content": "﻿{\n    \"app_id\": 0,\n    \"secret\": \"\",\n    \"grant_type\": \"refresh_token\",\n    \"refresh_token\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/OAuth2/OAuth2RefreshTokenResponse.json",
    "content": "﻿{\n    \"code\": 0,\n    \"message\": \"\",\n    \"data\": {\n        \"access_token\": \"\",\n        \"expires_in\": 86400,\n        \"refresh_token\": \"\",\n        \"refresh_token_expires_in\": 600000\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Tools/VideoCover/ToolsVideoCoverSuggestRequest.json",
    "content": "﻿{\n    \"advertiser_id\": 0,\n    \"video_id\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/Tools/VideoCover/ToolsVideoCoverSuggestResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": {\n        \"status\": \"SUCCESS\",\n        \"list\": [\n            {\n                \"id\": \"\",\n                \"url\": \"\",\n                \"height\": 640,\n                \"width\": 368\n            }\n        ]\n    },\n    \"request_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/ModelSamples/User/UserInfoResponse.json",
    "content": "﻿{\n    \"message\": \"OK\",\n    \"code\": 0,\n    \"data\": [\n        {\n            \"id\": 12312431,\n            \"email\": \"shi****ang@bytedance.com\",\n            \"display_name\": \"Tony Zhang\"\n        }\n    ],\n    \"request_id\": \"20200303065512010189049223187AB4E5\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n\t<PropertyGroup>\n\t\t<TargetFrameworks>net472; net6.0</TargetFrameworks>\n\t\t<LangVersion>latest</LangVersion>\n\t\t<Nullable>enable</Nullable>\n\t\t<NullableReferenceTypes>true</NullableReferenceTypes>\n\t\t<IsPackable>false</IsPackable>\n\t</PropertyGroup>\n\n\t<ItemGroup>\n\t\t<None Remove=\".gitignore\" />\n        <Content Include=\"appsettings.json\">\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n            <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n            <CopyToPublishDirectory>Always</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.8.0\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.3.0-preview.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.6.6\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.5.6\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.OceanEngine\\SKIT.FlurlHttpClient.ByteDance.OceanEngine.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/TestClients.cs",
    "content": "﻿namespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new OceanEngineClient(new OceanEngineClientOptions()\n            {\n                AppId = TestConfigs.OceanEngineAppId,\n                AppSecret = TestConfigs.OceanEngineAppSecret\n            });\n        }\n\n        public static readonly OceanEngineClient Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/TestConfigs.cs",
    "content": "using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfigs\");\n                OceanEngineAppId = config.GetProperty(\"AppId\").GetInt64();\n                OceanEngineAppSecret = config.GetProperty(\"AppSecret\").GetString()!;\n                OceanEngineAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly long OceanEngineAppId;\n        public static readonly string OceanEngineAppSecret;\n        public static readonly string OceanEngineAccessToken;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.OceanEngine.UnitTests/appsettings.json",
    "content": "{\n    \"TestConfigs\": {\n        \"AppId\": \"请在此输入巨量引擎开放平台应用 ID\",\n        \"AppSecret\": \"请在此输入巨量引擎开放平台应用密钥\",\n        \"AccessToken\": \"请在此输入巨量引擎开放平台 AccessToken\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/IMPORTANT_CodeAnalyzeTests.cs",
    "content": "using System;\nusing System.IO;\nusing System.Reflection;\nusing SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests\n{\n    public class CodeAnalyzeTests\n    {\n        // NOTICE:\n        //   如果 Visual Studio 遇到 “缺少 SKIT.FlurlHttpClient.Tools.CodeAnalyzer 包” 的错误，\n        //   请参考此 Issue：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/issues/8\n\n        [Fact(DisplayName = \"代码质量分析\")]\n        public void CodeAnalyze()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokV2Client))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokV2Client))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.Models\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal/\"),\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/\"),\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/OAuthAccessTokenRequest.json",
    "content": "{\n    \"client_key\": \"CLIENT_KEY\",\n    \"client_secret\": \"CLIENT_SECRET\",\n    \"code\": \"CODE\",\n    \"grant_type\": \"authorization_code\",\n    \"redirect_uri\": \"REDIRECT_URI\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/OAuthAccessTokenResponse.json",
    "content": "{\n    \"access_token\": \"act.example12345Example12345Example\",\n    \"expires_in\": 86400,\n    \"open_id\": \"afd97af1-b87b-48b9-ac98-410aghda5344\",\n    \"refresh_expires_in\": 31536000,\n    \"refresh_token\": \"rft.example12345Example12345Example\",\n    \"scope\": \"user.info.basic,video.list\",\n    \"token_type\": \"Bearer\",\n    \"error\": \"invalid_request\",\n    \"error_description\": \"Redirect_uri is not matched with the uri when requesting code.\",\n    \"log_id\": \"202206221854370101130062072500FFA2\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/OAuthRefreshTokenRequest.json",
    "content": "{\n    \"client_key\": \"CLIENT_KEY\",\n    \"client_secret\": \"CLIENT_SECRET\",\n    \"grant_type\": \"refresh_token\",\n    \"refresh_token\": \"REFRESH_TOKEN\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/OAuthRefreshTokenResponse.json",
    "content": "{\n    \"access_token\": \"act.example12345Example12345Example\",\n    \"expires_in\": 86400,\n    \"open_id\": \"asdf-12345c-1a2s3d-ac98-asdf123as12as34\",\n    \"refresh_expires_in\": 31536000,\n    \"refresh_token\": \"rft.example12345Example12345Example\",\n    \"scope\": \"user.info.basic,video.list\",\n    \"token_type\": \"Bearer\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/OAuthRevokeTokenRequest.json",
    "content": "{\n    \"client_key\": \"CLIENT_KEY\",\n    \"client_secret\": \"CLIENT_SECRET\",\n    \"token\": \"ACCESS_TOKEN\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/Qrcode/OAuthCheckQrcodeRequest.json",
    "content": "{\n    \"client_key\": \"aw7nk86b7czitwc9\",\n    \"client_secret\": \"123fnaoif12n3ij\",\n    \"token\": \"VJ5JCKGJGRSWNMFWHQH4W5NKY943Q97D\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/Qrcode/OAuthCheckQrcodeResponse.json",
    "content": "{\n    \"client_ticket\": \"\",\n    \"status\": \"confirmed\",\n    \"redirect_uri\": \"https://example.com?code=example_code\",\n    \"error\": \"invalid_request\",\n    \"error_description\": \"The request parameters are malformed.\",\n    \"log_id\": \"202206221854370101130062072500FFA2\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/Qrcode/OAuthGetQrcodeRequest.json",
    "content": "{\n    \"client_key\": \"aw7nk86b7czitwc9\",\n    \"scope\": \"user.info.basic,user.info.username\",\n    \"state\": \"key%3Dabc%26key2%3Ddef\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/OAuth/Qrcode/OAuthGetQrcodeResponse.json",
    "content": "{\n    \"scan_qrcode_url\": \"aweme://authorize?authType=100&client_key=abcd1234&client_ticket=tobefilled&...\",\n    \"token\": \"VJ5JCKGJGRSWNMFWHQH4W5NKY943Q97D...\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishContentInitRequest.json",
    "content": "{\n    \"post_info\": {\n        \"title\": \"funny cat\",\n        \"description\": \"this will be a #funny photomode on your @tiktok #fyp\",\n        \"disable_comment\": true,\n        \"privacy_level\": \"PUBLIC_TO_EVERYONE\",\n        \"auto_add_music\": true\n    },\n    \"source_info\": {\n        \"source\": \"PULL_FROM_URL\",\n        \"photo_cover_index\": 1,\n        \"photo_images\": [\n            \"https://tiktokcdn.com/obj/example-image-01.webp\",\n            \"https://tiktokcdn.com/obj/example-image-02.webp\"\n        ]\n    },\n    \"post_mode\": \"DIRECT_POST\",\n    \"media_type\": \"PHOTO\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishContentInitResponse.json",
    "content": "{\n    \"data\": {\n        \"publish_id\": \"p_pub_url~v2.123456789\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202210112248442CB9319E1FB30C1073F3\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishCreatorInfoQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"creator_avatar_url\": \"https://lf16-tt4d.tiktokcdn.com/obj/tiktok-open-platform/8d5740ac3844be417beeacd0df75aef1\",\n        \"creator_username\": \"tiktok\",\n        \"creator_nickname\": \"TikTok Official\",\n        \"privacy_level_options\": [ \"PUBLIC_TO_EVERYONE\", \"MUTUAL_FOLLOW_FRIENDS\", \"SELF_ONLY\" ],\n        \"comment_disabled\": false,\n        \"duet_disabled\": false,\n        \"stitch_disabled\": true,\n        \"max_video_post_duration_sec\": 300\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202210112248442CB9319E1FB30C1073F3\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishInboxVideoInitRequest.json",
    "content": "{\n    \"source_info\": {\n        \"source\": \"PULL_FROM_URL\",\n        \"video_url\": \"https://example.verified.domain.com/example_video.mp4\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishInboxVideoInitResponse.json",
    "content": "{\n    \"data\": {\n        \"publish_id\": \"v_inbox_file~v2.123456789\",\n        \"upload_url\": \"https://open-upload.tiktokapis.com/video/?upload_id=12345&upload_token=Xza123\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202210112248442CB9319E1FB30C1073F3\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishStatusFetchRequest.json",
    "content": "{\n    \"publish_id\": \"PUBLISH_ID\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishStatusFetchResponse.json",
    "content": "{\n    \"data\": {\n        \"status\": \"FAILED\",\n        \"fail_reason\": \"picture_size_check_failed\",\n        \"publicaly_available_post_id\": [],\n        \"uploaded_bytes\": 10000\n    },\n\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202210112248442CB9319E1FB30C1073F3\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishVideoInitRequest.json",
    "content": "{\n    \"post_info\": {\n        \"title\": \"this will be a funny #cat video on your @tiktok #fyp\",\n        \"privacy_level\": \"MUTUAL_FOLLOW_FRIENDS\",\n        \"disable_duet\": false,\n        \"disable_comment\": true,\n        \"disable_stitch\": false,\n        \"video_cover_timestamp_ms\": 1000\n    },\n    \"source_info\": {\n        \"source\": \"FILE_UPLOAD\",\n        \"video_size\": 50000123,\n        \"chunk_size\": 10000000,\n        \"total_chunk_count\": 5\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Post/PostPublishVideoInitResponse.json",
    "content": "{\n    \"data\": {\n        \"publish_id\": \"v_pub_file~v2-1.123456789\",\n        \"upload_url\": \"https://open-upload.tiktokapis.com/video/?upload_id=67890&upload_token=Xza123\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202210112248442CB9319E1FB30C1073F3\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdDetailRequest.json",
    "content": "{\n    \"ad_id\": 104836593772645\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdDetailResponse.json",
    "content": "{\n    \"data\": {\n        \"ad\": {\n            \"first_shown_date\": \"20210101\",\n            \"id\": 1923845247192304,\n            \"image_urls\": [\n                \"https://asdfcdn.com/17392712.jpeg?x-expires=1679169600\\u0026x-signature=asdf\"\n            ],\n            \"last_shown_date\": \"20210101\",\n            \"status\": \"active\",\n            \"videos\": [\n                { \"url\": \"https://asdfcdn.com/..../127364jmdfjsa93d8cn30dm2di/?mime_type=video_mp4\" },\n                { \"url\": \"https://asdfcdn.com/..../1kmeidhfb38u21nd82hsk389fd/?mime_type=video_mp4\" }\n            ],\n            \"reach\": {\n                \"unique_users_seen\": \"30K\",\n                \"unique_users_seen_by_country\": {\n                    \"GB\": \"18K\",\n                    \"IT\": \"12K\"\n                }\n            },\n            \"rejection_info\": {\n                \"affected_countries\": [ \"FR\", \"IT\" ]\n            }\n        },\n        \"ad_group\": {\n            \"targeting_info\": {\n                \"number_of_users_targeted\": \"50K\",\n                \"country\": [ \"IT\", \"GB\" ],\n                \"age\": {\n                    \"13-17\": false,\n                    \"18-24\": false,\n                    \"25-34\": false,\n                    \"35-44\": true,\n                    \"55+\": true\n                },\n                \"gender\": {\n                    \"female\": true,\n                    \"male\": true,\n                    \"other_genders\": true\n                },\n                \"audience_targeting\": \"No\",\n                \"video_interactions\": \"Entertainment\",\n                \"creator_interactions\": \"Talent\",\n                \"interest\": \"News & Entertainment, Business Services\"\n            }\n        },\n        \"advertiser\": {\n            \"business_id\": 1755645247067185,\n            \"business_name\": \"Awesome Co.\",\n            \"country_code\": \"US\",\n            \"paid_by\": \"Awesome Co.\",\n            \"tiktok_account\": {\n                \"avatar_url\": \"https://asdf.tiktokcdn.com/1736254.jpeg?x-expires=1679169600\\u0026x-signature=asdf\",\n                \"follower_count\": 26374,\n                \"profile_url\": \"https://www.tiktok.com/@awesome_co\"\n            }\n        }\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"log_id\": \"202207280326050102231031430C7E754E\",\n        \"message\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdQueryRequest.json",
    "content": "{\n    \"filters\": {\n        \"advertiser_business_ids\": [ 3847236290405, 319282903829 ],\n        \"ad_published_date_range\": {\n            \"min\": \"20210102\",\n            \"max\": \"20210109\"\n        },\n        \"country_code\": \"FR\",\n        \"unique_users_seen_size_range\": {\n            \"min\": \"10K\",\n            \"max\": \"1M\"\n        }\n    },\n    \"search_term\": \"mobile games\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"ads\": [\n            {\n                \"ad\": {\n                    \"first_shown_date\": \"20210101\",\n                    \"id\": 1923845247192304,\n                    \"image_urls\": [\n                        \"https://asdfcdn.com/17392712.jpeg?x-expires=1679169600?x-signature=asdf\"\n                    ],\n                    \"last_shown_date\": \"20210101\",\n                    \"status\": \"active\",\n                    \"videos\": [\n                        { \"url\": \"https://asdfcdn.com/..../127364jmdfjsa93d8cn30dm2di/?mime_type=video_mp4\" },\n                        { \"url\": \"https://asdfcdn.com/..../1kmeidhfb38u21nd82hsk389fd/?mime_type=video_mp4\" }\n                    ],\n                    \"reach\": {\n                        \"unique_users_seen\": \"11K\"\n                    }\n                },\n                \"advertiser\": {\n                    \"business_id\": 3847236290405,\n                    \"business_name\": \"Awe Food Co.\",\n                    \"paid_by\": \"Awe Co.\"\n                }\n            }\n        ],\n        \"has_more\": true,\n        \"search_id\": \"2837438294054038\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"log_id\": \"202304280326050102231031430C7E754E\",\n        \"message\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdReportRequest.json",
    "content": "{\n    \"filters\": {\n        \"ad_published_date_range\": {\n            \"min\": \"20230102\",\n            \"max\": \"20230109\"\n        },\n        \"country_code\": \"ALL\",\n        \"advertiser_business_ids\": [ 21836478203048, 3484763562784 ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdReportResponse.json",
    "content": "{\n    \"data\": {\n        \"count_time_series_by_country\": {\n            \"IT\": [\n                {\n                    \"date\": \"20210109\",\n                    \"count\": 45\n                },\n                {\n                    \"date\": \"20210108\",\n                    \"count\": 24\n                }\n            ],\n            \"ES\": [\n                {\n                    \"date\": \"20210109\",\n                    \"count\": 48\n                },\n                {\n                    \"date\": \"20210108\",\n                    \"count\": 22\n                }\n            ]\n        }\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"log_id\": \"202207280326050102231031430C7E754E\",\n        \"message\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdvertiserQueryRequest.json",
    "content": "{\n    \"search_term\": \"awesome\",\n    \"max_count\": 25\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibAdvertiserQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"advertisers\": [\n            {\n                \"business_id\": 1755645247067185,\n                \"business_name\": \"Awesome Food Co.\",\n                \"country_code\": \"US\"\n            },\n            {\n                \"business_id\": 183746395837294,\n                \"business_name\": \"Awesome Drink Co.\",\n                \"country_code\": \"CA\"\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"log_id\": \"202207280326050102231031430C7E754E\",\n        \"message\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibCommercialContentQueryRequest.json",
    "content": "{\n    \"filters\": {\n        \"content_published_date_range\": {\n            \"min\": \"20210102\",\n            \"max\": \"20210109\"\n        },\n        \"creator_country_code\": \"FR\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Adlib/ResearchAdlibCommercialContentQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"commercial_contents\": [\n            {\n                \"brand_names\": [\n                    \"My Awesome Co.\",\n                    \"HelloWorld Inc.\"\n                ],\n                \"create_date\": \"20230109\",\n                \"create_timestamp\": 1696875852,\n                \"creator\": {\n                    \"username\": \"joe1234567\"\n                },\n                \"id\": 12312312312,\n                \"label\": \"Paid partnership\",\n                \"videos\": [\n                    {\n                        \"cover_image_url\": \"https://asdfcdn.com/17392712.jpeg?x-expires=1679169600\\u0026x-signature=asdf\",\n                        \"url\": \"https://www.tiktok.com/@joe1234567/video/19384729204821234\"\n                    }\n                ]\n            }\n        ],\n        \"has_more\": true,\n        \"search_id\": \"2837438294054038\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"log_id\": \"202207280326050102231031430C7E754E\",\n        \"message\": \"\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Playlist/ResearchPlaylistInfoRequest.json",
    "content": "{\n    \"playlist_id\": 1234534763387255595\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Playlist/ResearchPlaylistInfoResponse.json",
    "content": "{\n    \"data\": {\n        \"playlist_id\": 1234579763387255595,\n        \"playlist_item_total\": 4,\n        \"playlist_last_updated\": 1663620215,\n        \"playlist_name\": \"Test playlist name\",\n        \"playlist_video_ids\": [\n            12351810646859,\n            7289561123404511,\n            7274412345315375,\n            12312311231231231,\n            12312883434352176,\n            71919242345289237,\n            7190923438988788,\n            71800659413240905\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"20240700200656033B747EC0C8DE33C94C\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserFollowersRequest.json",
    "content": "{\n    \"username\": \"test_user\",\n    \"max_count\": 3,\n    \"cursor\": 12347764\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserFollowersResponse.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1706837834,\n        \"has_more\": true,\n        \"user_followers\": [\n            {\n                \"display_name\": \"test user\",\n                \"username\": \"test_username\"\n            },\n            {\n                \"username\": \"test user 2\",\n                \"display_name\": \"test_username2\"\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"123499999999999999999999999999\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserFollowingRequest.json",
    "content": "{\n    \"username\": \"test_user\",\n    \"max_count\": 3,\n    \"cursor\": 1685544251\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserFollowingResponse.json",
    "content": "{\n    \"data\": {\n        \"has_more\": true,\n        \"user_following\": [\n            {\n                \"display_name\": \"test user\",\n                \"username\": \"test_username\"\n            },\n            {\n                \"display_name\": \"test user 2\",\n                \"username\": \"test_username2\"\n            },\n            {\n                \"display_name\": \"test user 3\",\n                \"username\": \"test_username3\"\n            }\n        ],\n        \"cursor\": 1650642422\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"202499999999999999999999999999999\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserInfoRequest.json",
    "content": "{\n    \"username\": \"joe123456\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserInfoResponse.json",
    "content": "{\n    \"data\": {\n        \"bio_description\": \"my_bio\",\n        \"is_verified\": false,\n        \"likes_count\": 27155089,\n        \"video_count\": 44,\n        \"avatar_url\": \"https://some_cdn.com/my_avatar\",\n        \"follower_count\": 232,\n        \"following_count\": 45,\n        \"display_name\": \"my nick name\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202207280326050102231031430C7E754E\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserLikedVideosRequest.json",
    "content": "{\n    \"username\": \"test_username\",\n    \"max_count\": 1,\n    \"cursor\": 1706457540000\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserLikedVideosResponse.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 1706457371000,\n        \"has_more\": true,\n        \"user_liked_videos\": [\n            {\n                \"share_count\": 1,\n                \"view_count\": 1586,\n                \"comment_count\": 6,\n                \"hashtag_names\": [\n                    \"song\",\n                    \"Viral\"\n                ],\n                \"id\": 123123123123,\n                \"music_id\": 4545454545\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"20240299999999999993FCB68B8B13\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserPinnedVideosRequest.json",
    "content": "{\n    \"username\": \"test_username\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserPinnedVideosResponse.json",
    "content": "{\n    \"data\": {\n        \"pinned_videos_list\": [\n            {\n                \"like_count\": 6205646,\n                \"share_count\": 15864,\n                \"view_count\": 44199736,\n                \"comment_count\": 15597,\n                \"id\": 7777777777\n            },\n            {\n                \"share_count\": 6630,\n                \"view_count\": 16171042,\n                \"comment_count\": 6830,\n                \"id\": 3333333333,\n                \"like_count\": 1464523\n            },\n            {\n                \"comment_count\": 2685,\n                \"id\": 9999999999,\n                \"like_count\": 189552,\n                \"share_count\": 4796,\n                \"view_count\": 1305777\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"202499999999999999999999999\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserRepostedVideosRequest.json",
    "content": "{\n    \"username\": \"test_username\",\n    \"max_count\": 6\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/User/ResearchUserRepostedVideosResponse.json",
    "content": "{\n    \"data\": {\n        \"cursor\": 7,\n        \"has_more\": true,\n        \"reposted_videos\": [\n            {\n                \"comment_count\": 64,\n                \"create_time\": 1706442860,\n                \"id\": 77777777777,\n                \"like_count\": 11169,\n                \"music_id\": 111111111111,\n                \"region_code\": \"MD\",\n                \"share_count\": 27,\n                \"view_count\": 148105\n            },\n            {\n                \"like_count\": 717,\n                \"share_count\": 4,\n                \"comment_count\": 12,\n                \"hashtag_names\": [\n                    \"fyp\",\n                    \"example\",\n                    \"trainingseason\",\n                    \"newsong\"\n                ],\n                \"music_id\": 9999999999,\n                \"region_code\": \"DO\",\n                \"view_count\": 56416,\n                \"create_time\": 1706355306,\n                \"id\": 3333333333\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"ok\",\n        \"log_id\": \"202402000999900909990909090999999\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Video/ResearchVideoCommentListRequest.json",
    "content": "{\n    \"video_id\": 7178997441201524010,\n    \"max_count\": 50,\n    \"cursor\": 150\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Video/ResearchVideoCommentListResponse.json",
    "content": "{\n    \"data\": {\n        \"comments\": [\n            {\n                \"text\": \"AWEEEEEE 🥰🥰🥰\",\n                \"video_id\": 1234563451201523412,\n                \"create_time\": 1671491598,\n                \"id\": 12345616934634134,\n                \"like_count\": 50,\n                \"parent_comment_id\": 1234561201524010,\n                \"reply_count\": 10\n            }\n        ],\n        \"has_more\": true,\n        \"cursor\": 300\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"202207280326050102231031430C7E754E\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Video/ResearchVideoQueryRequest.json",
    "content": "{\n    \"query\": {\n        \"and\": [\n            {\n                \"operation\": \"IN\",\n                \"field_name\": \"region_code\",\n                \"field_values\": [ \"JP\", \"US\" ]\n            },\n            {\n                \"operation\": \"EQ\",\n                \"field_name\": \"hashtag_name\",\n                \"field_values\": [ \"animal\" ]\n            }\n        ],\n        \"not\": [\n            {\n                \"operation\": \"EQ\",\n                \"field_name\": \"video_length\",\n                \"field_values\": [ \"SHORT\" ]\n            }\n        ]\n    },\n    \"max_count\": 100,\n    \"cursor\": 0,\n    \"start_date\": \"20230101\",\n    \"end_date\": \"20230115\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Research/Video/ResearchVideoQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"videos\": [\n            {\n                \"id\": 702874395068494965,\n                \"hashtag_names\": [\n                    \"avengers\",\n                    \"pov\"\n                ],\n                \"region_code\": \"CA\",\n                \"create_time\": 1633823999,\n                \"effect_ids\": [\n                    \"0\"\n                ],\n                \"music_id\": 703847506349838790,\n                \"video_description\": \"lol #pov #avengers\",\n                \"view_count\": 1050,\n                \"comment_count\": 2\n            }\n        ],\n        \"cursor\": 100,\n        \"search_id\": \"7201388525814961198\",\n        \"has_more\": true\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"20230113024658F0D7C5D6CA3A9B79C5B9\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataAddRequest.json",
    "content": "{\n    \"data_format\": \"text\",\n    \"category_selection_list\": [ \"profile\", \"direct_message\" ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataAddResponse.json",
    "content": "{\n    \"data\": {\n        \"request_id\": 123451234512345\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"1010xyz10101asdf1010101010100a12abc24\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataCancelRequest.json",
    "content": "{\n    \"request_id\": 123451234512345\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataCheckRequest.json",
    "content": "{\n    \"request_id\": 123451234512345\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataCheckResponse.json",
    "content": "{\n    \"data\": {\n        \"apply_time\": 1703186989,\n        \"category_selection_list\": [\n            \"profile\",\n            \"video\",\n            \"direct_messages\"\n        ],\n        \"collect_time\": 1703187862,\n        \"data_format\": \"text\",\n        \"request_id\": 123451234512345,\n        \"status\": \"downloading\"\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"2023242526272829300000000000001111\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/Data/UserDataDownloadRequest.json",
    "content": "{\n    \"request_id\": 123123123123\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/User/UserInfoResponse.json",
    "content": "{\n    \"data\": {\n        \"user\": {\n            \"avatar_url\": \"https://p19-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/b17f0e4b3a4f4a50993cf72cda8b88b8~c5_168x168.jpeg\",\n            \"open_id\": \"723f24d7-e717-40f8-a2b6-cb8464cd23b4\",\n            \"union_id\": \"c9c60f44-a68e-4f5d-84dd-ce22faeb0ba1\"\n        }\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"20220829194722CBE87ED59D524E727021\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Video/VideoListResponse.json",
    "content": "{\n    \"data\": {\n        \"videos\": [\n            {\n                \"cover_image_url\": \"https://p16-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/979e93dbc5df40198f7ac935fb3e3342~tplv-noop.image?x-expires=1659000367&x-signature=EZIo1pVYVGYh%2FaNNaHHlbWEvw%2BM%3D\",\n                \"id\": \"7058060640279383343\",\n                \"title\": \"Video Title\"\n            }\n        ],\n        \"cursor\": 1643332803000,\n        \"has_more\": false\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"20220829194722CBE87ED59D524E727021\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Video/VideoQueryRequest.json",
    "content": "{\n    \"filters\": {\n        \"video_ids\": [\n            \"7077642457847991554\",\n            \"7080217258529737986\"\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/ModelSamples/Video/VideoQueryResponse.json",
    "content": "{\n    \"data\": {\n        \"videos\": [\n            {\n                \"title\": \"Video 1\",\n                \"id\": \"7077642457847991554\"\n            },\n            {\n                \"title\": \"Video 2\",\n                \"id\": \"7080217258529737986\"\n            }\n        ]\n    },\n    \"error\": {\n        \"code\": \"ok\",\n        \"message\": \"\",\n        \"log_id\": \"20220829194722CBE87ED59D524E727021\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n        <TargetFrameworks>net472; net6.0</TargetFrameworks>\n        <LangVersion>latest</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n        <IsPackable>false</IsPackable>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <None Remove=\".gitignore\" />\n        <Content Include=\"appsettings.json\">\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n            <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n            <CopyToPublishDirectory>Always</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.8.0\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.3.0-preview.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.6.6\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.5.6\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.TikTokGlobal\\SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/TestClients.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new TikTokV2Client(new TikTokV2ClientOptions()\n            {\n                ClientKey = TestConfigs.TikTokClientKey,\n                ClientSecret = TestConfigs.TikTokClientSecret\n            });\n        }\n\n        public static readonly TikTokV2Client Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/TestConfigs.cs",
    "content": "using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfigs\");\n                TikTokClientKey = config.GetProperty(\"ClientKey\").GetString()!;\n                TikTokClientSecret = config.GetProperty(\"ClientSecret\").GetString()!;\n                TikTokAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly string TikTokClientKey;\n        public static readonly string TikTokClientSecret;\n        public static readonly string TikTokAccessToken;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobal.UnitTests/appsettings.json",
    "content": "{\n    \"TestConfigs\": {\n        \"ClientKey\": \"请在此填写用于测试的 TikTok 开发者应用 Key\",\n        \"ClientSecret\": \"请在此填写用于测试的 TikTok 开发者应用密钥\",\n        \"AccessToken\": \"请在此填写用于测试的 TikTok 开发者 AccessToken\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/.gitignore",
    "content": "appsettings.local.json\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/CancellationStatusChangeEvent.json",
    "content": "{\n    \"type\": 11,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"order_id\": \"576486316948490001\",\n        \"cancellations_role\": \"BUYER\",\n        \"cancel_status\": \"CANCELLATION_REQUEST_PENDING\",\n        \"cancel_id\": \"4035318504086604100\",\n        \"create_time\": 1627587600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/OrderStatusChangeEvent.json",
    "content": "{\n    \"type\": 1,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"order_id\": \"576486316948490001\",\n        \"order_status\": \"UNPAID\",\n        \"is_on_hold_order\": false,\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/PackageUpdateEvent.json",
    "content": "{\n    \"type\": 4,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"sc_type\": \"COMBINE\",\n        \"role_type\": \"ROLE_USER\",\n        \"package_list\": [\n            {\n                \"package_id\": \"123456\",\n                \"order_id_list\": [\n                    \"152523\",\n                    \"532123\"\n                ]\n            }\n        ],\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/ProductCreationEvent.json",
    "content": "{\n    \"type\": 16,\n    \"tts_notification_id\": \"7327112393057371910\",\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"product_id\": \"576486316948490000\",\n        \"product_type\": [ \"GPR_PRODUCT\" ],\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/ProductInformationChangeEvent.json",
    "content": "{\n    \"type\": 15,\n    \"tts_notification_id\": \"7327112393057371910\",\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"product_id\": \"123456789\",\n        \"changed_fields\": [\n            \"title\",\n            \"description\",\n            \"main_images\",\n            \"product_attributes\"\n        ],\n        \"update_time\": 1627587600\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/ProductStatusChangeEvent.json",
    "content": "{\n    \"type\": 5,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"product_id\": 576486316948490000,\n        \"status\": \"PRODUCT_FIRST_PASS_REVIEW\",\n        \"suspended_reason\": \"\",\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/RecipientAddressUpdateEvent.json",
    "content": "{\n    \"type\": 3,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"order_id\": \"576486316948490001\",\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/ReturnStatusChangeEvent.json",
    "content": "{\n    \"type\": 12,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"order_id\": \"576486316948490001\",\n        \"return_role\": \"BUYER\",\n        \"return_type\": \"REFUND\",\n        \"return_status\": \"RETURN_OR_REFUND_REQUEST_PENDING\",\n        \"return_id\": \"576486316948490001\",\n        \"create_time\": 1627587600,\n        \"update_time\": 1644412885\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/SellerDeauthorizationEvent.json",
    "content": "{\n    \"type\": 6,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"message\": \"Shop_id {xxx} is deauthorized from your APP by merchant.\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/EventSamples/_/UpcomingAuthorizationExpirationEvent.json",
    "content": "{\n    \"type\": 7,\n    \"shop_id\": \"7494049642642441621\",\n    \"timestamp\": 1644412885,\n    \"data\": {\n        \"message\": \"Authorization of shop_id {xxx} is expirating in {x} days. Please direct the merchant to re-authorize.\",\n        \"expiration_time\": \"1627587506\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/IMPORTANT_CodeAnalyzeTests.cs",
    "content": "using System;\nusing System.IO;\nusing System.Reflection;\nusing SKIT.FlurlHttpClient.Tools.CodeAnalyzer;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests\n{\n    using SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy;\n\n    public class CodeAnalyzeTests\n    {\n        // NOTICE:\n        //   如果 Visual Studio 遇到 “缺少 SKIT.FlurlHttpClient.Tools.CodeAnalyzer 包” 的错误，\n        //   请参考此 Issue：https://github.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient/issues/8\n\n        [Fact(DisplayName = \"代码质量分析\")]\n        public void CodeAnalyze()\n        {\n            Assert.Multiple(\n                CodeAnalyze_BaseSDK,\n                CodeAnalyze_ExtendedSDK_Legacy\n            );\n        }\n\n        private void CodeAnalyze_BaseSDK()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokShopClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\",\n                    IgnoreExecutingExtensionTypes = static type => type.Namespace!.Contains(\".ExtendedSDK.\"),\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true,\n                    ThrowOnNotFoundWebhookEventTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokShopClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Models\",\n                    SdkWebhookEventDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.Events\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/\"),\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/_/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/_/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/_/\", \n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundWebhookEventClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundWebhookEventSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n\n        private void CodeAnalyze_ExtendedSDK_Legacy()\n        {\n            Assert.Null(Record.Exception(() =>\n            {\n                var options = new TypeDeclarationAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokShopLegacyClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy.Models\",\n                    SdkExecutingExtensionDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy\",\n                    ThrowOnNotFoundRequestModelTypes = true,\n                    ThrowOnNotFoundResponseModelTypes = true,\n                    ThrowOnNotFoundExecutingExtensionTypes = true\n                };\n                new TypeDeclarationAnalyzer(options).AssertNoIssues();\n            }));\n\n            Assert.Null(Record.Exception(() =>\n            {\n                string workdir = Environment.CurrentDirectory;\n                string projdir = Path.Combine(workdir, \"../../../../../\");\n\n                var options = new SourceFileAnalyzerOptions()\n                {\n                    SdkAssembly = Assembly.GetAssembly(typeof(TikTokShopLegacyClient))!,\n                    SdkRequestModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy.Models\",\n                    SdkResponseModelDeclarationNamespace = \"SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.ExtendedSDK.Legacy.Models\",\n                    ProjectSourceRootDirectory = Path.Combine(projdir, \"./src/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop/\"),\n                    ProjectSourceRequestModelClassCodeSubDirectory = \"ExtendedSDK/Legacy/Models/\",\n                    ProjectSourceResponseModelClassCodeSubDirectory = \"ExtendedSDK/Legacy/Models/\",\n                    ProjectSourceExecutingExtensionClassCodeSubDirectory = \"ExtendedSDK/Legacy/Extensions/\",\n                    ProjectTestRootDirectory = Path.Combine(projdir, \"./test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/\"),\n                    ProjectTestRequestModelSerializationSampleSubDirectory = \"ModelSamples/Legacy/\",\n                    ProjectTestResponseModelSerializationSampleSubDirectory = \"ModelSamples/Legacy/\",\n                    ProjectTestWebhookEventSerializationSampleSubDirectory = \"EventSamples/Legacy/\",\n                    ThrowOnNotFoundRequestModelClassCodeFiles = true,\n                    ThrowOnNotFoundResponseModelClassCodeFiles = true,\n                    ThrowOnNotFoundExecutingExtensionClassCodeFiles = true,\n                    ThrowOnNotFoundRequestModelSerializationSampleFiles = true,\n                    ThrowOnNotFoundResponseModelSerializationSampleFiles = true\n                };\n                new SourceFileAnalyzer(options).AssertNoIssues();\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Auth/AuthGetTokenResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"access_token\": \"ROW_Fw8rBwAAAAAkW03FYd09DG-9INtpw361hWthei8S3fHX8iPJ5AUv99fLSCYD9-UucaqxTgNRzKZxi5-tfFMtdWqglEt5_iCk\",\n        \"access_token_expire_in\": 1660556783,\n        \"refresh_token\": \"NTUxZTNhYTQ2ZDk2YmRmZWNmYWY2YWY2YzkxNGYwNjQ3YjkzYTllYjA0YmNlMw\",\n        \"refresh_token_expire_in\": 1691487031,\n        \"open_id\": \"7010736057180325637\",\n        \"seller_name\": \"Jjj test shop\",\n        \"seller_base_region\": \"ID\",\n        \"user_type\": 0\n    },\n    \"request_id\": \"2022080809462301024509910319695C45\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Auth/AuthRefreshTokenResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"access_token\": \"ROW_Fw8rBwAAAAAkW03FYd09DG-9INtpw361hWthei8S3fHX8iPJ5AUv99fLSCYD9-UucaqxTgNRzKZxi5-tfFMtdWqglEt5_iCk\",\n        \"access_token_expire_in\": 1660556783,\n        \"refresh_token\": \"NTUxZTNhYTQ2ZDk2YmRmZWNmYWY2YWY2YzkxNGYwNjQ3YjkzYTllYjA0YmNlMw\",\n        \"refresh_token_expire_in\": 1691487031,\n        \"open_id\": \"7010736057180325637\",\n        \"seller_name\": \"Jjj test shop\",\n        \"seller_base_region\": \"ID\",\n        \"user_type\": 0\n    },\n    \"request_id\": \"2022080809462301024509910319695C45\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Finance/FinanceGetOrderSettlementListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"Success\",\n    \"request_id\": \"202202230611580102452480140FA71BBF\",\n    \"data\": {\n        \"settlement_list\": [\n            {\n                \"sku_id\": \"0\",\n                \"sku_name\": \"\",\n                \"product_name\": \"\",\n                \"sett_status\": 4,\n                \"settlement_info\": {\n                    \"settlement_time\": 1634009699,\n                    \"currency\": \"IDR\",\n                    \"user_pay\": \"300\",\n                    \"platform_promotion\": \"29600\",\n                    \"refund\": \"0\",\n                    \"payment_fee\": \"3\",\n                    \"platform_commission\": \"0\",\n                    \"affiliate_commission\": \"0\",\n                    \"vat\": \"0\",\n                    \"shipping_fee\": \"17342\",\n                    \"settlement_amount\": \"12558\"\n                },\n                \"unique_key\": 7017041842550081282\n            },\n            {\n                \"product_name\": \"\",\n                \"sett_status\": \"4\",\n                \"settlement_info\": {\n                    \"affiliate_commission\": \"0\",\n                    \"affiliate_partner_commission\": \"0\",\n                    \"charge_back\": \"0\",\n                    \"currency\": \"\",\n                    \"customer_service_compensation\": \"0\",\n                    \"flat_fee\": \"0\",\n                    \"gst\": \"0\",\n                    \"other_adjustment\": \"0\",\n                    \"payment_fee\": \"0\",\n                    \"platform_commission\": \"0\",\n                    \"platform_promotion\": \"0\",\n                    \"promotion_adjustment\": \"0\",\n                    \"refund\": \"0\",\n                    \"refund_subtotal_after_seller_discounts\": \"0\",\n                    \"sales_fee\": \"0\",\n                    \"settlement_amount\": \"0\",\n                    \"settlement_time\": 1635984000,\n                    \"sfp_service_fee\": \"0\",\n                    \"shipping_fee\": \"0\",\n                    \"shipping_fee_adjustment\": \"0\",\n                    \"shipping_fee_subsidy\": \"0\",\n                    \"small_order_fee\": \"0\",\n                    \"subtotal_after_seller_discounts\": \"0\",\n                    \"transaction_fee\": \"0\",\n                    \"user_pay\": \"0\",\n                    \"vat\": \"0\"\n                },\n                \"sku_id\": \"\",\n                \"sku_name\": \"\",\n                \"unique_key\": \"123123\"\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Finance/FinanceSearchSettlementsRequest.json",
    "content": "{\n    \"cursor\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n    \"page_size\": 20,\n    \"request_time_from\": 1636105796,\n    \"request_time_to\": 1636105796,\n    \"sort_type\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Finance/FinanceSearchSettlementsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"Success\",\n    \"request_id\": \"20211105101202010245248014063F9014\",\n    \"data\": {\n        \"more\": false,\n        \"next_cursor\": \"aThUdHhKcDZjRmxLYkJDS3JMRm9MbUQ1VE1mZWovVUh1ejZXUVFQS2wzTkFyL289\",\n        \"settlement_list\": [\n            {\n                \"unique_key\": 7024412596837025542,\n                \"order_id\": \"576462919350519044\",\n                \"adjustment_id\": \"0\",\n                \"related_order_id\": \"576462919350519044\",\n                \"sku_id\": \"0\",\n                \"sku_name\": \"\",\n                \"product_name\": \"\",\n                \"settlement_info\": {\n                    \"settlement_time\": 1635984000,\n                    \"currency\": \"IDR\",\n                    \"user_pay\": \"1000\",\n                    \"platform_promotion\": \"0\",\n                    \"refund\": \"1000\",\n                    \"payment_fee\": \"0\",\n                    \"platform_commission\": \"0\",\n                    \"affiliate_commission\": \"0\",\n                    \"vat\": \"0\",\n                    \"shipping_fee\": \"0\",\n                    \"settlement_amount\": \"0\"\n                }\n            },\n            {\n                \"unique_key\": 7024412596837025542,\n                \"order_id\": \"576462772652640213\",\n                \"adjustment_id\": \"576462772652640213\",\n                \"related_order_id\": \"576462772652640213\",\n                \"sku_id\": \"0\",\n                \"sku_name\": \"\",\n                \"product_name\": \"\",\n                \"settlement_info\": {\n                    \"affiliate_commission\": \"0\",\n                    \"affiliate_partner_commission\": \"0\",\n                    \"charge_back\": \"0\",\n                    \"currency\": \"\",\n                    \"customer_service_compensation\": \"0\",\n                    \"flat_fee\": \"0\",\n                    \"gst\": \"0\",\n                    \"other_adjustment\": \"0\",\n                    \"payment_fee\": \"0\",\n                    \"platform_commission\": \"0\",\n                    \"platform_promotion\": \"0\",\n                    \"promotion_adjustment\": \"0\",\n                    \"refund\": \"0\",\n                    \"refund_subtotal_after_seller_discounts\": \"100\",\n                    \"sales_fee\": \"0\",\n                    \"seller_reason_fund_deduction\": \"0\",\n                    \"settlement_amount\": \"0\",\n                    \"settlement_time\": 1635984000,\n                    \"sfp_service_fee\": \"0\",\n                    \"shipping_fee\": \"0\",\n                    \"shipping_fee_adjustment\": \"0\",\n                    \"shipping_fee_subsidy\": \"0\",\n                    \"small_order_fee\": \"0\",\n                    \"subtotal_after_seller_discounts\": \"100\",\n                    \"transaction_fee\": \"0\",\n                    \"user_pay\": \"0\"\n                }\n            }\n        ]\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Finance/FinanceSearchTransactionsRequest.json",
    "content": "{\n    \"offset\": 0,\n    \"page_size\": 10,\n    \"request_time_from\": 1639483861,\n    \"request_time_to\": 1640483861,\n    \"transaction_type\": [\n        3\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Finance/FinanceSearchTransactionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"more\": false,\n        \"total\": 1,\n        \"transaction_list\": [\n            {\n                \"transaction_amount\": \"10\",\n                \"transaction_currency\": \"IDR\",\n                \"transaction_status\": 1,\n                \"transaction_time\": 1639483861,\n                \"transaction_type\": 3\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentBatchShipPackageRequest.json",
    "content": "{\n    \"package_list\": [\n        {\n            \"package_id\": \"1232131231243123213\",\n            \"pick_up\": {\n                \"pick_up_end_time\": 1623812664,\n                \"pick_up_start_time\": 1623812664\n            },\n            \"pick_up_type\": 1,\n            \"self_shipment\": {\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"tracking_number\": \"JX12345\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentBatchShipPackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"fail_packages_list\": [\n            {\n                \"fail_code\": 10007014,\n                \"fail_reason\": \"fulfillment not allow rts\",\n                \"package_id\": \"1231231231231313123132\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentCreateLabelRequest.json",
    "content": "{\n    \"dimension\": {\n        \"height\": \"0.03\",\n        \"length\": \"1.2\",\n        \"width\": \"0.2\"\n    },\n    \"dimension_unit\": 2,\n    \"package_id\": \"2882335594258860015\",\n    \"shipping_service_id\": \"288233559123860015\",\n    \"weight\": \"1.2\",\n    \"weight_unit\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentCreateLabelResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"dimension\": {\n            \"height\": \"0.03\",\n            \"length\": \"1.2\",\n            \"width\": \"0.2\"\n        },\n        \"dimension_unit\": 2,\n        \"package_id\": \"2882335594258860015\",\n        \"shipping_service_info\": {\n            \"currency\": \"dollar\",\n            \"delivery_time_end\": 5,\n            \"delivery_time_start\": 3,\n            \"id\": \"288233559123860015\",\n            \"name\": \"UPS-first class\",\n            \"price\": \"10\",\n            \"provider_id\": \"288232259123860012\",\n            \"provider_name\": \"UPS\"\n        },\n        \"weight\": \"1.2\",\n        \"weight_unit\": 2\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetPackageDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"cancel_because_logistic_issue\": 1,\n        \"create_time\": 1635338186,\n        \"delivery_option\": 1,\n        \"note_tag\": 1,\n        \"order_info_list\": [\n            {\n                \"order_id\": \"123456\",\n                \"sku_list\": [\n                    {\n                        \"quantity\": \"5\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_image\": \"https://p19-oec-sg.ibyteimg.com/tos-maliva-i-o3syd03w52-us/12345670c5480408aa668\",\n                        \"sku_name\": \"white,128g\"\n                    }\n                ]\n            }\n        ],\n        \"order_line_id_list\": [\n            \"1729382476852921560\"\n        ],\n        \"package_freeze_status\": 100,\n        \"package_id\": 123456,\n        \"package_status\": 1,\n        \"pick_up_end_time\": 1635338186,\n        \"pick_up_start_time\": 1635338186,\n        \"pick_up_type\": 1,\n        \"print_tag\": 1,\n        \"sc_tag\": 1,\n        \"shipping_provider\": \"TT Virtual express\",\n        \"shipping_provider_id\": \"6617675021119438849\",\n        \"sku_tag\": 1,\n        \"tracking_number\": \"6617675021119438849\",\n        \"update_time\": 1635338186\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetPackagePickupConfigResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"drop_off_point_url\": \"www.j&t.com\",\n        \"is_drop_off\": true,\n        \"is_pick_up\": true,\n        \"is_van_collection\": true,\n        \"pick_up_time_list\": [\n            {\n                \"avaliable\": true,\n                \"end_time\": \"1623812678\",\n                \"start_time\": \"1623812664\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetPackageShippingDocumentResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"doc_url\": \"https://magelng.bytedance.net2/wsos_v2/oec_fulfillment_doc_tts/object/wsos641232\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetPackageShippingInfoResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"tracking_info_list\": [\n            {\n                \"description\": \"Your order was placed.\",\n                \"update_time\": 1623812664\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetShippingServiceRequest.json",
    "content": "{\n    \"dimension\": {\n        \"height\": \"0.04\",\n        \"length\": \"0.3\",\n        \"width\": \"0.2\"\n    },\n    \"dimension_unit\": 2,\n    \"package_id\": \"2882335594258860015\",\n    \"weight\": \"0.4\",\n    \"weight_unit\": 2\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentGetShippingServiceResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"dimension\": {\n            \"height\": \"0.04\",\n            \"length\": \"0.3\",\n            \"width\": \"0.2\"\n        },\n        \"dimension_unit\": 2,\n        \"package_id\": \"2882335594258860015\",\n        \"shipping_service_info\": [\n            {\n                \"currency\": \"dollar\",\n                \"delivery_time_end\": 5,\n                \"delivery_time_start\": 3,\n                \"id\": \"288233559123860015\",\n                \"is_default\": false,\n                \"name\": \"UPS-first class\",\n                \"price\": \"5\",\n                \"provider_id\": \"288233559123860012\",\n                \"provider_name\": \"UPS\"\n            }\n        ],\n        \"weight\": \"0.4\",\n        \"weight_unit\": 2\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentSearchPackagesRequest.json",
    "content": "{\n    \"cancel_because_logistic_issue\": 1,\n    \"create_time_from\": 1623812665,\n    \"create_time_to\": 1623812664,\n    \"cursor\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n    \"package_status\": 100,\n    \"page_size\": 20,\n    \"sort_by\": \"PAY_TIME\",\n    \"sort_type\": 1,\n    \"update_time_from\": 1623812664,\n    \"update_time_to\": 1623812664\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentSearchPackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"more\": true,\n        \"next_cursor\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"package_list\": [\n            {\n                \"create_time\": 1635338186,\n                \"package_id\": \"123456\",\n                \"package_status\": 1,\n                \"update_time\": 1635338186\n            }\n        ],\n        \"total\": 22113\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentShipPackageRequest.json",
    "content": "{\n    \"package_id\": \"123456\",\n    \"pick_up\": {\n        \"pick_up_end_time\": 1623812664,\n        \"pick_up_start_time\": 1623812664\n    },\n    \"pick_up_type\": 1,\n    \"self_shipment\": {\n        \"shipping_provider_id\": \"6965352555291346690\",\n        \"tracking_number\": \"576460868968549926\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentShipPackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"fail_packages\": [\n            {\n                \"fail_code\": 12,\n                \"fail_reason\": \"Invalid tracking num\",\n                \"package_id\": \"1152940335842821172\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentUpdatePackageDeliveryStatusRequest.json",
    "content": "{\n    \"delivery_packages\": [\n        {\n            \"delivery_type\": 1,\n            \"file_type\": 1,\n            \"file_url\": \"https://maellane.bytedance.net/wsos_v2/oec_fulfillment_doc_tts/o\",\n            \"package_id\": \"1152959872340240647\",\n            \"reason\": 100\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentUpdatePackageDeliveryStatusResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"fail_packages\": [\n            {\n                \"err_code\": 21008021,\n                \"message\": \"sof delivery package id does not exist\",\n                \"package_id\": \"1152959872340240647\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentUpdatePackageShippingInfoRequest.json",
    "content": "{\n    \"package_id\": \"1152940335842821172\",\n    \"provider_id\": \"6965352555291346690\",\n    \"tracking_number\": \"576460868968549926\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/FulfillmentUpdatePackageShippingInfoResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_reason\": \"Invalid tracking Num\",\n        \"update_success\": false\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentConfirmOrderSplitRequest.json",
    "content": "{\n    \"order_id\": \"576462377512830200\",\n    \"split_group\": [\n        {\n            \"order_line_id_list\": [\n                \"576462377512830200\",\n                \"576462377512830200\"\n            ],\n            \"pre_split_pkg_id\": \"123\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentConfirmOrderSplitResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"confirm_result_list\": [\n            {\n                \"confirm_result\": true,\n                \"pre_split_pkg_id\": \"123\"\n            }\n        ],\n        \"fail_list\": [\n            {\n                \"fail_reason\": \"fulfill unit freeze1\",\n                \"pre_split_pkg_id\": \"123\"\n            }\n        ],\n        \"success_list\": [\n            {\n                \"package_id\": 223362377512830200,\n                \"pre_split_pkg_id\": \"123\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentRemovePackageOrdersRequest.json",
    "content": "{\n    \"order_id_list\": [\n        \"111\"\n    ],\n    \"package_id\": \"111\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentRemovePackageOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_package_list\": [\n            {\n                \"code\": 12,\n                \"message\": \"Wrong order\",\n                \"package_id\": \"123456\"\n            }\n        ],\n        \"package_list\": [\n            {\n                \"order_id_list\": [\n                    \"576462377512830168\",\n                    \"576462377512830168\"\n                ],\n                \"package_id\": \"123456\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentVerifyOrderSplitRequest.json",
    "content": "{\n    \"order_id_list\": [\n        \"576462377512830200\",\n        \"576462377512830200\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Order/FulfillmentVerifyOrderSplitResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"fail_list\": [\n            {\n                \"fail_reason\": \"fulfill unit freeze\",\n                \"order_id\": \"576462377512830168\"\n            }\n        ],\n        \"result_list\": [\n            {\n                \"order_id\": \"576462377512830168\",\n                \"verify_order_result\": true\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/PreCombinePackage/FulfillmentConfirmPreCombinePackageRequest.json",
    "content": "{\n    \"pre_combine_pkg_list\": [\n        {\n            \"order_id_list\": [\n                \"123\",\n                \"233\"\n            ],\n            \"pre_combine_pkg_id\": \"123\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/PreCombinePackage/FulfillmentConfirmPreCombinePackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_package_list\": [\n            {\n                \"code\": 21011010,\n                \"message\": \"invalid pre-combine pkg\",\n                \"package_id\": \"123123123\"\n            }\n        ],\n        \"package_list\": [\n            {\n                \"order_id_list\": [\n                    \"123\",\n                    \"233\"\n                ],\n                \"package_id\": \"123123123\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/PreCombinePackage/FulfillmentSearchPreCombinePackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"more\": false,\n        \"next_cursor\": \"aDV5MXEyV1ZaVTlKUkdSTDlDdUlhc2xCNDhFVDMzMmpwdC8vZnJJblFkQzhHSUk9\",\n        \"pre_combine_pkg_list\": [\n            {\n                \"order_id_list\": [\n                    \"123\",\n                    \"233\"\n                ],\n                \"pre_combine_pkg_id\": \"1241251\"\n            }\n        ],\n        \"total\": 10\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Upload/FulfillmentUploadFileRequest.json",
    "content": "{\n    \"file_data\": \"BWWCusFdYKa4W1wlphrbBWWCusFdYKaxtOawMj5ftPCQAAAABJRU5ErkJggg==\",\n    \"file_name\": \"upload_attachment_file\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Upload/FulfillmentUploadFileResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"file_id\": \"fdasdf123dsaf\",\n        \"file_name\": \"upload_attachment_file\",\n        \"file_type\": \"PDF\",\n        \"file_url\": \"https://maellane.bytedance.net/wsos_v2/oec_fulfillment_doc_tts/o\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Upload/FulfillmentUploadImageRequest.json",
    "content": "{\n    \"img_data\": \"fdafxdfaSFDfdsdDFDfdsafeDLKJFLDKiELFNLDKdfafdfSXJIFOenlsdifjeLDKFJDIOEffda\",\n    \"img_scene\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Fulfillment/Upload/FulfillmentUploadImageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"img_height\": 256,\n        \"img_id\": \"\",\n        \"img_scene\": 1,\n        \"img_url\": \"https://p-pbe38.byted.org/tos-ppdi18n-i-0euhj0x6u9/0a119a90d90b41e3838608bc384\",\n        \"img_width\": 256\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/Category/GlobalProductGetAttributeListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"attributes\": [\n            {\n                \"attribute_type\": 3,\n                \"id\": 100392,\n                \"input_type\": {\n                    \"is_customized\": true,\n                    \"is_mandatory\": true,\n                    \"is_multiple_selected\": true,\n                    \"mandatory_regions\": [\n                        \"ID\"\n                    ]\n                },\n                \"name\": \"Occasion\",\n                \"values\": [\n                    {\n                        \"id\": 1001533,\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/Category/GlobalProductGetCategoryListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_list\": [\n            {\n                \"category_name\": \"Home Supplies\",\n                \"id\": 600001,\n                \"is_leaf\": false,\n                \"parent_id\": 0,\n                \"status\": [\n                    1\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/Category/GlobalProductGetCategoryRulesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_rules\": [\n            {\n                \"product_certifications\": [\n                    {\n                        \"id\": 6956745487312517000,\n                        \"is_mandatory\": true,\n                        \"mandatory_regions\": [\n                            \"MY\"\n                        ],\n                        \"name\": \"xxx\",\n                        \"optional_regions\": [\n                            \"SG\"\n                        ],\n                        \"sample\": \"xxxxxxxxxxxxx\"\n                    }\n                ],\n                \"size_chart_rule\": {\n                    \"is_size_chart_mandatory\": true\n                },\n                \"support_size_chart\": true\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductCreateProductRequest.json",
    "content": "{\n    \"category_id\": 600001,\n    \"description\": \"<p>test</p>\",\n    \"exemption_of_identifier_code\": {\n        \"exemption_reason\": \"1\"\n    },\n    \"images\": [\n        {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"package_height\": 12,\n    \"package_length\": 10,\n    \"package_weight\": \"1\",\n    \"package_width\": 11,\n    \"product_attributes\": [\n        {\n            \"attribute_id\": \"100392\",\n            \"attribute_values\": [\n                {\n                    \"value_id\": \"1001533\",\n                    \"value_name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"product_certifications\": [\n        {\n            \"files\": [\n                {\n                    \"id\": \"\\t\\ntos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                    \"name\": \"xxx.PDF\",\n                    \"type\": \"PDF\"\n                }\n            ],\n            \"id\": 123456,\n            \"images\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"product_name\": \"Title-xxaa\",\n    \"size_chart\": {\n        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n    },\n    \"skus\": [\n        {\n            \"available_stock\": 9999,\n            \"original_price\": \"999\",\n            \"product_identifier_code\": {\n                \"identifier_code\": \"12345678901234\",\n                \"identifier_code_type\": 1\n            },\n            \"sales_attributes\": [\n                {\n                    \"attribute_id\": 100089,\n                    \"attribute_name\": \"Specification\",\n                    \"custom_value\": \"XL\",\n                    \"sku_img\": {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": 1729592969712207000\n                }\n            ],\n            \"seller_sku\": \"seller sku xxaa\",\n            \"stock_infos\": [\n                {\n                    \"available_stock\": 100,\n                    \"warehouse_id\": \"6966568648651605766\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductCreateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_product_id\": 1729592969712207000,\n        \"skus\": [\n            {\n                \"global_sku_id\": 1729592969712207000,\n                \"sales_attributes\": [\n                    {\n                        \"attribute_id\": 100089,\n                        \"value_id\": 1729592969712207000\n                    }\n                ],\n                \"seller_sku\": \"seller sku xxaa\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductDeleteProductsRequest.json",
    "content": "{\n    \"global_product_ids\": [\n        \"1234567890\",\n        \"1234567891\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductDeleteProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_global_product_ids\": [\n            \"1234567890\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductGetProductDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_id\": 600006,\n        \"create_time\": 123456789,\n        \"description\": \"<p>test</p>\",\n        \"global_product_id\": 1729592969712208000,\n        \"images\": [\n            {\n                \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n            }\n        ],\n        \"local_products\": [\n            {\n                \"id\": 1729592969712208000,\n                \"region\": \"ID\"\n            }\n        ],\n        \"package_height\": 12,\n        \"package_length\": 10,\n        \"package_weight\": \"1\",\n        \"package_width\": 11,\n        \"product_attributes\": [\n            {\n                \"attribute_id\": \"100392\",\n                \"attribute_values\": [\n                    {\n                        \"value_id\": \"1001533\",\n                        \"value_name\": \"Birthday\"\n                    }\n                ]\n            }\n        ],\n        \"product_certifications\": [\n            {\n                \"files\": [\n                    {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"name\": \"xxx.PDF\",\n                        \"type\": \"PDF\"\n                    }\n                ],\n                \"id\": 6956745487312517000,\n                \"images\": [\n                    {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    }\n                ]\n            }\n        ],\n        \"product_name\": \"xxx xxx\",\n        \"size_chart\": {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"skus\": [\n            {\n                \"id\": 1729592969712207000,\n                \"original_price\": \"999\",\n                \"product_identifier_code\": {\n                    \"identifier_code\": \"12345678901234\",\n                    \"identifier_code_type\": 1\n                },\n                \"sales_attributes\": [\n                    {\n                        \"attribute_id\": 100089,\n                        \"attribute_name\": \"Specification\",\n                        \"custom_value\": \"XL\",\n                        \"sku_img\": {\n                            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                        },\n                        \"value_id\": 1729592969712207000\n                    }\n                ],\n                \"seller_sku\": \"seller sku xxaa\",\n                \"stock_info\": {\n                    \"available_stock\": 9999\n                }\n            }\n        ],\n        \"warranty_period\": 1,\n        \"warranty_policy\": \"xxx\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductPublishProductRequest.json",
    "content": "{\n    \"global_product_id\": \"1729592969712208000\",\n    \"publishable_shops\": [\n        {\n            \"global_product_sku\": [\n                {\n                    \"available_stock\": 100,\n                    \"id\": \"1729592969712207400\",\n                    \"original_price\": 1000,\n                    \"warehouse_id\": \"6943575270695766000\"\n                }\n            ],\n            \"region\": \"ID\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductPublishProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"publish_list\": [\n            {\n                \"local_product_id\": 1729592969712208000,\n                \"local_product_publish_result\": 1,\n                \"shop_id\": 7494566841246124000,\n                \"shop_region\": \"ID\",\n                \"skus\": [\n                    {\n                        \"global_sku_id\": 1729592969712207400,\n                        \"local_sale_attributes\": [\n                            {\n                                \"attribute_id\": 100089,\n                                \"value_id\": 1729592969712207000\n                            }\n                        ],\n                        \"local_seller_sku\": \"xxx xxx xxx\",\n                        \"local_sku_id\": 1729592969712207400\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductSearchProductsRequest.json",
    "content": "{\n    \"create_time_from\": 1234567880,\n    \"create_time_to\": 1234567889,\n    \"page_number\": 1,\n    \"page_size\": 100,\n    \"seller_sku_list\": [\n        \"seller sku xxaa\"\n    ],\n    \"status\": 1,\n    \"update_time_from\": 1234567890,\n    \"update_time_to\": 1234567899\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductSearchProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_products\": [\n            {\n                \"create_time\": 1234567890,\n                \"id\": \"1729592969712207008\",\n                \"name\": \"global product xxaa\",\n                \"skus\": [\n                    {\n                        \"id\": \"1729592969712207012\",\n                        \"seller_sku\": \"seller sku xxaa\"\n                    }\n                ],\n                \"status\": 1,\n                \"update_time\": 1234567899\n            }\n        ],\n        \"total\": 9999\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductUpdateProductPriceRequest.json",
    "content": "{\n    \"global_product_id\": \"1729592969712208000\",\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207400\",\n            \"original_price\": \"1000\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductUpdateProductPriceResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_skus\": [\n            {\n                \"failed_code\": 12019209,\n                \"failed_msg\": \"sync local price error\",\n                \"global_sku_id\": 1729592969712207400,\n                \"local_sku_id\": 1729592969712207400,\n                \"region\": \"ID\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductUpdateProductRequest.json",
    "content": "{\n    \"category_id\": \"600006\",\n    \"description\": \"<p>test</p>\",\n    \"exemption_of_identifier_code\": {\n        \"exemption_reason\": \"1\"\n    },\n    \"global_product_id\": \"1729592969712208000\",\n    \"images\": [\n        {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"package_height\": 12,\n    \"package_length\": 10,\n    \"package_weight\": \"1\",\n    \"package_width\": 11,\n    \"product_attributes\": [\n        {\n            \"attribute_id\": \"100392\",\n            \"attribute_values\": [\n                {\n                    \"value_id\": \"1001533\",\n                    \"value_name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"product_certifications\": [\n        {\n            \"files\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                    \"name\": \"xxx.PDF\",\n                    \"type\": \"PDF\"\n                }\n            ],\n            \"id\": \"6956745487312517000\",\n            \"images\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"product_name\": \"xxx xxx\",\n    \"size_chart\": {\n        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n    },\n    \"skus\": [\n        {\n            \"available_stock\": 100,\n            \"id\": \"1729592969712207400\",\n            \"product_identifier_code\": {\n                \"identifier_code\": \"12345678901234\",\n                \"identifier_code_type\": 1\n            },\n            \"sales_attributes\": [\n                {\n                    \"attribute_id\": \"100089\",\n                    \"attribute_name\": \"Specification\",\n                    \"custom_value\": \"XL\",\n                    \"sku_img\": {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\"\n                }\n            ],\n            \"seller_sku\": \"xxx xxx xxx\",\n            \"sku_price\": \"1000\"\n        }\n    ],\n    \"warranty_period\": 1,\n    \"warranty_policy\": \"xxx\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/GlobalProduct/GlobalProductUpdateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"local_product_info\": [\n            {\n                \"local_product_edit_result\": 1,\n                \"local_product_id\": 1729592969712207000,\n                \"local_product_region\": \"GB\"\n            }\n        ],\n        \"product_id\": \"1729592969712207922\",\n        \"skus\": [\n            {\n                \"global_sku_id\": 1729592969712207400,\n                \"seller_sku\": \"xxx xxx xxx\",\n                \"sku_property\": [\n                    {\n                        \"id\": 100089,\n                        \"name\": \"Specification\",\n                        \"value_id\": 1729592969712207000,\n                        \"value_name\": \"XL\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetShippingDocumentResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"doc_url\": \"http://open-api.tiktokglobalshop.com/pssresource/external/download?ticket=qYF6Z1\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetShippingInfoResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"tracking_info_list\": [\n            {\n                \"tracking_info\": [\n                    {\n                        \"description\": \"Your order was placed.\\n\",\n                        \"update_time\": 1623812664\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetShippingProviderListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"delivery_option_list\": [\n            {\n                \"delivery_option_id\": \"6955034615128000261\",\n                \"delivery_option_name\": \"JNT_ID_Service\",\n                \"item_dimension_limit\": {\n                    \"height\": 100,\n                    \"length\": 100,\n                    \"width\": 100\n                },\n                \"item_weight_limit\": {\n                    \"max_weight\": 100,\n                    \"min_weight\": 0\n                },\n                \"shipping_provider_list\": [\n                    {\n                        \"shipping_provider_id\": \"696535255529134669\",\n                        \"shipping_provider_name\": \"JX Express\\n\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetSubscribedDeliveryOptionsRequest.json",
    "content": "{\n    \"warehouse_id_list\": [\n        \"7000714532876273410\",\n        \"7000714532876273899\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetSubscribedDeliveryOptionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"warehouse_list\": [\n            {\n                \"warehouse_delivery\": [\n                    {\n                        \"delivery_option\": 1,\n                        \"service_id\": \"\",\n                        \"service_name\": \"LSV-Standard-PH\"\n                    }\n                ],\n                \"warehouse_id\": \"7000714532876273410\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsGetWarehouseListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"warehouse_list\": [\n            {\n                \"is_default\": true,\n                \"warehouse_address\": {\n                    \"city\": \"Aceh Jaya\",\n                    \"contact_person\": \"wbx\",\n                    \"district\": \"Panga\",\n                    \"full_address\": \"\",\n                    \"phone\": \"6966507629925778438\",\n                    \"region\": \"Republic of Indonesia\",\n                    \"region_code\": \"ID\",\n                    \"state\": \"Aceh\",\n                    \"town\": \"Alue Pande\",\n                    \"zipcode\": \"23683\"\n                },\n                \"warehouse_effect_status\": 1,\n                \"warehouse_id\": \"7000714532876273410\",\n                \"warehouse_name\": \"Maomao beauty shop\",\n                \"warehouse_status\": 1,\n                \"warehouse_sub_type\": 1,\n                \"warehouse_type\": 1\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Logistics/LogisticsUpdateShippingInfoRequest.json",
    "content": "{\n    \"order_id\": \"576463173535499480\",\n    \"provider_id\": \"6965352555291346690\",\n    \"tracking_number\": \"576460868968549926\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Order/OrderGetOrderDetailRequest.json",
    "content": "{\n    \"order_id_list\": [\n        \"576462377512830168\",\n        \"576462377512830168\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Order/OrderGetOrderDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"order_list\": [\n            {\n                \"buyer_email\": \"v2b2V5@chat.seller.tiktok.com\",\n                \"buyer_message\": \"asdfda\",\n                \"buyer_uid\": \"7021436810468230477\",\n                \"cancel_order_sla\": 1619621355,\n                \"cancel_reason\": \"Pricing error\",\n                \"cancel_user\": \"SELLER\",\n                \"cpf\": \"3213-31231412\",\n                \"create_time\": \"1619611561674\",\n                \"delivery_option_description\": \"Shipped from seller\",\n                \"delivery_option_id\": \"7091146663229654785\",\n                \"delivery_option_type\": 1,\n                \"delivery_sla\": 1678389618,\n                \"district_info_list\": [\n                    {\n                        \"address_level_name\": \"Country\",\n                        \"address_name\": \"United Kingdom\"\n                    }\n                ],\n                \"fulfillment_type\": 0,\n                \"is_cod\": false,\n                \"is_sample_order\": true,\n                \"need_upload_invoice\": 1,\n                \"order_id\": \"576461413038785752\",\n                \"order_line_list\": [\n                    {\n                        \"cancel_reason\": \"Discount not as expected\",\n                        \"cancel_user\": \"BUYER\",\n                        \"display_status\": 100,\n                        \"is_gift\": false,\n                        \"item_tax\": [\n                            {\n                                \"tax_amount\": 21.2,\n                                \"tax_type\": 1\n                            }\n                        ],\n                        \"order_line_id\": \"577086512123755123\",\n                        \"original_price\": 0.01,\n                        \"package_freeze_status\": 0,\n                        \"package_id\": 1153132168123859200,\n                        \"package_status\": 5,\n                        \"platform_discount\": 0,\n                        \"product_id\": \"1729582718312380123\",\n                        \"product_name\": \"Women's Winter Crochet Clothes\",\n                        \"retail_delivery_fee\": 1.29,\n                        \"rts_time\": 1678389618,\n                        \"sale_price\": 0.01,\n                        \"seller_discount\": 0,\n                        \"seller_sku\": \"red_iphone_256\",\n                        \"shipping_provider_id\": \"6617675021119438849\",\n                        \"shipping_provider_name\": \"TT Virtual express\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_image\": \"https://p16-oec-va.itexeitg.com/tos-maliva-d-o5syd03w52-us/46123e87d14f40b69b839\",\n                        \"sku_name\": \"1#, Standard\",\n                        \"sku_type\": 0,\n                        \"small_order_fee\": 5000,\n                        \"tracking_number\": \"JX12345\"\n                    }\n                ],\n                \"order_status\": 100,\n                \"package_list\": [\n                    {\n                        \"package_id\": \"1152321127278713123\"\n                    }\n                ],\n                \"paid_time\": 1619611563,\n                \"payment_info\": {\n                    \"currency\": \"IDR\",\n                    \"original_shipping_fee\": 5000,\n                    \"original_total_product_price\": 5000,\n                    \"platform_discount\": 5000,\n                    \"product_taxes\": 21.3,\n                    \"retail_delivery_fee\": 1.29,\n                    \"seller_discount\": 5000,\n                    \"shipping_fee\": 5000,\n                    \"shipping_fee_platform_discount\": 5000,\n                    \"shipping_fee_seller_discount\": 5000,\n                    \"shipping_fee_tax\": 11,\n                    \"small_order_fee\": 3000,\n                    \"sub_total\": 5000,\n                    \"taxes\": 5000,\n                    \"total_amount\": 5000\n                },\n                \"payment_method_name\": \"CCDC\",\n                \"payment_method_type\": 4,\n                \"receiver_address_updated\": 0,\n                \"recipient_address\": {\n                    \"address_detail\": \"unit one building 8\",\n                    \"addressline1\": \"Tiktok 5800 bristol Pkwy\",\n                    \"addressline2\": \"suit 100\",\n                    \"addressline3\": \"\\\"\\\"\",\n                    \"addressline4\": \"\\\"\\\"\",\n                    \"full_address\": \"Indonesia, Bangka Belitung Province, Central Bangka Regency, Koba, Arung Dalam,\",\n                    \"name\": \"zay\",\n                    \"phone\": \"(+86)12345678980\",\n                    \"region_code\": \"ID\",\n                    \"zipcode\": \"23683\"\n                },\n                \"rts_sla\": 1619611688,\n                \"rts_time\": 1619611563,\n                \"seller_note\": \"seller note\",\n                \"shipping_provider\": \"TT Virtual express\",\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"split_or_combine_tag\": \"combined\",\n                \"tracking_number\": \"JX12345\",\n                \"tts_sla\": 1619611761,\n                \"update_time\": 1619621355,\n                \"warehouse_id\": \"'6955005333819123123'\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Order/OrderSearchOrdersRequest.json",
    "content": "{\n    \"buyer_uid\": \"7213489962827123654\",\n    \"create_time_from\": 1623812664,\n    \"create_time_to\": 1623812664,\n    \"cursor\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n    \"delivery_option_type\": 1,\n    \"order_status\": 100,\n    \"page_size\": 20,\n    \"sort_by\": \"CREATE_TIME\",\n    \"sort_type\": 1,\n    \"update_time_from\": 1623812664,\n    \"update_time_to\": 1623812664\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Order/OrderSearchOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"more\": true,\n        \"next_cursor\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"order_list\": [\n            {\n                \"order_id\": \"576463220456522968\",\n                \"order_status\": 100,\n                \"update_time\": 1635338186\n            }\n        ],\n        \"total\": 22113\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Order/OrderShipOrderRequest.json",
    "content": "{\n    \"order_id\": \"576463213959808216\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductCreateBrandRequest.json",
    "content": "{\n    \"brand_name\": \"sample brand name\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductCreateBrandResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"brand_id\": \"123456789\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductGetAttributeListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"attributes\": [\n            {\n                \"attribute_type\": 3,\n                \"id\": \"100392\",\n                \"input_type\": {\n                    \"is_customized\": true,\n                    \"is_mandatory\": true,\n                    \"is_multiple_selected\": true\n                },\n                \"name\": \"Occasion\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductGetBrandListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"brand_list\": [\n            {\n                \"authorized_status\": 2,\n                \"id\": \"7082427311584347905\",\n                \"name\": \"TestCase-Authorization\"\n            }\n        ],\n        \"total_num\": 10000\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductGetCategoryListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_list\": [\n            {\n                \"id\": \"600001\",\n                \"is_leaf\": false,\n                \"local_display_name\": \"Home Supplies\",\n                \"parent_id\": \"0\",\n                \"status\": [\n                    1\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductGetCategoryRulesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_rules\": [\n            {\n                \"exemption_of_identifier_code\": {\n                    \"support_identifier_code_exemption\": true\n                },\n                \"is_size_chart_mandatory\": false,\n                \"product_certifications\": [\n                    {\n                        \"id\": \"123456\",\n                        \"is_mandatory\": true,\n                        \"name\": \"product_cert_name\",\n                        \"sample\": \"example\"\n                    }\n                ],\n                \"support_cod\": false,\n                \"support_size_chart\": true\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductRecommendCategoryRequest.json",
    "content": "{\n    \"description\": \"This is a product\",\n    \"images\": [\n        {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"product_name\": \"Title-xxaa\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Category/ProductRecommendCategoryResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 605254,\n                \"is_leaf\": true,\n                \"level\": 1,\n                \"name\": \"AAA\"\n            }\n        ],\n        \"leaf_category_id\": 605254,\n        \"priority\": 1\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductActivateProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1234567890\",\n        \"1234567891\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductActivateProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_product_ids\": [\n            \"1234567890\"\n        ],\n        \"failed_reasons\": [\n            {\n                \"product_id\": \"1234567890\",\n                \"status\": [\n                    {\n                        \"reason\": \"product open platform internal error\",\n                        \"status_code\": 12019000\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductCreateProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"delivery_service_ids\": [\n        \"1729592969712203232\"\n    ],\n    \"description\": \"\\\\<p\\\\>test\\\\<\\\\/p\\\\>\",\n    \"exemption_of_identifier_code\": {\n        \"exemption_reason\": \"1\"\n    },\n    \"images\": [\n        {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"is_cod_open\": true,\n    \"outer_product_id\": \"172959296971220002\",\n    \"package_dimension_unit\": \"metric\",\n    \"package_height\": 12,\n    \"package_length\": 10,\n    \"package_weight\": \"1\",\n    \"package_width\": 11,\n    \"product_attributes\": [\n        {\n            \"attribute_id\": \"100392\",\n            \"attribute_values\": [\n                {\n                    \"value_id\": \"1001533\",\n                    \"value_name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"product_certifications\": [\n        {\n            \"files\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                    \"name\": \"xxx.PDF\",\n                    \"type\": \"PDF\"\n                }\n            ],\n            \"id\": \"123456\",\n            \"images\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"product_name\": \"Title-xxaa\",\n    \"product_video\": {\n        \"video_id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    },\n    \"size_chart\": {\n        \"img_id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n    },\n    \"skus\": [\n        {\n            \"original_price\": \"999\",\n            \"outer_sku_id\": \"1729592969712207012\",\n            \"product_identifier_code\": {\n                \"identifier_code\": \"12345678901234\",\n                \"identifier_code_type\": 1\n            },\n            \"sales_attributes\": [\n                {\n                    \"attribute_id\": \"100089\",\n                    \"attribute_name\": \"Specification\",\n                    \"custom_value\": \"XL\",\n                    \"sku_img\": {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\"\n                }\n            ],\n            \"seller_sku\": \"seller sku xxaa\",\n            \"stock_infos\": [\n                {\n                    \"available_stock\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductCreateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_id\": \"1729592969712207008\",\n        \"skus\": [\n            {\n                \"id\": \"1729592969712207012\",\n                \"outer_sku_id\": \"1729592969712207234\",\n                \"sales_attributes\": [\n                    {\n                        \"attribute_id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"seller sku xxaa\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductDeactivateProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1234567890\",\n        \"1234567891\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductDeactivateProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_product_ids\": [\n            \"1234567890\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductDeleteProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1234567890\",\n        \"1234567891\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductDeleteProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_product_ids\": [\n            \"1234567890\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductGetProductDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"brand\": {\n            \"id\": \"7082427311584347905\",\n            \"name\": \"brand xxx aaa\",\n            \"status\": 1\n        },\n        \"category_list\": [\n            {\n                \"id\": \"600001\",\n                \"is_leaf\": false,\n                \"local_display_name\": \"category xxx aaa\",\n                \"parent_id\": \"0\"\n            }\n        ],\n        \"create_time\": 1234567890,\n        \"delivery_services\": [\n            {\n                \"delivery_option_name\": \"delivery xxaa\",\n                \"delivery_service_id\": 1729592969712203300,\n                \"delivery_service_status\": true\n            }\n        ],\n        \"description\": \"\",\n        \"images\": [\n            {\n                \"height\": 600,\n                \"id\": \"\",\n                \"thumb_url_list\": [ \"\" ],\n                \"url_list\": [ \"\" ],\n                \"width\": 600\n            }\n        ],\n        \"is_cod_open\": true,\n        \"package_dimension_unit\": \"metric\",\n        \"package_height\": \"0\",\n        \"package_length\": \"0\",\n        \"package_weight\": \"0\",\n        \"package_width\": \"0\",\n        \"product_attributes\": [\n            {\n                \"id\": \"100392\",\n                \"name\": \"xxx xxx\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ],\n        \"product_certifications\": [\n            {\n                \"files\": [\n                    {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"list\": [ \"http:xxx.xxx.xxx\" ],\n                        \"name\": \"xxx.PDF\",\n                        \"type\": \"PDF\"\n                    }\n                ],\n                \"id\": \"123456\",\n                \"images\": [\n                    {\n                        \"height\": 600,\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"thumb_url_list\": [ \"http:xxx.xxx.xxx\" ],\n                        \"url_list\": [ \"http:xxx.xxx.xxx\" ],\n                        \"width\": 600\n                    }\n                ],\n                \"title\": \"product certification xxxxxx\"\n            }\n        ],\n        \"product_id\": \"1729592969712207008\",\n        \"product_name\": \"Title-xxaa\",\n        \"product_status\": 4,\n        \"qc_reasons\": [\n            {\n                \"reason\": \"reason xxx xxx\",\n                \"sub_reasons\": [ \"sub reason xxx xxx\" ]\n            }\n        ],\n        \"size_chart\": {\n            \"height\": 600,\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n            \"thumb_url_list\": [ \"http:xxx.xxx.xxx\" ],\n            \"url_list\": [ \"http:xxx.xxx.xxx\" ],\n            \"width\": 600\n        },\n        \"skus\": [\n            {\n                \"id\": \"\",\n                \"price\": {\n                    \"currency\": \"\",\n                    \"original_price\": \"0\",\n                    \"price_include_vat\": \"0\"\n                },\n                \"product_identifier_code\": {\n                    \"identifier_code\": \"\",\n                    \"identifier_code_type\": \"0\"\n                },\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"\",\n                        \"name\": \"\",\n                        \"sku_img\": {\n                            \"height\": \"0\",\n                            \"id\": \"\",\n                            \"thumb_url_list\": [ \"\" ],\n                            \"url_list\": [ \"\" ],\n                            \"width\": \"0\"\n                        },\n                        \"value_id\": \"\",\n                        \"value_name\": \"\"\n                    }\n                ],\n                \"seller_sku\": \"\",\n                \"stock_infos\": [\n                    {\n                        \"available_stock\": \"0\",\n                        \"warehouse_id\": \"\"\n                    }\n                ]\n            }\n        ],\n        \"update_time\": 1234567899,\n        \"video\": {\n            \"duration\": \"0\",\n            \"id\": \"\",\n            \"media_type\": \"\",\n            \"post_url\": \"\",\n            \"video_infos\": [\n                {\n                    \"backup_url\": \"\",\n                    \"bitrate\": \"0\",\n                    \"file_hash\": \"\",\n                    \"format\": \"\",\n                    \"height\": \"0\",\n                    \"main_url\": \"\",\n                    \"size\": \"0\",\n                    \"url_expire\": \"0\",\n                    \"width\": \"0\"\n                }\n            ]\n        },\n        \"warranty_period\": {\n            \"warranty_description\": \"\",\n            \"warranty_id\": \"\"\n        },\n        \"warranty_policy\": \"\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductGetProductStocksRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1729592969712207008\"\n    ],\n    \"sku_ids\": [\n        \"1729388324987897824\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductGetProductStocksResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_stocks\": [\n            {\n                \"product_id\": \"1729592969712207008\",\n                \"skus\": [\n                    {\n                        \"seller_sku\": \"6919959100928\",\n                        \"sku_id\": \"1729388324987897824\",\n                        \"total_available_stock\": 50,\n                        \"total_available_stock_distribution\": {\n                            \"campaign_stock\": [\n                                {\n                                    \"available_stock\": 25,\n                                    \"campaign_name\": \"Big Sale\"\n                                }\n                            ],\n                            \"creator_stock\": [\n                                {\n                                    \"available_stock\": 10,\n                                    \"creator_name\": \"username_123\"\n                                }\n                            ],\n                            \"in_shop_stock\": 15\n                        },\n                        \"total_committed_stock\": 14,\n                        \"warehouse_stock_infos\": [\n                            {\n                                \"available_stock\": 50,\n                                \"committed_stock\": 14,\n                                \"warehouse_id\": \"7054915283043174149\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductPrecheckResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shop_info\": {\n            \"gne_info\": {\n                \"product_quantity_limit\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"product_quantity_limit\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"product_quantity_limit\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":false}}\"\n            },\n            \"logistics_info\": {\n                \"delivery_warehouse\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"delivery_warehouse\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"delivery_warehouse\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":false}}\",\n                \"logistics_service\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"logistics_service\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"logistics_service\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":true,\\\\\\\"fail_reasons\\\\\\\":[\\\\\\\"Cannot add products because the warehouse didn't set logistics service. You can check in the shipping option page\\\\\\\"]}}\",\n                \"return_warehouse\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"return_warehouse\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"return_warehouse\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":true,\\\\\\\"fail_reasons\\\\\\\":[\\\\\\\"Couldn't publish this product as you haven't set the return warehouse for your shop. Add the return warehouse information on TikTok Shop Seller Center first and try again.\\\\\\\"]}}\",\n                \"shipping_template\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"shipping_template\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"shipping_template\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":false}}\"\n            },\n            \"shop_status\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"shop_status\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"shop_status\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":false}}\",\n            \"tax_info\": \"{\\\\\\\"id\\\\\\\":\\\\\\\"tax_info\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"tax_info\\\\\\\",\\\\\\\"check_result\\\\\\\":{\\\\\\\"is_failed\\\\\\\":true,\\\\\\\"fail_reasons\\\\\\\":[\\\\\\\"This seller is not able to create or edit product. Check if the seller has a valid tax number.\\\\\\\"]}}\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductRecoverProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1234567890\",\n        \"1234567891\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductRecoverProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_product_ids\": [\n            \"1234567890\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductSearchProductsRequest.json",
    "content": "{\n    \"create_time_from\": 1234567890,\n    \"create_time_to\": 9876543210,\n    \"page_number\": 1,\n    \"page_size\": 100,\n    \"search_status\": 0,\n    \"seller_sku_list\": [ \"seller sku xxaa\" ],\n    \"update_time_from\": 1234567891,\n    \"update_time_to\": 9876543211\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductSearchProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"products\": [\n            {\n                \"create_time\": 1234567890,\n                \"global_sync_failed_reasons\": [],\n                \"id\": \"1729592969712207008\",\n                \"name\": \"product xxaa\",\n                \"sale_regions\": [\n                    \"ID\"\n                ],\n                \"skus\": [\n                    {\n                        \"id\": \"1729592969712207012\",\n                        \"price\": {\n                            \"currency\": \"USD\",\n                            \"original_price\": \"9999\",\n                            \"price_include_vat\": \"10000\"\n                        },\n                        \"seller_sku\": \"seller sku xxaa\",\n                        \"stock_infos\": [\n                            {\n                                \"available_stock\": 999,\n                                \"warehouse_id\": \"7068517275539719942\"\n                            }\n                        ]\n                    }\n                ],\n                \"status\": 4,\n                \"update_time\": 1234567800\n            }\n        ],\n        \"total\": 10000\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductPriceRequest.json",
    "content": "{\n    \"product_id\": \"1729592969712207008\",\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"original_price\": \"999\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductPriceResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_sku_ids\": [\n            \"1729592969712207013\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"delivery_service_ids\": [ \"1729592969712203232\" ],\n    \"description\": \"<p>test</p>\",\n    \"exemption_of_identifier_code\": {\n        \"exemption_reason\": \"1\"\n    },\n    \"images\": [\n        {\n            \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"is_cod_open\": true,\n    \"outer_product_id\": \"172959296971220004\",\n    \"package_dimension_unit\": \"metric\",\n    \"package_height\": 11,\n    \"package_length\": 10,\n    \"package_weight\": \"1\",\n    \"package_width\": 12,\n    \"product_attributes\": [\n        {\n            \"attribute_id\": \"100392\",\n            \"attribute_values\": [\n                {\n                    \"value_id\": \"1001533\",\n                    \"value_name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"product_certifications\": [\n        {\n            \"files\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                    \"name\": \"xxx.PDF\",\n                    \"type\": \"PDF\"\n                }\n            ],\n            \"id\": \"123456\",\n            \"images\": [\n                {\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"product_id\": \"1729592969712207008\",\n    \"product_name\": \"Title-xxaa\",\n    \"product_video\": {\n        \"video_id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    },\n    \"size_chart\": {\n        \"img_id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n    },\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"original_price\": \"999\",\n            \"outer_sku_id\": \"1729592969712207012\",\n            \"product_identifier_code\": {\n                \"identifier_code\": \"12345678901234\",\n                \"identifier_code_type\": 1\n            },\n            \"sales_attributes\": [\n                {\n                    \"attribute_id\": \"100089\",\n                    \"attribute_name\": \"Specification\",\n                    \"custom_value\": \"XL\",\n                    \"sku_img\": {\n                        \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\"\n                }\n            ],\n            \"seller_sku\": \"seller sku xxaa\",\n            \"stock_infos\": [\n                {\n                    \"available_stock\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ]\n        }\n    ],\n    \"warranty_period\": 1,\n    \"warranty_policy\": \"warranty policy xxaa\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_id\": \"1729592969712207008\",\n        \"skus\": [\n            {\n                \"id\": \"1729592969712207012\",\n                \"outer_sku_id\": \"172959296971220004\",\n                \"sales_attributes\": [\n                    {\n                        \"attribute_id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"seller sku xxaa\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductStockRequest.json",
    "content": "{\n    \"product_id\": \"1729592969712207008\",\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"stock_infos\": [\n                {\n                    \"available_stock\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/ProductUpdateProductStockResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_skus\": [\n            {\n                \"failed_warehouse_ids\": [ \"7068517275539719942\" ],\n                \"id\": \"1729592969712207013\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Upload/ProductUploadFileRequest.json",
    "content": "{\n    \"file_data\": \"BWWCusFdYKa4W1wlphrbBWWCusFdYKaxtOawMj5ftPCQAAAABJRU5ErkJggg==\",\n    \"file_name\": \"XXX.pdf\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Upload/ProductUploadFileResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"file_id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n        \"file_name\": \"XXX.pdf\",\n        \"file_type\": \"PDF\",\n        \"file_url\": \"https://p-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Upload/ProductUploadImageRequest.json",
    "content": "{\n    \"img_data\": \"BWWCusFdYKa4W1wlphrbBWWCusFdYKaxtOawMj5ftPCQAAAABJRU5ErkJggg==\",\n    \"img_scene\": 1\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Product/Upload/ProductUploadImageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"img_height\": 720,\n        \"img_id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n        \"img_scene\": 1,\n        \"img_url\": \"https://p-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n        \"img_width\": 720\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/Items/PromotionAddOrUpdateActivityItemsRequest.json",
    "content": "{\n    \"product_list\": [\n        {\n            \"discount\": \"5\",\n            \"num_limit\": -1,\n            \"product_id\": \"7135427619356477189\",\n            \"promotion_price\": \"4.5\",\n            \"sku_list\": [\n                {\n                    \"discount\": \"10\",\n                    \"num_limit\": -1,\n                    \"product_id\": \"7135427619356477189\",\n                    \"promotion_price\": \"6.5\",\n                    \"sku_id\": \"7125688837187176194\",\n                    \"user_limit\": 10\n                }\n            ],\n            \"user_limit\": -1\n        }\n    ],\n    \"promotion_id\": \"7136104309380418000\",\n    \"request_serial_no\": \"b57be407-6344-4942-bef6-3ef63d81d5b1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/Items/PromotionAddOrUpdateActivityItemsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"item_count\": 1,\n        \"promotion_id\": \"7136104309380417282\",\n        \"request_serial_no\": \"b57be407-6344-4942-bef6-3ef63d81d5b1\",\n        \"status\": 2,\n        \"title\": \"DiscountPromotion\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/Items/PromotionRemoveActivityItemsRequest.json",
    "content": "{\n    \"promotion_id\": \"7136104329798223618\",\n    \"request_serial_no\": \"20220829150353000110022003300001020\",\n    \"sku_list\": [\n        \"7135657830438176513\"\n    ],\n    \"spu_list\": [\n        \"7493989962827597361\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/Items/PromotionRemoveActivityItemsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"promotion_id\": \"7136104329798223618\",\n        \"request_serial_no\": \"20220829150353000110022003300001020\",\n        \"status\": 1,\n        \"update_time\": 1661765135\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionCreateActivityRequest.json",
    "content": "{\n    \"begin_time\": 1661756811,\n    \"end_time\": 1661856811,\n    \"product_type\": 1,\n    \"promotion_type\": 1,\n    \"request_serial_no\": \"create202208291503530001100220033\",\n    \"title\": \"DiscountEvent0829\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionCreateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"create_time\": 1661756811,\n        \"promotion_id\": \"7136104329798256386\",\n        \"request_serial_no\": \"create202208291503530001100220033\",\n        \"status\": 1,\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionDeactivateActivityRequest.json",
    "content": "{\n    \"promotion_id\": \"7136104288010405633\",\n    \"request_serial_no\": \"202208291503530001100220033002\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionDeactivateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"promotion_id\": \"7136104288010405633\",\n        \"request_serial_no\": \"202208291503530001100220033002\",\n        \"status\": 5,\n        \"title\": \"Title\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionGetActivityDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"begin_time\": 1661756811,\n        \"create_time\": 1661750811,\n        \"end_time\": 1661856811,\n        \"product_list\": [\n            {\n                \"discount\": \"\",\n                \"num_limit\": \"-1\",\n                \"product_id\": \"7136011254174631686\",\n                \"promotion_price\": \"\",\n                \"sku_list\": [\n                    {\n                        \"discount\": \"2\",\n                        \"num_limit\": -1,\n                        \"product_id\": \"7136011254174631686\",\n                        \"promotion_price\": \"\",\n                        \"sku_id\": \"7136382541418366725\",\n                        \"user_limit\": -1\n                    }\n                ],\n                \"user_limit\": \"-1\"\n            }\n        ],\n        \"product_type\": 2,\n        \"promotion_id\": \"7136104309380384514\",\n        \"promotion_type\": 2,\n        \"status\": \"0\",\n        \"title\": \"FlashSale XX\",\n        \"update_time\": 1661750811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionSearchActivitiesRequest.json",
    "content": "{\n    \"page_number\": 0,\n    \"page_size\": 50,\n    \"status\": 1,\n    \"title\": \"Discount\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionSearchActivitiesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"promotion_list\": [\n            {\n                \"begin_time\": 1661756811,\n                \"create_time\": 1661756811,\n                \"end_time\": 1661766811,\n                \"product_type\": 2,\n                \"promotion_id\": \"7136104309380351746\",\n                \"promotion_type\": 1,\n                \"status\": 1,\n                \"title\": \"Discount Title001\",\n                \"update_time\": 1661756811\n            }\n        ],\n        \"total\": 120\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionUpdateActivityRequest.json",
    "content": "{\n    \"begin_time\": 1661756811,\n    \"end_time\": 1662756811,\n    \"promotion_id\": \"7136104288010372865\",\n    \"request_serial_no\": \"20220829150353000110022002334\",\n    \"title\": \"EventName0022\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Promotion/PromotionUpdateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"promotion_id\": \"7136104288010372865\",\n        \"request_serial_no\": \"20220829150353000110022002334\",\n        \"title\": \"EventName0022\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseCancelOrderRequest.json",
    "content": "{\n    \"cancel_reason_key\": \"\",\n    \"order_id\": \"\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseCancelOrderResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"reverse_main_order_id\": \"\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseConfirmReverseRequestRequest.json",
    "content": "{\n    \"reverse_order_id\": \"4035225888722551905\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseGetRejectReasonListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"reverse_reason_list\": [\n            {\n                \"available_order_status_list\": [ \"200\" ],\n                \"reverse_reason\": \"Pricing error\",\n                \"reverse_reason_key\": \"seller_cancel_reason_wrong_price_uk\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseRejectReverseRequestRequest.json",
    "content": "{\n    \"reverse_order_id\": \"4035225888722551905\",\n    \"reverse_reject_comments\": \"Please return it\",\n    \"reverse_reject_reason_key\": \"reverse_reject_request_reason_1\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseSearchReverseOrdersRequest.json",
    "content": "{\n    \"offset\": 0,\n    \"order_id\": 5765724112312322000,\n    \"reverse_order_id\": 4035233288776645000,\n    \"reverse_order_status\": 1,\n    \"reverse_type\": 2,\n    \"size\": 20,\n    \"sort_by\": 1,\n    \"sort_type\": 1,\n    \"update_time_from\": 1527955200,\n    \"update_time_to\": 1527955200\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Reverse/ReverseSearchReverseOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"more\": true,\n        \"reverse_list\": [\n            {\n                \"currency\": \"IDR\",\n                \"order_id\": \"576461302937453663\",\n                \"refund_total\": \"5000\",\n                \"return_item_list\": [\n                    {\n                        \"product_images\": \"\",\n                        \"return_product_id\": \"\",\n                        \"return_product_name\": \"\",\n                        \"return_quantity\": \"0\",\n                        \"seller_sku\": \"\",\n                        \"sku_id\": \"\",\n                        \"sku_name\": \"\"\n                    }\n                ],\n                \"return_reason\": \"Package wasn't received\",\n                \"return_tracking_id\": \"E0h1y0j4l1F8G3U6X7p8\",\n                \"return_type\": \"0\",\n                \"reverse_order_id\": \"4035225888722551903\",\n                \"reverse_record_list\": [\n                    {\n                        \"additional_image_list\": [],\n                        \"additional_message\": \"I want to return\",\n                        \"description\": \"\",\n                        \"reason_text\": \"Package wasn't received\",\n                        \"update_time\": 1527955200\n                    }\n                ],\n                \"reverse_request_time\": 1527955200,\n                \"reverse_status_value\": 1,\n                \"reverse_type\": 2,\n                \"reverse_update_time\": 1527955200\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Seller/SellerCheckGlobalProductModeResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"can_use_global_product\": true\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Seller/SellerGetGlobalActiveShopListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"active_shops\": [\n            {\n                \"shop_id\": \"\",\n                \"shop_region\": \"\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/Shop/ShopGetAuthorizedShopListResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shop_list\": [\n            {\n                \"region\": \"GB\",\n                \"shop_id\": \"7000714532876273420\",\n                \"shop_name\": \"Maomao beauty shop\",\n                \"type\": 1\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/SupplyChain/SupplyChainSyncPackageFulfillmentDataRequest.json",
    "content": "{\n    \"package\": [\n        {\n            \"create_time\": \"2022/12/30 22:11:00\",\n            \"delivery_option_name\": \"someway\",\n            \"hand_over_time\": \"2022/12/30 22:11:00\",\n            \"height\": 34,\n            \"length\": 12,\n            \"length_unit\": 1,\n            \"package_id\": \"28427944530283\",\n            \"provider_warehouse_code\": \"7475973290484254255\",\n            \"shipped_city\": \"CityA\",\n            \"shipped_time\": \"2022/12/30 22:11:00\",\n            \"shipping_provider_id\": \"4223428734891739173\",\n            \"shipping_provider_name\": \"ProviderA\",\n            \"sku_list\": [\n                {\n                    \"quantity\": \"100\",\n                    \"sku_id\": \"423734897294\"\n                }\n            ],\n            \"time_zone\": \"UTC+8\",\n            \"tracking_number\": \"da64tg8gd982f\",\n            \"weight\": 45,\n            \"weight_unit\": 1,\n            \"width\": 23,\n            \"wms_order_no\": \"97654980395865490820\"\n        }\n    ],\n    \"warehouse_provider_id\": \"7342984797904049750\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/Legacy/SupplyChain/SupplyChainSyncPackageFulfillmentDataResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"failed_package_list\": [\n            {\n                \"fail_reason\": \"[\\\\\\\"invalid package Length -13\\\\\\\",\\\\\\\"operate time trans time=2022-12-23 23:00:40 er\",\n                \"package_id\": \"23423425254\"\n            }\n        ],\n        \"success_package_list\": [\n            \"28427944530283\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Auth/AuthGetTokenResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"access_token\": \"ROW_Fw8rBwAAAAAkW03FYd09DG-9INtpw361hWthei8S3fHX8iPJ5AUv99fLSCYD9-UucaqxTgNRzKZxi5-tfFMtdWqglEt5_iCk\",\n        \"access_token_expire_in\": 1660556783,\n        \"refresh_token\": \"NTUxZTNhYTQ2ZDk2YmRmZWNmYWY2YWY2YzkxNGYwNjQ3YjkzYTllYjA0YmNlMw\",\n        \"refresh_token_expire_in\": 1691487031,\n        \"open_id\": \"7010736057180325637\",\n        \"seller_name\": \"Jjj test shop\",\n        \"seller_base_region\": \"ID\",\n        \"user_type\": 0\n    },\n    \"request_id\": \"2022080809462301024509910319695C45\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Auth/AuthRefreshTokenResponse.json",
    "content": "{\n    \"code\": 0,\n    \"message\": \"success\",\n    \"data\": {\n        \"access_token\": \"ROW_Fw8rBwAAAAAkW03FYd09DG-9INtpw361hWthei8S3fHX8iPJ5AUv99fLSCYD9-UucaqxTgNRzKZxi5-tfFMtdWqglEt5_iCk\",\n        \"access_token_expire_in\": 1660556783,\n        \"refresh_token\": \"NTUxZTNhYTQ2ZDk2YmRmZWNmYWY2YWY2YzkxNGYwNjQ3YjkzYTllYjA0YmNlMw\",\n        \"refresh_token_expire_in\": 1691487031,\n        \"open_id\": \"7010736057180325637\",\n        \"seller_name\": \"Jjj test shop\",\n        \"seller_base_region\": \"ID\",\n        \"user_type\": 0\n    },\n    \"request_id\": \"2022080809462301024509910319695C45\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Authorization/AuthorizationGetCategoryAssetsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"category_assets\": [\n            {\n                \"category\": {\n                    \"id\": 3,\n                    \"name\": \"Customer Support\"\n                },\n                \"cipher\": \"TTP_XF90igAAAABh0sddwer0qsWgt233vOiG\",\n                \"target_market\": \"US\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Authorization/AuthorizationGetShopsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shops\": [\n            {\n                \"cipher\": \"GCP_XF90igAAAABh00qsWgtvOiGFNqyubMt3\",\n                \"code\": \"CNGBCBA4LLU8\",\n                \"id\": \"7000714532876273420\",\n                \"name\": \"Maomao beauty shop\",\n                \"region\": \"GB\",\n                \"seller_type\": \"CROSS_BORDER\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/Agents/CustomerServiceGetAgentSettingsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"can_accept_chat\": true\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/Agents/CustomerServiceUpdateAgentSettingsRequest.json",
    "content": "{\n    \"can_accept_chat\": true\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceCreateConversationMessageRequest.json",
    "content": "{\n    \"content\": \"{\\\"content\\\": \\\"test\\\"}\",\n    \"type\": \"TEXT\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceCreateConversationMessageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"message_id\": \"7494560109732334261\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceCreateConversationRequest.json",
    "content": "{\n    \"buyer_user_id\": \"7494560109732338459\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceCreateConversationResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"conversation_id\": \"7106888323922608389\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceGetConversationMessagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"messages\": [\n            {\n                \"content\": \"{\\\"content\\\": \\\"simple text message\\\"}\",\n                \"create_time\": 1691411573,\n                \"id\": \"7494560109732334263\",\n                \"is_visible\": true,\n                \"sender\": {\n                    \"avatar\": \"https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/566c497faaaf4491a84d3ce55d9cb095~tplv-omjb5zjo8w-origin-image.image?\",\n                    \"im_user_id\": \"7494560109732334261\",\n                    \"nickname\": \"Albert\",\n                    \"role\": \"BUYER\"\n                },\n                \"type\": \"TEXT\"\n            }\n        ],\n        \"next_page_token\": \"162312320\",\n        \"unsupported_msg_tips\": \"Please check this message in Seller Center.\\n\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceGetConversationsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"conversations\": [\n            {\n                \"can_send_message\": true,\n                \"create_time\": 1691411573,\n                \"id\": \"7494560109732334261\",\n                \"latest_message\": {\n                    \"content\": \"{\\\"content\\\": \\\"simple text message\\\"}\",\n                    \"create_time\": 1691411573,\n                    \"id\": \"7494560109732334263\",\n                    \"is_visible\": true,\n                    \"sender\": {\n                        \"avatar\": \"https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/566c497faaaf4491a84d3ce55d9cb095~tplv-omjb5zjo8w-origin-image.image?\",\n                        \"im_user_id\": \"7494560109732334261\",\n                        \"nickname\": \"Albert\",\n                        \"role\": \"BUYER\"\n                    },\n                    \"type\": \"TEXT\"\n                },\n                \"participant_count\": 3,\n                \"participants\": [\n                    {\n                        \"avatar\": \"https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/566c497faaaf4491a84d3ce55d9cb095~tplv-omjb5zjo8w-origin-image.image?\",\n                        \"im_user_id\": \"7494560109732334261\",\n                        \"nickname\": \"Albert\",\n                        \"role\": \"BUYER\",\n                        \"user_id\": \"7494560109732334262\"\n                    }\n                ],\n                \"unread_count\": 0\n            }\n        ],\n        \"next_page_token\": \"1612353423\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/CustomerServiceUploadImageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"height\": 720,\n        \"url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/2ca53c34ad8443e6b39f4e0153d3aed4~tplv-o3syd03w52-origin-image.image?from=1320446476\",\n        \"width\": 1280\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/CustomerService/Performance/CustomerServiceGetPerformanceResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"performance\": {\n            \"response_percentage\": \"93.4\",\n            \"response_time_mins\": \"3.4\",\n            \"satisfaction_percentage\": \"95.2\",\n            \"support_session_count\": 15\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Event/EventDeleteWebhookRequest.json",
    "content": "{\n    \"event_type\": \"ORDER_STATUS_CHANGE\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Event/EventGetWebhooksResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"total_count\": 1,\n        \"webhooks\": [\n            {\n                \"address\": \"https://partner.tiktokshop.com\",\n                \"create_time\": 1635338186,\n                \"event_type\": \"ORDER_STATUS_CHANGE\",\n                \"update_time\": 1635338186\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Event/EventUpdateWebhookRequest.json",
    "content": "{\n    \"address\": \"https://partner.tiktokshop.com\",\n    \"event_type\": \"ORDER_STATUS_CHANGE\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetGoodsRequest.json",
    "content": "{\n    \"goods_ids\": [\n        \"256080616234\"\n    ],\n    \"product_ids\": [\n        \"256990616123\"\n    ],\n    \"reference_codes\": [\n        \"SELLERSKU 123456\"\n    ],\n    \"sku_ids\": [\n        \"256086568895\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetGoodsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"goods\": [\n            {\n                \"barcodes\": [\n                    {\n                        \"code\": \"014673829105\",\n                        \"type\": \"UPC\"\n                    }\n                ],\n                \"id\": \"86533997569\",\n                \"image_url\": \"https://p-boei18n.byted.org/tos-boei18n-i-0euhj0x6u9/beec7f914a044902a0c5dc929b97d064~tplv-k3ldphp9j8-origin-jpeg.jpeg?\",\n                \"lot_expiration_info\": {\n                    \"expiration_alert_days\": 60,\n                    \"handling_method\": \"DISPOSE\",\n                    \"inbound_cutoff_days\": 90,\n                    \"is_expiration_management\": true,\n                    \"is_lot_control\": true,\n                    \"return_cycle\": \"ONCE_A_WEEK\",\n                    \"sales_cutoff_days\": 20,\n                    \"shelf_life_days\": 12\n                },\n                \"merchant_declaration_info\": {\n                    \"dimension\": {\n                        \"height\": \"3.122\",\n                        \"length\": \"2.122\",\n                        \"unit\": \"CENTIMETER\",\n                        \"width\": \"1.122\"\n                    },\n                    \"weight\": {\n                        \"unit\": \"GRAM\",\n                        \"value\": \"1.122\"\n                    }\n                },\n                \"name\": \"water1.0\",\n                \"reference_code\": \"abc32323\",\n                \"skus\": [\n                    {\n                        \"id\": \"1729439634328225260\",\n                        \"image_url\": \"https://p-boei18n.byted.org/tos-boei18n-i-0euhj0x6u9/beec7f914a044902a0c5dc929b97d064~tplv-jvtte31kaf-origin-jpeg.jpeg?from=522366036\",\n                        \"matched\": true,\n                        \"name\": \"Testcase SKU\",\n                        \"product\": {\n                            \"id\": \"1729439631253210604\",\n                            \"image_url\": \"https://p-boei18n.byted.org/tos-boei18n-i-0euhj0x6u9/fc303cec3f9b4e54a247bc8583892a4d~tplv-k3ldphp9j8-origin-jpeg.jpeg?from=3498640996\",\n                            \"name\": \"Testcase_xd2.0_test_goods\"\n                        },\n                        \"regions\": [\n                            \"US\"\n                        ]\n                    }\n                ],\n                \"warehouse_confirmation_info\": {\n                    \"dimension\": {\n                        \"height\": \"3\",\n                        \"length\": \"2.5\",\n                        \"unit\": \"CENTIMETER\",\n                        \"width\": \"1\"\n                    },\n                    \"weight\": {\n                        \"unit\": \"GRAM\",\n                        \"value\": \"1\"\n                    }\n                }\n            }\n        ],\n        \"next_page_token\": \"cGFnZV9udW1iZXI9Mg==\",\n        \"total_count\": 123\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetInboundOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"inbound_orders\": [\n            {\n                \"actual_arrive_time\": 1213232323,\n                \"carriers\": [\n                    {\n                        \"carrier_name\": \"UPS\",\n                        \"tracking_number\": \"3283298203923283943\"\n                    }\n                ],\n                \"create_time\": 1213232323,\n                \"expect_arrive_time\": 1213243434,\n                \"id\": \"IBR23230232324\",\n                \"merchant\": {\n                    \"id\": \"493493403043\",\n                    \"name\": \"ABC\"\n                },\n                \"order_operation_logs\": [\n                    {\n                        \"operate_time\": 1715398048,\n                        \"order_status\": \"RECEIVED\"\n                    }\n                ],\n                \"planned_goods\": [\n                    {\n                        \"id\": \"12324323\",\n                        \"name\": \"100ml water\",\n                        \"quantity\": 9,\n                        \"reference_code\": \"water01\",\n                        \"sku_ids\": [\n                            \"1235566232323\"\n                        ]\n                    }\n                ],\n                \"received_batches\": [\n                    {\n                        \"defective_quantity\": 0,\n                        \"goods_id\": \"12324323\",\n                        \"id\": \"423541234612\",\n                        \"normal_quantity\": 9,\n                        \"product_ids\": [\n                            \"23455654676645\"\n                        ],\n                        \"sku_ids\": [\n                            \"1235566232323\"\n                        ],\n                        \"total_quantity\": 9\n                    }\n                ],\n                \"ship_time\": 1213232323,\n                \"type\": \"REPLENISHMENT\",\n                \"warehouse\": {\n                    \"fbt_warehouse_id\": \"121219993203023\",\n                    \"name\": \"TikTok Warehouse\",\n                    \"type\": \"PLATFORM_WAREHOUSE\",\n                    \"warehouse_ids\": [\n                        \"121219993209983\"\n                    ]\n                }\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetInventoriesRequest.json",
    "content": "{\n    \"fbt_warehouse_ids\": [\n        \"7232382932030232\"\n    ],\n    \"goods_ids\": [\n        \"256080616234\",\n        \"2231616264\"\n    ],\n    \"sku_ids\": [\n        \"256080616234\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetInventoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"inventory\": [\n            {\n                \"fbt_warehouse_id\": \"7232382932030232\",\n                \"goods\": {\n                    \"id\": \"12345\",\n                    \"name\": \"100ml water\",\n                    \"reference_code\": \"water01\",\n                    \"skus\": [\n                        {\n                            \"id\": \"73243612345\",\n                            \"on_hand_detail\": {\n                                \"available_quantity\": 5,\n                                \"reserved_quantity\": 15,\n                                \"total_quantity\": 20\n                            }\n                        }\n                    ]\n                },\n                \"in_transit_quantity\": 10,\n                \"on_hand_detail\": {\n                    \"available_quantity\": 5,\n                    \"reserved_quantity\": 15,\n                    \"total_quantity\": 20,\n                    \"unfulfillable_quantity\": 0\n                }\n            }\n        ],\n        \"next_page_token\": \"cGFnZV9udW1iZXI9Mg==\",\n        \"total_count\": 22113\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetInventoryRecordsRequest.json",
    "content": "{\n    \"create_time_ge\": 1293013251,\n    \"create_time_le\": 1393013251,\n    \"fbt_warehouse_ids\": [\n        \"7232382932030232\"\n    ],\n    \"goods_ids\": [\n        \"256080616234\",\n        \"2231616264\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetInventoryRecordsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"inventory_records\": [\n            {\n                \"changed_quantity\": 2,\n                \"create_time\": 1212139230,\n                \"fbt_warehouse_id\": \"7232392932323\",\n                \"final_on_hand_quantity\": 12,\n                \"goods\": {\n                    \"id\": \"12324323\",\n                    \"name\": \"100ml water\",\n                    \"reference_code\": \"water01\"\n                },\n                \"initial_on_hand_quantity\": 10,\n                \"inventory_goods_type\": \"NORMAL\",\n                \"order\": {\n                    \"id\": \"OBF8932302030203\",\n                    \"type\": \"OUTBOUND_ORDER\"\n                }\n            }\n        ],\n        \"next_page_token\": \"cGFnZV9udW1iZXI9Mg==\",\n        \"total_count\": 22113\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetMerchantOnboardedRegionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"onboarded_regions\": [\n            {\n                \"region_code\": \"GB\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/FBT/FBTGetWarehousesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"warehouses\": [\n            {\n                \"addresses\": [\n                    {\n                        \"address_line_1\": \"1420 Tamarind Ave, Rialto, San Bernardino\",\n                        \"address_line_2\": \" \",\n                        \"address_line_3\": \" \",\n                        \"city\": \"Rialto\",\n                        \"district\": \"San Bernardino\",\n                        \"postal_code\": \"92376\",\n                        \"region_code\": \"US\",\n                        \"state\": \"CA\"\n                    }\n                ],\n                \"fbt_warehouse_id\": \"121219993203023\",\n                \"logistics_services\": [\n                    {\n                        \"id\": \"12123232323\",\n                        \"name\": \"Fulfilled by TikTok Shop-Standard\",\n                        \"subscribed\": true\n                    }\n                ],\n                \"name\": \"TikTok_Eastvale(CA)\",\n                \"subscribed\": true,\n                \"type\": \"PLATFORM_WAREHOUSE\",\n                \"warehouse_ids\": [\n                    \"161213293423029\",\n                    \"181213293423030\"\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Finance/FinanceGetOrderStatementTransactionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"order_create_time\": 1685548800,\n        \"order_id\": \"5793990727963214852\",\n        \"statement_transactions\": [\n            {\n                \"actual_return_shipping_fee_amount\": \"0\",\n                \"actual_shipping_fee_amount\": \"-50\",\n                \"adjustment_amount\": \"170\",\n                \"affiliate_ads_commission_amount\": \"-3\",\n                \"affiliate_commission_amount\": \"-6\",\n                \"affiliate_commission_before_pit\": \"-7\",\n                \"affiliate_partner_commission_amount\": \"0\",\n                \"after_seller_discounts_subtotal_amount\": \"180\",\n                \"currency\": \"USD\",\n                \"customer_order_refund_amount\": \"0\",\n                \"customer_paid_shipping_fee_amount\": \"70\",\n                \"customer_paid_shipping_fee_refund_amount\": \"0\",\n                \"customer_payment_amount\": \"180\",\n                \"customer_refund_amount\": \"0\",\n                \"customer_shipping_fee_amount\": \"10\",\n                \"customer_shipping_fee_offset_amount\": \"-6.99\",\n                \"fbm_shipping_cost_amount\": \"0\",\n                \"fbt_fulfillment_fee_amount\": \"-1.99\",\n                \"fbt_shipping_cost_amount\": \"-10\",\n                \"fee_amount\": \"-30\",\n                \"gross_sales_amount\": \"80\",\n                \"gross_sales_refund_amount\": \"0\",\n                \"id\": \"1636700041413599290\",\n                \"net_sales_amount\": \"70\",\n                \"pit_amount\": \"1\",\n                \"platform_commission_amount\": \"0\",\n                \"platform_discount_amount\": \"20\",\n                \"platform_discount_refund_amount\": \"0\",\n                \"platform_refund_subsidy_amount\": \"0\",\n                \"platform_shipping_fee_discount_amount\": \"40\",\n                \"promo_shipping_incentive_amount\": \"1.99\",\n                \"referral_fee_amount\": \"-2\",\n                \"refund_administration_fee_amount\": \"0\",\n                \"refund_shipping_cost_discount_amount\": \"0\",\n                \"retail_delivery_fee_amount\": \"-10\",\n                \"retail_delivery_fee_payment_amount\": \"-20\",\n                \"retail_delivery_fee_refund_amount\": \"10\",\n                \"return_shipping_fee_amount\": \"0\",\n                \"revenue_amount\": \"200\",\n                \"sales_tax_amount\": \"-10\",\n                \"sales_tax_payment_amount\": \"10\",\n                \"sales_tax_refund_amount\": \"0\",\n                \"seller_discount_amount\": \"-10\",\n                \"seller_discount_refund_amount\": \"0\",\n                \"settlement_amount\": \"130\",\n                \"shipping_cost_amount\": \"-70\",\n                \"shipping_cost_discount_amount\": \"40\",\n                \"shipping_fee_amount\": \"-10\",\n                \"shipping_fee_subsidy_amount\": \"0\",\n                \"shipping_insurance_fee_amount\": \"0\",\n                \"signature_confirmation_fee_amount\": \"0\",\n                \"sku_statement_transactions\": [\n                    {\n                        \"actual_return_shipping_fee_amount\": \"0\",\n                        \"actual_shipping_fee_amount\": \"-20\",\n                        \"adjustment_amount\": \"85\",\n                        \"affiliate_ads_commission_amount\": \"-3\",\n                        \"affiliate_commission_amount\": \"-3\",\n                        \"affiliate_commission_before_pit\": \"-4\",\n                        \"affiliate_partner_commission_amount\": \"0\",\n                        \"after_seller_discounts_subtotal_amount\": \"90\",\n                        \"currency\": \"USD\",\n                        \"customer_order_refund_amount\": \"0\",\n                        \"customer_paid_shipping_fee_amount\": \"70\",\n                        \"customer_paid_shipping_fee_refund_amount\": \"0\",\n                        \"customer_payment_amount\": \"90\",\n                        \"customer_refund_amount\": \"0\",\n                        \"customer_shipping_fee_amount\": \"5\",\n                        \"customer_shipping_fee_offset_amount\": \"-6.99\",\n                        \"fbm_shipping_cost_amount\": \"0\",\n                        \"fbt_fulfillment_fee_amount\": \"-1.99\",\n                        \"fbt_shipping_cost_amount\": \"-5\",\n                        \"fee_amount\": \"-15\",\n                        \"gross_sales_amount\": \"80\",\n                        \"gross_sales_refund_amount\": \"0\",\n                        \"net_sales_amount\": \"70\",\n                        \"pit_amount\": \"1\",\n                        \"platform_commission_amount\": \"0\",\n                        \"platform_discount_amount\": \"10\",\n                        \"platform_discount_refund_amount\": \"0\",\n                        \"platform_refund_subsidy_amount\": \"0\",\n                        \"platform_shipping_fee_discount_amount\": \"15\",\n                        \"product_name\": \"iPhone 14 Pro Max\",\n                        \"promo_shipping_incentive_amount\": \"1.99\",\n                        \"quantity\": 3,\n                        \"referral_fee_amount\": \"-1\",\n                        \"refund_administration_fee_amount\": \"0\",\n                        \"refund_shipping_cost_discount_amount\": \"0\",\n                        \"retail_delivery_fee_amount\": \"-10\",\n                        \"retail_delivery_fee_payment_amount\": \"-20\",\n                        \"retail_delivery_fee_refund_amount\": \"10\",\n                        \"return_shipping_fee_amount\": \"0\",\n                        \"revenue_amount\": \"90\",\n                        \"sales_tax_amount\": \"-5\",\n                        \"sales_tax_payment_amount\": \"5\",\n                        \"sales_tax_refund_amount\": \"0\",\n                        \"seller_discount_amount\": \"-10\",\n                        \"seller_discount_refund_amount\": \"0\",\n                        \"settlement_amount\": \"170\",\n                        \"shipping_cost_amount\": \"-70\",\n                        \"shipping_cost_discount_amount\": \"15\",\n                        \"shipping_fee_amount\": \"-5\",\n                        \"shipping_fee_subsidy_amount\": \"0\",\n                        \"shipping_insurance_fee_amount\": \"0\",\n                        \"signature_confirmation_fee_amount\": \"0\",\n                        \"sku_id\": \"1729383353063867953\",\n                        \"sku_name\": \"Black 256G \",\n                        \"transaction_fee_amount\": \"-1\"\n                    }\n                ],\n                \"statement_id\": \"7238804564097517339\",\n                \"statement_time\": 1685548800,\n                \"status\": \"SETTLED\",\n                \"transaction_fee_amount\": \"-2\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Finance/FinanceGetPaymentsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"payments\": [\n            {\n                \"amount\": {\n                    \"currency\": \"GBP\",\n                    \"value\": \"100\"\n                },\n                \"bank_account\": \"***********1234\",\n                \"create_time\": 1636105796,\n                \"exchange_rate\": \"1.000000\",\n                \"id\": \"3458767051733897992\",\n                \"paid_time\": 1685548800,\n                \"payment_amount_before_exchange\": {\n                    \"currency\": \"GBP\",\n                    \"value\": \"100\"\n                },\n                \"reserve_amount\": {\n                    \"currency\": \"GBP\",\n                    \"value\": \"-30\"\n                },\n                \"settlement_amount\": {\n                    \"currency\": \"GBP\",\n                    \"value\": \"130\"\n                },\n                \"status\": \"PAID\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Finance/FinanceGetStatementTransactionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"adjustment_amount\": \"-70\",\n        \"currency\": \"GBP\",\n        \"fee_amount\": \"-30\",\n        \"net_sales_amount\": \"70\",\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"revenue_amount\": \"200\",\n        \"settlement_amount\": \"130\",\n        \"shipping_cost_amount\": \"-70\",\n        \"statement_id\": \"7238804564097517339\",\n        \"statement_time\": 1685548800,\n        \"statement_transactions\": [\n            {\n                \"actual_return_shipping_fee_amount\": \"0\",\n                \"actual_shipping_fee_amount\": \"-50\",\n                \"adjustment_amount\": \"170\",\n                \"adjustment_id\": \"7238804564097517332\",\n                \"adjustment_order_id\": \"576463220456522968\",\n                \"affiliate_ads_commission_amount\": \"-3\",\n                \"affiliate_commission_amount\": \"-6\",\n                \"affiliate_commission_before_pit\": \"-7\",\n                \"affiliate_partner_commission_amount\": \"0\",\n                \"after_seller_discounts_subtotal_amount\": \"180\",\n                \"currency\": \"USD\",\n                \"customer_order_refund_amount\": \"0\",\n                \"customer_paid_shipping_fee_amount\": \"70\",\n                \"customer_paid_shipping_fee_refund_amount\": \"0\",\n                \"customer_payment_amount\": \"180\",\n                \"customer_refund_amount\": \"0\",\n                \"customer_shipping_fee_amount\": \"10\",\n                \"customer_shipping_fee_offset_amount\": \"-6.99\",\n                \"fbm_shipping_cost_amount\": \"0\",\n                \"fbt_fulfillment_fee_amount\": \"-1.99\",\n                \"fbt_shipping_cost_amount\": \"-10\",\n                \"fee_amount\": \"-30\",\n                \"gross_sales_amount\": \"80\",\n                \"gross_sales_refund_amount\": \"0\",\n                \"id\": \"1636700041413599290\",\n                \"net_sales_amount\": \"70\",\n                \"order_create_time\": 1685548800,\n                \"order_id\": \"576463220456522968\",\n                \"pit_amount\": \"1\",\n                \"platform_commission_amount\": \"0\",\n                \"platform_discount_amount\": \"10\",\n                \"platform_discount_refund_amount\": \"20\",\n                \"platform_refund_subsidy_amount\": \"0\",\n                \"platform_shipping_fee_discount_amount\": \"40\",\n                \"promo_shipping_incentive_amount\": \"1.99\",\n                \"referral_fee_amount\": \"-2\",\n                \"refund_administration_fee_amount\": \"0\",\n                \"refund_shipping_cost_discount_amount\": \"0\",\n                \"retail_delivery_fee_amount\": \"-10\",\n                \"retail_delivery_fee_payment_amount\": \"-20\",\n                \"retail_delivery_fee_refund_amount\": \"10\",\n                \"return_shipping_fee_amount\": \"0\",\n                \"revenue_amount\": \"200\",\n                \"sales_tax_amount\": \"-10\",\n                \"sales_tax_payment_amount\": \"10\",\n                \"sales_tax_refund_amount\": \"0\",\n                \"seller_discount_amount\": \"-10\",\n                \"seller_discount_refund_amount\": \"0\",\n                \"settlement_amount\": \"130\",\n                \"shipping_cost_amount\": \"-70\",\n                \"shipping_cost_discount_amount\": \"40\",\n                \"shipping_fee_amount\": \"-10\",\n                \"shipping_fee_subsidy_amount\": \"0\",\n                \"shipping_insurance_fee_amount\": \"0\",\n                \"signature_confirmation_fee_amount\": \"0\",\n                \"transaction_fee_amount\": \"-2\",\n                \"type\": \"ORDER\"\n            }\n        ],\n        \"total_count\": 2\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Finance/FinanceGetStatementsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"statements\": [\n            {\n                \"adjustment_amount\": \"-70\",\n                \"currency\": \"GBP\",\n                \"fee_amount\": \"-30\",\n                \"id\": \"7238804564097517339\",\n                \"net_sales_amount\": \"-70\",\n                \"payment_id\": \"3459275187040258849\",\n                \"payment_status\": \"PAID\",\n                \"revenue_amount\": \"200\",\n                \"settlement_amount\": \"100\",\n                \"shipping_cost_amount\": \"-70\",\n                \"statement_time\": 1685548800\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Finance/FinanceGetWithdrawalsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"total_count\": 1,\n        \"withdrawals\": [\n            {\n                \"amount\": \"100\",\n                \"create_time\": 1623812664,\n                \"currency\": \"IDR\",\n                \"id\": \"EFASDFSAFDA23432DFAFDSA\",\n                \"status\": \"PROCESSING\",\n                \"type\": \"WITHDRAW\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Bundle/FulfillmentCreateBundleRequest.json",
    "content": "{\n    \"handover_method\": \"PICKUP\",\n    \"order_ids\": [\n        \"578967030217083407\"\n    ],\n    \"phone_tail_number\": \"1234\",\n    \"shipping_provider_id\": \"7463353253533\",\n    \"tracking_number\": \"SF1244442424\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Bundle/FulfillmentCreateBundleResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 10007014,\n                \"detail\": {\n                    \"order_id\": \"578967030217083407\"\n                },\n                \"message\": \"invalid package id\"\n            }\n        ],\n        \"first_mile_bundle_id\": \"BA123444534\",\n        \"url\": \"https://open-fs-va.tiktokshop.com/doc_tts/object/28b05?skipCookie=true&timeStamp=1721272360&sign=ef63cd6\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentGetOrderSplitAttributesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"split_attributes\": [\n            {\n                \"can_split\": false,\n                \"order_id\": \"556643423444\",\n                \"reason\": \"Order has been canceled\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentGetOrderTrackingResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"tracking\": [\n            {\n                \"description\": \"Your package was delivered!\\n\",\n                \"update_time_millis\": 1694685539000\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentSearchOrderShippingServicesRequest.json",
    "content": "{\n    \"dimension\": {\n        \"height\": \"0.5\",\n        \"length\": \"0.3\",\n        \"unit\": \"INCH\",\n        \"width\": \"0.2\"\n    },\n    \"order_line_item_ids\": [\n        \"32132124331234\"\n    ],\n    \"weight\": {\n        \"unit\": \"GRAM\",\n        \"value\": \"0.4\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentSearchOrderShippingServicesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"dimension\": {\n            \"height\": \"0.04\",\n            \"length\": \"0.3\",\n            \"unit\": \"INCH\",\n            \"width\": \"0.2\"\n        },\n        \"order_id\": \"28823355942588\",\n        \"order_line_id\": [\n            \"32132124331234\"\n        ],\n        \"shipping_services\": [\n            {\n                \"currency\": \"USD\",\n                \"earliest_delivery_days\": 3,\n                \"id\": \"288233559123860015\",\n                \"is_default\": false,\n                \"latest_delivery_days\": 5,\n                \"name\": \"UPS-first class\",\n                \"price\": \"5\",\n                \"shipping_provider_id\": \"288233559123860012\",\n                \"shipping_provider_name\": \"UPS\"\n            }\n        ],\n        \"weight\": {\n            \"unit\": \"GRAM\",\n            \"value\": \"1.2\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentSplitOrderRequest.json",
    "content": "{\n    \"splittable_groups\": [\n        {\n            \"id\": \"123\",\n            \"order_line_item_ids\": [\n                \"57646237751283022\",\n                \"576462377512830223\"\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentSplitOrderResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"packages\": [\n            {\n                \"id\": \"223362377512830222\",\n                \"splittable_group_id\": \"123\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentUpdateOrderPackagesRequest.json",
    "content": "{\n    \"order_line_item_ids\": [\n        \"2321312321311\"\n    ],\n    \"shipping_provider_id\": \"12312312321323432\",\n    \"tracking_number\": \"6617675021119438849\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentUpdateOrderPackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"order_id\": \"32131324123321\",\n        \"order_line_item_ids\": [\n            \"31322412312312\"\n        ],\n        \"package_id\": \"32141235124234\",\n        \"warning\": {\n            \"message\": \"match more than one provider\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Orders/FulfillmentUpdateOrderShippingInfoRequest.json",
    "content": "{\n    \"shipping_provider_id\": \"6965352555291346690\",\n    \"tracking_number\": \"576460868968549926\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/Combine/FulfillmentCombinePackageRequest.json",
    "content": "{\n    \"combinable_packages\": [\n        {\n            \"id\": \"12321313133\",\n            \"order_ids\": [\n                \"1233213123123\",\n                \"32132131231\"\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/Combine/FulfillmentCombinePackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 10007014,\n                \"detail\": {\n                    \"package_id\": \"1231231231231313123132\"\n                },\n                \"message\": \"fulfillment not allow combine package\"\n            }\n        ],\n        \"packages\": [\n            {\n                \"id\": \"413234134123412\",\n                \"order_ids\": [\n                    \"1233213123123\",\n                    \"32132131231\"\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/Combine/FulfillmentSearchCombinablePackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"combinable_packages\": [\n            {\n                \"id\": \"57466538837665\",\n                \"order_ids\": [\n                    \"57466538837665\",\n                    \"57466538837666\"\n                ]\n            }\n        ],\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA\",\n        \"total_count\": 10\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/Combine/FulfillmentUncombinePackageRequest.json",
    "content": "{\n    \"order_ids\": [\n        \"11132131131\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/Combine/FulfillmentUncombinePackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"packages\": [\n            {\n                \"id\": \"123456\",\n                \"order_ids\": [\n                    \"576462377512830168\",\n                    \"576462377512830168\"\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentBatchShipPackagesRequest.json",
    "content": "{\n    \"packages\": [\n        {\n            \"handover_method\": \"PICKUP\",\n            \"id\": \"12321312312431\",\n            \"pickup_slot\": {\n                \"end_time\": 1623812664,\n                \"start_time\": 1623812664\n            },\n            \"self_shipment\": {\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"tracking_number\": \"JX12345\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentBatchShipPackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 10007014,\n                \"detail\": {\n                    \"package_id\": \"123123123123131\"\n                },\n                \"message\": \"package in freeze status\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentBatchUpdatePackagesDeliveryStatusRequest.json",
    "content": "{\n    \"packages\": [\n        {\n            \"delivery_type\": \"DELIVERY_SUCCESS\",\n            \"fail_delivery_reason\": \"INVALID_ADDRESS\",\n            \"file_type\": \"IMG\",\n            \"file_url\": \"https://tiktok.shopcenter.cn/file/CWvBsBZ9mhbMiHtmbZecKshon6f?table=tblTW\",\n            \"id\": \"11529598723402\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentBatchUpdatePackagesDeliveryStatusResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 10007014,\n                \"detail\": {\n                    \"package_id\": \"1231231231231\"\n                },\n                \"message\": \"order not in sof service\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentCreatePackageRequest.json",
    "content": "{\n    \"dimension\": {\n        \"height\": \"0.03\",\n        \"length\": \"1.2\",\n        \"unit\": \"CM\",\n        \"width\": \"0.2\"\n    },\n    \"order_id\": \"2882335594258860015\",\n    \"order_line_item_ids\": [\n        \"32132124331234\"\n    ],\n    \"shipping_service_id\": \"288233559123860015\",\n    \"weight\": {\n        \"unit\": \"GRAM\",\n        \"value\": \"1.2\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentCreatePackageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"create_time\": 1623812664,\n        \"dimension\": {\n            \"height\": \"0.03\",\n            \"length\": \"1.2\",\n            \"unit\": \"CM\",\n            \"width\": \"0.2\"\n        },\n        \"order_id\": \"2882335594258860015\",\n        \"order_line_item_ids\": [\n            \"32132124331234\"\n        ],\n        \"package_id\": \"2882335594258860015\",\n        \"shipping_service_info\": {\n            \"currency\": \"dollar\",\n            \"earliest_delivery_days\": 3,\n            \"id\": \"288233559123860015\",\n            \"latest_delivery_days\": 5,\n            \"name\": \"UPS-first class\",\n            \"price\": \"10\",\n            \"shipping_provider_id\": \"2882322591238\",\n            \"shipping_provider_name\": \"UPS\"\n        },\n        \"weight\": {\n            \"unit\": \"GRAM\",\n            \"value\": \"1.2\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentGetPackageDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"create_time\": 1635338186,\n        \"delivery_option_id\": \"7091146663229654785\",\n        \"delivery_option_name\": \"Shipped from seller\\n\",\n        \"dimension\": {\n            \"height\": \"0.03\",\n            \"length\": \"1.2\",\n            \"unit\": \"CM\",\n            \"width\": \"0.2\"\n        },\n        \"handover_method\": \"PICKUP\",\n        \"has_multi_skus\": true,\n        \"note_tag\": \"BUYER_UNNOTED\",\n        \"order_line_item_ids\": [\n            \"1729382476852921560\"\n        ],\n        \"orders\": [\n            {\n                \"id\": \"54335448533296\",\n                \"skus\": [\n                    {\n                        \"id\": \"2729382476852921560\",\n                        \"image_url\": \"https://p19-oec-sg.ibyteimg.com/tos-maliva-i-o3syd03w52-us/12345670c\",\n                        \"name\": \"white,128g\",\n                        \"quantity\": 5\n                    }\n                ]\n            }\n        ],\n        \"package_id\": \"5433567853345\",\n        \"package_status\": \"PROCESSING\",\n        \"pickup_slot\": {\n            \"end_time\": 1635338186,\n            \"start_time\": 1635338186\n        },\n        \"recipient_address\": {\n            \"address_detail\": \"Unit one building 8\\n\",\n            \"address_line1\": \"TikTok 5800 bristol Pkwy\\n\",\n            \"address_line2\": \"Suite 100\\n\",\n            \"address_line3\": \"\\\"\\\"\",\n            \"address_line4\": \"\\\"\\\"\",\n            \"full_address\": \"1*** Coleman Ave San Jose, CA 95110\\n\",\n            \"name\": \"Zay\",\n            \"phone_number\": \"(+1)213-***-1234\\n\",\n            \"postal_code\": \"95110\\n\",\n            \"region_code\": \"US\"\n        },\n        \"sender_address\": {\n            \"address_detail\": \"Unit one building 8\",\n            \"address_line1\": \"TikTok 5800 bristol Pkwy\",\n            \"address_line2\": \"Suite 100\",\n            \"address_line3\": \"\\\"\\\"\",\n            \"address_line4\": \"\\\"\\\"\",\n            \"full_address\": \"1*** Coleman Ave San Jose, CA 95110\",\n            \"name\": \"Zay\",\n            \"phone_number\": \"(+1)213-***-1234\\n\",\n            \"postal_code\": \"95110\",\n            \"region_code\": \"US\"\n        },\n        \"shipping_provider_id\": \"6617675021119438849\",\n        \"shipping_provider_name\": \"TT Virtual express\",\n        \"shipping_type\": \"TIKTOK\",\n        \"split_and_combine_tag\": \"SPLIT\",\n        \"tracking_number\": \"6617675021119438849\",\n        \"update_time\": 1635338186,\n        \"weight\": {\n            \"unit\": \"GRAM\",\n            \"value\": \"1.2\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentGetPackageHandoverTimeSlotsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"can_drop_off\": true,\n        \"can_pickup\": true,\n        \"can_van_collection\": true,\n        \"drop_off_point_url\": \"true\",\n        \"pickup_slots\": [\n            {\n                \"avaliable\": true,\n                \"end_time\": 1623812664,\n                \"start_time\": 1623812664\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentGetPackageShippingDocumentsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"doc_url\": \"https://magelng.bytedance.net2/wsos_v2/oec_fulfillment_doc_tts/object/wsos641232\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentSearchPackagesRequest.json",
    "content": "{\n    \"create_time_ge\": 1623812664,\n    \"create_time_lt\": 1623812664,\n    \"package_status\": \"PROCESSING\",\n    \"update_time_ge\": 1623812664,\n    \"update_time_lt\": 1623812664\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentSearchPackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA\",\n        \"packages\": [\n            {\n                \"create_time\": 1635338186,\n                \"id\": \"577828281214600000\",\n                \"order_line_item_ids\": [\n                    \"1729382476852921560\"\n                ],\n                \"orders\": [\n                    {\n                        \"id\": \"577828281214600000\",\n                        \"skus\": [\n                            {\n                                \"id\": \"577828281214883345\",\n                                \"image_url\": \"https://p19-oec-sg.ibyteimg.com/tos-maliva-i-o3syd03w52-us/12345670\",\n                                \"name\": \"white,128g\",\n                                \"quantity\": 5\n                            }\n                        ]\n                    }\n                ],\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"shipping_provider_name\": \"TT Virtual express\",\n                \"status\": \"PROCESSING\",\n                \"tracking_number\": \"6617675021119438849\",\n                \"update_time\": 1635338186\n            }\n        ],\n        \"total_count\": 221\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentShipPackageRequest.json",
    "content": "{\n    \"handover_method\": \"PICKUP\",\n    \"pickup_slot\": {\n        \"end_time\": 1623812664,\n        \"start_time\": 1623812664\n    },\n    \"self_shipment\": {\n        \"shipping_provider_id\": \"6617675021119438849\",\n        \"tracking_number\": \"JX12345\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Packages/FulfillmentUpdatePackageShippingInfoRequest.json",
    "content": "{\n    \"shipping_provider_id\": \"6965352555291346690\",\n    \"tracking_number\": \"576460868968549926\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Upload/FulfillmentUploadFileResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"name\": \"attachment_file.pdf\",\n        \"url\": \"https://maellane.bytedance.net/wsos_v2/oec_fulfillment_doc_tts/o\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Fulfillment/Upload/FulfillmentUploadImageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"height\": 256,\n        \"url\": \"https://p-pbe38.byted.org/tos-ppdi18n-i-0euhj0x6u9/0a119a90d90b41e3838608bc384\",\n        \"width\": 256\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Logistics/LogisticsGetDeliveryOptionShippingProvidersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shipping_providers\": [\n            {\n                \"id\": \"7117858858072016686\",\n                \"name\": \"USPS\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Logistics/LogisticsGetGlobalWarehousesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_warehouses\": [\n            {\n                \"id\": \"7000714532876273411\",\n                \"name\": \"Guangzhou\",\n                \"ownership\": \"SELLER\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Logistics/LogisticsGetWarehouseDeliveryOptionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"delivery_options\": [\n            {\n                \"description\": \"LSV-TTS-STD  S\",\n                \"dimension_limit\": {\n                    \"max_height\": 100,\n                    \"max_length\": 100,\n                    \"max_width\": 100,\n                    \"unit\": \"INCH\"\n                },\n                \"id\": \"6955034615128000261\",\n                \"name\": \"LSV-TTS-STD\",\n                \"platform\": [\n                    \"TOKOPEDIA\",\n                    \"TIKTOK_SHOP\"\n                ],\n                \"type\": \"STANDARD\",\n                \"weight_limit\": {\n                    \"max_weight\": 100,\n                    \"min_weight\": 100,\n                    \"unit\": \"GRAM\"\n                }\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Logistics/LogisticsGetWarehousesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"warehouses\": [\n            {\n                \"address\": {\n                    \"city\": \"GuanZhou\",\n                    \"contact_person\": \"Lee\",\n                    \"distict\": \"HuaDu\",\n                    \"full_address\": \"South Sea 11 floor\",\n                    \"geolocation\": {\n                        \"latitude\": \"45.41634\",\n                        \"longitude\": \"-75.6868\"\n                    },\n                    \"phone_number\": \"188****2234\",\n                    \"postal_code\": \"510000\",\n                    \"region\": \"China\",\n                    \"region_code\": \"CN\",\n                    \"state\": \"GuangDong\",\n                    \"town\": \"town\"\n                },\n                \"effect_status\": \"ENABLED\",\n                \"id\": \"7000714532876273410\",\n                \"is_default\": true,\n                \"name\": \"Guangzhou\",\n                \"sub_type\": \"DOMESTIC_WAREHOUSE\",\n                \"type\": \"SALES_WAREHOUSE\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/ExternalOrder/OrderCreateExternalOrderRequest.json",
    "content": "{\n    \"orders\": [\n        {\n            \"external_order\": {\n                \"id\": \"676461413038785752\",\n                \"line_items\": [\n                    {\n                        \"id\": \"577086512123755123\",\n                        \"origin_id\": \"677086512123755123\"\n                    }\n                ],\n                \"platform\": \"SHOPIFY\"\n            },\n            \"id\": \"576461413038785752\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/ExternalOrder/OrderCreateExternalOrderResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": \"36020001\",\n                \"detail\": {\n                    \"external_order\": {\n                        \"id\": \"676461413038785752\",\n                        \"platform\": \"SHOPIFY\"\n                    },\n                    \"order_id\": \"576461413038785752\"\n                },\n                \"message\": \"Invalid order_id\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/ExternalOrder/OrderGetExternalOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"external_orders\": [\n            {\n                \"id\": \"676461413038785752\",\n                \"line_items\": [\n                    {\n                        \"id\": \"577086512123755123\",\n                        \"origin_id\": \"677086512123755123\"\n                    }\n                ],\n                \"platform\": \"SHOPIFY\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/ExternalOrder/OrderSearchExternalOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"orders\": [\n            {\n                \"external_order\": {\n                    \"id\": \"676461413038785752\",\n                    \"line_items\": [\n                        {\n                            \"id\": \"577086512123755123\",\n                            \"origin_id\": \"677086512123755123\"\n                        }\n                    ],\n                    \"platform\": \"SHOPIFY\"\n                },\n                \"id\": \"576461413038785752\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/OrderBatchGetOrderDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"orders\": [\n            {\n                \"buyer_email\": \"v2b2V5@chat.seller.tiktok.com\",\n                \"buyer_message\": \"Please ship asap!\",\n                \"cancel_order_sla_time\": 1619621355,\n                \"cancel_reason\": \"Pricing error\",\n                \"cancel_time\": 1678389618,\n                \"cancellation_initiator\": \"SELLER\",\n                \"collection_due_time\": 1678389618,\n                \"collection_time\": 1678389618,\n                \"commerce_platform\": \"TIKTOK_SHOP\",\n                \"cpf\": \"3213-31231412\",\n                \"create_time\": 1619611561,\n                \"delivery_due_time\": 1678389618,\n                \"delivery_option_id\": \"7091146663229654785\",\n                \"delivery_option_name\": \"Express shipping\",\n                \"delivery_option_required_delivery_time\": 1678389618,\n                \"delivery_sla_time\": 1678389618,\n                \"delivery_time\": 1678389618,\n                \"delivery_type\": \"HOME_DELIVERY\",\n                \"fast_dispatch_sla_time\": 1678389618,\n                \"fulfillment_type\": \"FULFILLMENT_BY_SELLER\",\n                \"handling_duration\": {\n                    \"days\": \"7\",\n                    \"type\": \"BUSINESS_DAY\"\n                },\n                \"has_updated_recipient_address\": false,\n                \"id\": \"576461413038785752\",\n                \"is_buyer_request_cancel\": false,\n                \"is_cod\": false,\n                \"is_on_hold_order\": false,\n                \"is_replacement_order\": false,\n                \"is_sample_order\": false,\n                \"line_items\": [\n                    {\n                        \"buyer_service_fee\": \"1000\",\n                        \"cancel_reason\": \"Discount not as expected\",\n                        \"cancel_user\": \"BUYER\",\n                        \"combined_listing_skus\": [\n                            {\n                                \"product_id\": \"1729582718312380456\",\n                                \"seller_sku\": \"yellow-24-XL \",\n                                \"sku_count\": 1,\n                                \"sku_id\": \"2729382476852921123\"\n                            }\n                        ],\n                        \"currency\": \"IDR\",\n                        \"display_status\": \"TO_SHIP\",\n                        \"handling_duration_days\": \"7\",\n                        \"id\": \"577086512123755123\",\n                        \"is_gift\": false,\n                        \"item_tax\": [\n                            {\n                                \"tax_amount\": \"21.2\",\n                                \"tax_rate\": \"0.35\",\n                                \"tax_type\": \"SALES_TAX\"\n                            }\n                        ],\n                        \"original_price\": \"0.01\",\n                        \"package_id\": \"1153132168123859123\",\n                        \"package_status\": \"TO_FULFILL\",\n                        \"platform_discount\": \"0\",\n                        \"product_id\": \"1729582718312380123\",\n                        \"product_name\": \"Women's Winter Crochet Clothes\",\n                        \"retail_delivery_fee\": \"1.28\",\n                        \"rts_time\": 1678389618,\n                        \"sale_price\": \"0.01\",\n                        \"seller_discount\": \"0\",\n                        \"seller_sku\": \"red_iphone_256\",\n                        \"shipping_provider_id\": \"6617675021119438849\",\n                        \"shipping_provider_name\": \"TT Virtual express\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_image\": \"https://p16-oec-va.itexeitg.com/tos-maliva-d-o5syd03w52-us/46123e87d14f40b69b839\",\n                        \"sku_name\": \"Iphone\",\n                        \"sku_type\": \"PRE_ORDER\",\n                        \"small_order_fee\": \"5000\",\n                        \"tracking_number\": \"JX12345\"\n                    }\n                ],\n                \"need_upload_invoice\": \"NEED_INVOICE\",\n                \"order_type\": \"ZERO_LOTTERY\",\n                \"packages\": [\n                    {\n                        \"id\": \"1152321127278713123\"\n                    }\n                ],\n                \"paid_time\": 1619611563,\n                \"payment\": {\n                    \"buyer_service_fee\": \"1000\",\n                    \"currency\": \"IDR\",\n                    \"handling_fee\": \"1000\",\n                    \"item_insurance_fee\": \"1000\",\n                    \"original_shipping_fee\": \"5000\",\n                    \"original_total_product_price\": \"5000\",\n                    \"platform_discount\": \"5000\",\n                    \"product_tax\": \"21.3\",\n                    \"retail_delivery_fee\": \"1.28\",\n                    \"seller_discount\": \"5000\",\n                    \"shipping_fee\": \"5000\",\n                    \"shipping_fee_platform_discount\": \"5000\",\n                    \"shipping_fee_seller_discount\": \"5000\",\n                    \"shipping_fee_tax\": \"11\",\n                    \"shipping_insurance_fee\": \"1000\",\n                    \"small_order_fee\": \"3000\",\n                    \"sub_total\": \"5000\",\n                    \"tax\": \"5000\",\n                    \"total_amount\": \"5000\"\n                },\n                \"payment_method_name\": \"CCDC\",\n                \"pick_up_cut_off_time\": 1678389618,\n                \"recipient_address\": {\n                    \"address_detail\": \"Unit one building 8\",\n                    \"address_line1\": \"TikTok 5800 bristol Pkwy\",\n                    \"address_line2\": \"Suite 100\",\n                    \"address_line3\": \"\\\"\\\"\",\n                    \"address_line4\": \"\\\"\\\"\",\n                    \"delivery_preferences\": {\n                        \"drop_off_location\": \"Front Door\"\n                    },\n                    \"district_info\": [\n                        {\n                            \"address_level\": \"L0\",\n                            \"address_level_name\": \"Country\",\n                            \"address_name\": \"United Kingdom\"\n                        }\n                    ],\n                    \"first_name\": \"David\",\n                    \"full_address\": \"1199 Coleman Ave San Jose, CA 95110\",\n                    \"last_name\": \"Kong\",\n                    \"name\": \"David Kong\",\n                    \"phone_number\": \"(+1)213-***-1234\",\n                    \"postal_code\": \"95110\",\n                    \"region_code\": \"US\"\n                },\n                \"release_date\": 1619611762,\n                \"replaced_order_id\": \"576461416728782174\",\n                \"request_cancel_time\": 1678389618,\n                \"rts_sla_time\": 1619611688,\n                \"rts_time\": 1619611563,\n                \"seller_note\": \"seller note\",\n                \"shipping_due_time\": 1678389618,\n                \"shipping_provider\": \"TT Virtual express\",\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"shipping_type\": \"TIKTOK\",\n                \"split_or_combine_tag\": \"COMBINED\",\n                \"status\": \"UNPAID\",\n                \"tracking_number\": \"JX12345\",\n                \"tts_sla_time\": 1619611761,\n                \"update_time\": 1619621355,\n                \"user_id\": \"7021436810468230477\",\n                \"warehouse_id\": \"6955005333819123123\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/OrderGetOrderPriceDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"cod_fee\": \"0.00\",\n        \"cod_fee_net_amount\": \"0.00\",\n        \"currency\": \"USD\",\n        \"line_items\": [\n            {\n                \"cod_fee\": \"0.00\",\n                \"cod_fee_amount\": \"0.00\",\n                \"currency\": \"USD\",\n                \"id\": \"576461413032342720\",\n                \"net_price_amount\": \"97.00\",\n                \"payment\": \"101.00\",\n                \"shipping_fee_deduction_platform\": \"12.00\",\n                \"shipping_fee_deduction_platform_voucher\": \"1010000\",\n                \"shipping_fee_deduction_seller\": \"10.00\",\n                \"shipping_list_price\": \"25.00\",\n                \"shipping_sale_price\": \"3.00\",\n                \"sku_gift_net_price\": \"2.02\",\n                \"sku_gift_original_price\": \"2.00\",\n                \"sku_list_price\": \"97.00\",\n                \"sku_sale_price\": \"96.00\",\n                \"subtotal\": \"98.00\",\n                \"subtotal_deduction_platform\": \"0.50\",\n                \"subtotal_deduction_seller\": \"0.50\",\n                \"subtotal_tax_amount\": \"2.00\",\n                \"tax_amount\": \"2.00\",\n                \"tax_rate\": \"0.021\",\n                \"total\": \"122.00\",\n                \"voucher_deduction_platform\": \"1010000\",\n                \"voucher_deduction_seller\": \"1020000\"\n            }\n        ],\n        \"net_price_amount\": \"97.00\",\n        \"payment\": \"101.00\",\n        \"shipping_fee_deduction_platform\": \"12.00\",\n        \"shipping_fee_deduction_platform_voucher\": \"1010000\",\n        \"shipping_fee_deduction_seller\": \"10.00\",\n        \"shipping_list_price\": \"25.00\",\n        \"shipping_sale_price\": \"3.00\",\n        \"sku_gift_net_price\": \"2.02\",\n        \"sku_gift_original_price\": \"2.00\",\n        \"sku_list_price\": \"97.00\",\n        \"sku_sale_price\": \"96.00\",\n        \"subtotal\": \"98.00\",\n        \"subtotal_deduction_platform\": \"0.50\",\n        \"subtotal_deduction_seller\": \"0.50\",\n        \"subtotal_tax_amount\": \"2.00\",\n        \"tax_amount\": \"2.00\",\n        \"tax_rate\": \"0.021\",\n        \"total\": \"122.00\",\n        \"voucher_deduction_platform\": \"1010000\",\n        \"voucher_deduction_seller\": \"1020000\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/OrderSearchOrdersRequest.json",
    "content": "{\n    \"buyer_user_id\": \"7213489962827123654\",\n    \"create_time_ge\": 1623812664,\n    \"create_time_lt\": 1623812664,\n    \"is_buyer_request_cancel\": false,\n    \"order_status\": \"UNPAID\",\n    \"shipping_type\": \"TIKTOK\",\n    \"update_time_ge\": 1623812664,\n    \"update_time_lt\": 1623812664\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Order/OrderSearchOrdersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"6AsPQsUMvH3RkchNUPPh22NROHkE0D8pmq/N5M1kHYcZmtRyv9aVrNv65W7Q6tFA+7D1ud64MPNz5OaT\",\n        \"orders\": [\n            {\n                \"buyer_email\": \"v2b2V5@chat.seller.tiktok.com\\n\",\n                \"buyer_message\": \"Please ship asap!\",\n                \"cancel_order_sla_time\": 1619621355,\n                \"cancel_reason\": \"Pricing error\",\n                \"cancel_time\": 1678389618,\n                \"cancellation_initiator\": \"SELLER\",\n                \"collection_due_time\": 1678389618,\n                \"collection_time\": 1678389618,\n                \"commerce_platform\": \"TIKTOK_SHOP\",\n                \"cpf\": \"3213-31231412\",\n                \"create_time\": 1619611561,\n                \"delivery_due_time\": 1678389618,\n                \"delivery_option_id\": \"7091146663229654785\",\n                \"delivery_option_name\": \"Shipped from seller\",\n                \"delivery_option_required_delivery_time\": 1678389618,\n                \"delivery_sla_time\": 1678389618,\n                \"delivery_time\": 1678389618,\n                \"delivery_type\": \"HOME_DELIVERY\",\n                \"fast_dispatch_sla_time\": 1678389618,\n                \"fulfillment_type\": \"FULFILLMENT_BY_SELLER\",\n                \"handling_duration\": {\n                    \"days\": \"7\",\n                    \"type\": \"BUSINESS_DAY\"\n                },\n                \"has_updated_recipient_address\": false,\n                \"id\": \"576461413038785752\",\n                \"is_buyer_request_cancel\": false,\n                \"is_cod\": false,\n                \"is_on_hold_order\": false,\n                \"is_replacement_order\": false,\n                \"is_sample_order\": false,\n                \"line_items\": [\n                    {\n                        \"buyer_service_fee\": \"1000\",\n                        \"cancel_reason\": \"Discount not as expected\",\n                        \"cancel_user\": \"BUYER\",\n                        \"combined_listing_skus\": [\n                            {\n                                \"product_id\": \"1729582718312380456\",\n                                \"seller_sku\": \"yellow-24-XL \",\n                                \"sku_count\": 1,\n                                \"sku_id\": \"2729382476852921123\"\n                            }\n                        ],\n                        \"currency\": \"IDR\",\n                        \"display_status\": \"UNPAID\",\n                        \"handling_duration_days\": \"7\",\n                        \"id\": \"577086512123755123\",\n                        \"is_gift\": false,\n                        \"item_tax\": [\n                            {\n                                \"tax_amount\": \"21.2\",\n                                \"tax_rate\": \"0.35\",\n                                \"tax_type\": \"SALES_TAX\"\n                            }\n                        ],\n                        \"original_price\": \"0.01\",\n                        \"package_id\": \"1153132168123859123\\n\",\n                        \"package_status\": \"TO_FULFILL\",\n                        \"platform_discount\": \"0\",\n                        \"product_id\": \"1729582718312380123\",\n                        \"product_name\": \"Women's Winter Crochet Clothes\",\n                        \"retail_delivery_fee\": \"1.28\",\n                        \"rts_time\": 1678389618,\n                        \"sale_price\": \"0.01\",\n                        \"seller_discount\": \"0\",\n                        \"seller_sku\": \"red_iphone_256\",\n                        \"shipping_provider_id\": \"6617675021119438849\",\n                        \"shipping_provider_name\": \"TT Virtual express\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_image\": \"https://p16-oec-va.itexeitg.com/tos-maliva-d-o5syd03w52-us/46123e87d14f40b69b839\",\n                        \"sku_name\": \"Iphone\",\n                        \"sku_type\": \"PRE_ORDER\",\n                        \"small_order_fee\": \"5000\",\n                        \"tracking_number\": \"JX12345\"\n                    }\n                ],\n                \"need_upload_invoice\": \"NEED_INVOICE\\n\",\n                \"order_type\": \"ZERO_LOTTERY\",\n                \"packages\": [\n                    {\n                        \"id\": \"1152321127278713123\"\n                    }\n                ],\n                \"paid_time\": 1619611563,\n                \"payment\": {\n                    \"buyer_service_fee\": \"1000\",\n                    \"currency\": \"IDR\",\n                    \"handling_fee\": \"1000\",\n                    \"item_insurance_fee\": \"1000\",\n                    \"original_shipping_fee\": \"5000\",\n                    \"original_total_product_price\": \"5000\",\n                    \"platform_discount\": \"5000\",\n                    \"product_tax\": \"21.3\",\n                    \"retail_delivery_fee\": \"1.28\",\n                    \"seller_discount\": \"5000\",\n                    \"shipping_fee\": \"5000\",\n                    \"shipping_fee_platform_discount\": \"5000\",\n                    \"shipping_fee_seller_discount\": \"5000\",\n                    \"shipping_fee_tax\": \"11\",\n                    \"shipping_insurance_fee\": \"1000\",\n                    \"small_order_fee\": \"3000\",\n                    \"sub_total\": \"5000\",\n                    \"tax\": \"5000\",\n                    \"total_amount\": \"5000\"\n                },\n                \"payment_method_name\": \"CCDC\",\n                \"pick_up_cut_off_time\": 1678389618,\n                \"recipient_address\": {\n                    \"address_detail\": \"Unit one building 8\",\n                    \"address_line1\": \"TikTok 5800 bristol Pkwy\",\n                    \"address_line2\": \"Suite 100\",\n                    \"address_line3\": \" \",\n                    \"address_line4\": \" \",\n                    \"delivery_preferences\": {\n                        \"drop_off_location\": \"Front Door\"\n                    },\n                    \"district_info\": [\n                        {\n                            \"address_level\": \"L0\",\n                            \"address_level_name\": \"Country\",\n                            \"address_name\": \"United Kingdom\"\n                        }\n                    ],\n                    \"first_name\": \"David\",\n                    \"full_address\": \"1199 Coleman Ave San Jose, CA 95110\",\n                    \"last_name\": \"Kong\",\n                    \"name\": \"David Kong\",\n                    \"phone_number\": \"(+1)213-***-1234\",\n                    \"postal_code\": \"95110\",\n                    \"region_code\": \"US\"\n                },\n                \"release_date\": 1619611762,\n                \"replaced_order_id\": \"576461416728782174\",\n                \"request_cancel_time\": 1678389618,\n                \"rts_sla_time\": 1619611688,\n                \"rts_time\": 1619611563,\n                \"seller_note\": \"seller note\",\n                \"shipping_due_time\": 1678389618,\n                \"shipping_provider\": \"TT Virtual express\",\n                \"shipping_provider_id\": \"6617675021119438849\",\n                \"shipping_type\": \"TIKTOK\",\n                \"split_or_combine_tag\": \"COMBINED\",\n                \"status\": \"UNPAID\",\n                \"tracking_number\": \"JX12345\",\n                \"tts_sla_time\": 1619611761,\n                \"update_time\": 1619621355,\n                \"user_id\": \"7021436810468230477\",\n                \"warehouse_id\": \"6955005333819123123\"\n            }\n        ],\n        \"total_count\": 22113\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Brand/ProductCreateBrandRequest.json",
    "content": "{\n    \"name\": \"Teas\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Brand/ProductCreateBrandResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"id\": \"7082427311584347905\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Brand/ProductGetBrandsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"brands\": [\n            {\n                \"authorized_status\": \"UNAUTHORIEZD\",\n                \"brand_status\": \"AVAILABLE\",\n                \"id\": \"7082427311584347905\",\n                \"is_t1_brand\": true,\n                \"name\": \"Teas\"\n            }\n        ],\n        \"next_page_token\": \"b2Zmc2V0PTAK\",\n        \"total_count\": 10000\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Category/ProductGetCategoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": \"600002\",\n                \"is_leaf\": false,\n                \"local_name\": \"Home Supplies\",\n                \"parent_id\": \"600001\",\n                \"permission_statuses\": [ \"INVITE_ONLY\", \"NON_MAIN_CATEGORY\" ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Category/ProductGetCategoryAttributesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"attributes\": [\n            {\n                \"id\": \"100392\",\n                \"is_customizable\": true,\n                \"is_multiple_selection\": true,\n                \"is_required\": false,\n                \"name\": \"Occasion\",\n                \"requirement_conditions\": [\n                    {\n                        \"attribute_id\": \"101610\",\n                        \"attribute_value_id\": \"1024358\",\n                        \"condition_type\": \"VALUE_ID_MATCH\"\n                    }\n                ],\n                \"type\": \"PRODUCT_PROPERTY\",\n                \"value_data_format\": \"POSITIVE_INT_OR_DECIMAL\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Category/ProductGetCategoryRulesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"cod\": {\n            \"is_supported\": true\n        },\n        \"epr\": {\n            \"is_required\": false\n        },\n        \"package_dimension\": {\n            \"is_required\": true\n        },\n        \"product_certifications\": [\n            {\n                \"id\": \"602362\",\n                \"is_required\": true,\n                \"name\": \"SNI Certificate\",\n                \"requirement_conditions\": [\n                    {\n                        \"attribute_id\": \"101610\",\n                        \"attribute_value_id\": \"1024358\",\n                        \"condition_type\": \"VALUE_ID_MATCH\"\n                    }\n                ],\n                \"sample_image_url\": \"https://p-boei18n.byted.org/tos-boei18n-i-jvtte31kaf/80b32f2896829eeb69d4b278c4f3aa75.jpg~tplv-jvtte31kaf-origin-jpeg.jpeg\"\n            }\n        ],\n        \"size_chart\": {\n            \"is_required\": true,\n            \"is_supported\": true\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Category/ProductRecommendCategoriesRequest.json",
    "content": "{\n    \"category_version\": \"v1\",\n    \"description\": \" \",\n    \"images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"product_title\": \"Men\\\\'s Fashion Sports Low Cut Cotton Breathable Ankle Short\\n\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Category/ProductRecommendCategoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": \"605254\",\n                \"is_leaf\": true,\n                \"level\": 1,\n                \"name\": \"Teas\",\n                \"permission_statuses\": [ \"INVITE_ONLY\" ]\n            }\n        ],\n        \"leaf_category_id\": \"605254\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductCreateComplianceManufacturerRequest.json",
    "content": "{\n    \"address\": \"One Raffles Quay, 1 Raffles Quay, Singapore 048583\",\n    \"email\": \"johndoe@email.com\",\n    \"name\": \"John Doe\",\n    \"phone_number\": {\n        \"country_code\": \"+65\",\n        \"local_number\": \"81234567\"\n    },\n    \"registered_trade_name\": \"TikTok Shop\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductCreateComplianceManufacturerResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"manufacturer_id\": \"66d3cbe4d9c8b09ddca932a7\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductCreateComplianceResponsiblePersonRequest.json",
    "content": "{\n    \"address\": {\n        \"city\": \"Dublin City\",\n        \"country\": \"Ireland\",\n        \"district\": \"-\",\n        \"postal_code\": \"D02 HD23\",\n        \"province\": \"Dublin\",\n        \"street_address_line1\": \"63 Cardiff Ln\",\n        \"street_address_line2\": \"Grand Canal Dock\"\n    },\n    \"email\": \"john.doe@email.com\",\n    \"name\": \"John Doe\",\n    \"phone_number\": {\n        \"country_code\": \"+353\",\n        \"local_number\": \"80915151\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductCreateComplianceResponsiblePersonResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"responsible_person_id\": \"66d3cbe4d9c8b09ddca023f1\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductSearchComplianceManufacturersRequest.json",
    "content": "{\n    \"keyword\": \"John\",\n    \"manufacturer_ids\": [\n        \"66d3cbe4d9c8b09ddca932a7\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductSearchComplianceManufacturersResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"manufacturers\": [\n            {\n                \"address\": \"One Raffles Quay, 1 Raffles Quay, Singapore 048583\",\n                \"email\": \"johndoe@email.com\",\n                \"id\": \"66d3cbe4d9c8b09ddca932a7\",\n                \"name\": \"John Doe\",\n                \"phone_number\": {\n                    \"country_code\": \"+65\",\n                    \"local_number\": \"81234567\"\n                },\n                \"registered_trade_name\": \"TikTok Shop\"\n            }\n        ],\n        \"next_page_token\": \"66d3cbe3d9c8b09ddca932a1\",\n        \"total_count\": 26\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductSearchComplianceResponsiblePersonsRequest.json",
    "content": "{\n    \"keyword\": \"John\",\n    \"responsible_person_ids\": [\n        \"66d3cbe4d9c8b09ddca932a7\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductSearchComplianceResponsiblePersonsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"66d3cbe3d9c8b09ddca932a1\",\n        \"responsible_persons\": [\n            {\n                \"address\": {\n                    \"city\": \"Dublin City\",\n                    \"country\": \"Ireland\",\n                    \"district\": \"-\",\n                    \"postal_code\": \"D02 HD23\",\n                    \"province\": \"Dublin\",\n                    \"street_address_line1\": \"63 Cardiff Ln\",\n                    \"street_address_line2\": \"Grand Canal Dock\"\n                },\n                \"email\": \"john.doe@email.com\",\n                \"id\": \"66d3cbe4d9c8b09ddca932a7\",\n                \"name\": \"John Doe\",\n                \"phone_number\": {\n                    \"country_code\": \"+353\",\n                    \"local_number\": \"80915151\"\n                }\n            }\n        ],\n        \"total_count\": 26\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductUpdateComplianceManufacturerPartiallyRequest.json",
    "content": "{\n    \"address\": \"One Raffles Quay, 1 Raffles Quay, Singapore 048583\",\n    \"email\": \"johndoe@email.com\",\n    \"name\": \"John Doe\",\n    \"phone_number\": {\n        \"country_code\": \"+65\",\n        \"local_number\": \"81234567\"\n    },\n    \"registered_trade_name\": \"TikTok Shop\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Compliance/ProductUpdateComplianceResponsiblePersonPartiallyRequest.json",
    "content": "{\n    \"address\": {\n        \"city\": \"Dublin City\",\n        \"country\": \"Ireland\",\n        \"district\": \"-\",\n        \"postal_code\": \"D02 HD23\",\n        \"province\": \"Dublin\",\n        \"street_address_line1\": \"63 Cardiff Ln\",\n        \"street_address_line2\": \"Grand Canal Dock\"\n    },\n    \"email\": \"john.doe@email.com\",\n    \"name\": \"John Doe\",\n    \"phone_number\": {\n        \"country_code\": \"+353\",\n        \"local_number\": \"80915151\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/Category/ProductGetGlobalCategoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": \"600001\",\n                \"is_leaf\": false,\n                \"local_name\": \"Home Supplies\",\n                \"parent_id\": \"0\",\n                \"permission_statuses\": [ \"AVAILABLE\" ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/Category/ProductGetGlobalCategoryAttributesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"attributes\": [\n            {\n                \"id\": \"100392\",\n                \"is_customizable\": false,\n                \"is_multiple_selection\": false,\n                \"is_required\": true,\n                \"name\": \"Occasion\",\n                \"type\": \"PRODUCT_PROPERTY\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/Category/ProductGetGlobalCategoryRulesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_certifications\": [\n            {\n                \"id\": \"7267563252536723205\",\n                \"is_required\": true,\n                \"name\": \"product_cert_name\",\n                \"optional_regions\": [\n                    \"US\"\n                ],\n                \"required_regions\": [\n                    \"GB\",\n                    \"MY\",\n                    \"PH\",\n                    \"SG\",\n                    \"TH\",\n                    \"VN\"\n                ],\n                \"sample_image_url\": \"https://p-boei18n.byted.org/tos-boei18n-i-jvtte31kaf/80b32f2896829eeb69d4b278c4f3aa75.jpg~tplv-jvtte31kaf-origin-jpeg.jpeg\"\n            }\n        ],\n        \"size_chart\": {\n            \"is_required\": true,\n            \"is_supported\": true\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/Category/ProductRecommendGlobalCategoriesRequest.json",
    "content": "{\n    \"description\": \" \",\n    \"images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"product_title\": \"Men\\\\'s Fashion Sports Low Cut Cotton Breathable Ankle Short\\n\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/Category/ProductRecommendGlobalCategoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": \"605254\",\n                \"is_leaf\": true,\n                \"level\": 3,\n                \"name\": \"Christmas Gifts\"\n            }\n        ],\n        \"leaf_category_id\": \"605254\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductCreateGlobalProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                    \"name\": \"SNI.PDF\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"description\": \" \",\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer\": {\n        \"address\": \"123W 106th St, New York, NY, USA, 10025\",\n        \"email\": \"samplemanufacturer101@outlook.com\",\n        \"name\": \"Sample Manufacturer Name\",\n        \"phone_number\": \"+4412345678\"\n    },\n    \"package_dimensions\": {\n        \"height\": \"10\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"10\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.31\"\n    },\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Steel\"\n                }\n            ]\n        }\n    ],\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"global_quantity\": 999,\n            \"identifier_code\": {\n                \"code\": \"10000000000000\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"global_warehouse_id\": \"7068517275539719942\",\n                    \"quantity\": 999\n                }\n            ],\n            \"price\": {\n                \"amount\": \"999\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Color\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\\n\"\n                    },\n                    \"value_id\": \"1729592969712207000\\n\",\n                    \"value_name\": \"Red\"\n                }\n            ],\n            \"seller_sku\": \"XL-COLOR-RED-001\",\n            \"sku_unit_count\": \"1\"\n        }\n    ],\n    \"title\": \"Men's Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\\n\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductCreateGlobalProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_product_id\": \"1729592969712207008\",\n        \"global_skus\": [\n            {\n                \"id\": \"1729592969712207012\",\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"Color-Red-XM001\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductDeleteGlobalProductsRequest.json",
    "content": "{\n    \"global_product_ids\": [\n        \"1729715829872102020\",\n        \"1729715829872036484\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductDeleteGlobalProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052003,\n                \"detail\": {\n                    \"global_product_id\": \"1729715829872102020\"\n                },\n                \"message\": \"The current product status can not be actiavted\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductGetGlobalProductDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"brand\": {\n            \"id\": \"7082427311584347905\"\n        },\n        \"category\": {\n            \"id\": \"600002\"\n        },\n        \"certifications\": [\n            {\n                \"files\": [\n                    {\n                        \"format\": \"PDF\",\n                        \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                        \"name\": \"SNI.PDF\",\n                        \"urls\": [\n                            \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                        ]\n                    }\n                ],\n                \"id\": \"7267563252536723205\",\n                \"images\": [\n                    {\n                        \"height\": 600,\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"width\": 600\n                    }\n                ],\n                \"title\": \"SNI Certificate\"\n            }\n        ],\n        \"create_time\": 1694522875,\n        \"description\": \" \",\n        \"global_seller_id\": \"7494083603082020484\",\n        \"id\": \"1729592969712207008\",\n        \"main_images\": [\n            {\n                \"height\": 600,\n                \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                \"width\": 600\n            }\n        ],\n        \"manufacturer\": {\n            \"address\": \"123W 106th St, New York, NY, USA, 10025\",\n            \"email\": \"samplemanufacturer101@outlook.com\\n\",\n            \"name\": \"Sample Manufacturer Name\",\n            \"phone_number\": \"+4412345678\"\n        },\n        \"package_dimensions\": {\n            \"height\": \"10\",\n            \"length\": \"10\",\n            \"unit\": \"CENTIMETER\",\n            \"width\": \"10\"\n        },\n        \"package_weight\": {\n            \"unit\": \"KILOGRAM\",\n            \"value\": \"1.32\"\n        },\n        \"product_attributes\": [\n            {\n                \"id\": \"100392\",\n                \"name\": \"Occasion\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ],\n        \"products\": [\n            {\n                \"id\": \"1729592969712207922\",\n                \"region\": \"GB\"\n            }\n        ],\n        \"size_chart\": {\n            \"image\": {\n                \"height\": 600,\n                \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                \"width\": 600\n            },\n            \"template\": {\n                \"id\": \"7267563252536723205\"\n            }\n        },\n        \"skus\": [\n            {\n                \"global_quantity\": 100,\n                \"id\": \"1729592969712207234\",\n                \"identifier_code\": {\n                    \"code\": \"10000000000010\",\n                    \"type\": \"GTIN\"\n                },\n                \"inventory\": [\n                    {\n                        \"global_warehouse_id\": \"6966568648651605766\",\n                        \"quantity\": 100\n                    }\n                ],\n                \"price\": {\n                    \"amount\": \"1.01\",\n                    \"currency\": \"USD\",\n                    \"unit_price\": \"1.00\"\n                },\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"name\": \"Color\",\n                        \"sku_img\": {\n                            \"height\": 600,\n                            \"thumb_urls\": [\n                                \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                            ],\n                            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                            \"urls\": [\n                                \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                            ],\n                            \"width\": 600\n                        },\n                        \"value_id\": \"7267563252536723205\",\n                        \"value_name\": \"Red\\n\"\n                    }\n                ],\n                \"seller_sku\": \"Color-Red-XM001\",\n                \"sku_unit_count\": \"100.00\"\n            }\n        ],\n        \"title\": \"Short Boat Invisible Socks\",\n        \"update_time\": 1694522875,\n        \"video\": {\n            \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductPublishGlobalProductRequest.json",
    "content": "{\n    \"publish_target\": [\n        {\n            \"region\": \"MY\",\n            \"skus\": [\n                {\n                    \"inventory\": {\n                        \"quantity\": 999,\n                        \"warehouse_id\": \"7068517275539719942\"\n                    },\n                    \"price\": {\n                        \"amount\": \"10.01\",\n                        \"currency\": \"MYR\"\n                    },\n                    \"related_global_sku_id\": \"1729592969712207400\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductPublishGlobalProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"products\": [\n            {\n                \"id\": \"1929592969712207410\",\n                \"region\": \"MY\",\n                \"shop_id\": \"7494083603082020484\",\n                \"skus\": [\n                    {\n                        \"id\": \"1729592969712207400\",\n                        \"related_global_sku_id\": \"1729696746528737924\",\n                        \"sales_attributes\": [\n                            {\n                                \"id\": \"100001\",\n                                \"value_id\": \"7272008676829824800\"\n                            }\n                        ],\n                        \"seller_sku\": \"XL-COLOR-001\"\n                    }\n                ]\n            }\n        ],\n        \"publish_result\": [\n            {\n                \"fail_reasons\": [\n                    {\n                        \"message\": \"The current product status can not be actiavted\"\n                    }\n                ],\n                \"region\": \"MY\",\n                \"status\": \"SUCCESS\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductSearchGlobalProductsRequest.json",
    "content": "{\n    \"create_time_ge\": 1694576429,\n    \"create_time_le\": 1694576429,\n    \"seller_skus\": [\n        \"Color-Red-001\"\n    ],\n    \"status\": \"PUBLISHED\",\n    \"update_time_ge\": 1694576429,\n    \"update_time_le\": 1694576429\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductSearchGlobalProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_products\": [\n            {\n                \"create_time\": 1694576429,\n                \"id\": \"1729592969712207008\",\n                \"skus\": [\n                    {\n                        \"id\": \"1729592969712207012\",\n                        \"seller_sku\": \"Color-Red-XM001\"\n                    }\n                ],\n                \"status\": \"PUBLISHED\",\n                \"title\": \"Men's Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\",\n                \"update_time\": 1694576429\n            }\n        ],\n        \"next_page_token\": \"b2Zmc2V0PTAK\",\n        \"total_count\": 100\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductUpdateGlobalProductInventoryRequest.json",
    "content": "{\n    \"global_skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"inventory\": [\n                {\n                    \"global_warehouse_id\": \"7068517275539719942\",\n                    \"quantity\": 999\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductUpdateGlobalProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                    \"name\": \"SNI.PDF\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"description\": \" \",\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer\": {\n        \"address\": \"123W 106th St, New York, NY, USA, 10025\",\n        \"email\": \"samplemanufacturer101@outlook.com\",\n        \"name\": \"Sample Manufacturer Name\",\n        \"phone_number\": \"+4412345678\\n\"\n    },\n    \"package_dimensions\": {\n        \"height\": \"10\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"10\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.99\"\n    },\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"global_quantity\": 999,\n            \"id\": \"1782427311584347905\",\n            \"identifier_code\": {\n                \"code\": \"10000000000000\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"global_warehouse_id\": \"7068517275539719942\",\n                    \"quantity\": 999\n                }\n            ],\n            \"price\": {\n                \"amount\": \"1.32\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Specification\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\",\n                    \"value_name\": \"XL\"\n                }\n            ],\n            \"seller_sku\": \"Color-Red-XM01\",\n            \"sku_unit_count\": \"1\"\n        }\n    ],\n    \"title\": \"Men's Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Global/ProductUpdateGlobalProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"global_skus\": [\n            {\n                \"id\": \"1729592969712207012\",\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"Color-Red-XM01\"\n            }\n        ],\n        \"publish_results\": [\n            {\n                \"fail_reasons\": [\n                    {\n                        \"message\": \"The current product status can not be actiavted\"\n                    }\n                ],\n                \"region\": \"MY\",\n                \"status\": \"SUCCESS\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductActivateProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1729592969712207008\",\n        \"1729592969712207021\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductActivateProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052990,\n                \"detail\": {\n                    \"extra_errors\": [\n                        {\n                            \"code\": 12052003,\n                            \"message\": \"The current product status can not be actiavted\"\n                        }\n                    ],\n                    \"product_id\": \"1729382588639839583\"\n                },\n                \"message\": \"Batch activate business error.\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductCreateProductListingCheckRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                    \"name\": \"SNI.PDF\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"delivery_option_ids\": [\n        \"1729592969712203232\"\n    ],\n    \"description\": \"\\u003cp\\u003ePlease compare above detailed size with your measurement before purchase.\\u003c/p\\u003e\\u003cul\\u003e   \\u003cli\\u003eM-Size\\u003c/li\\u003e  \\u003cli\\u003eXL-Size\\u003c/li\\u003e\\u003c/ul\\u003e \\u003cimg src=\\\"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/181595ea7d26489284b5667488d708c1~tplv-o3syd03w52-origin-jpeg.jpeg?from=1432613627\\\" /\\u003e\",\n    \"external_product_id\": \"172959296971220002\",\n    \"is_cod_allowed\": false,\n    \"is_pre_owned\": false,\n    \"listing_platforms\": [\n        \"TIKTOK_SHOP\"\n    ],\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer_ids\": [\n        \"172959296971220002\"\n    ],\n    \"minimum_order_quantity\": 4,\n    \"package_dimensions\": {\n        \"height\": \"10\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"10\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.32\"\n    },\n    \"primary_combined_product_id\": \"1729582718312380123\",\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"responsible_person_ids\": [\n        \"172959296971220003\"\n    ],\n    \"shipping_insurance_requirement\": \"NOT_SUPPORTED\",\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"combined_skus\": [\n                {\n                    \"product_id\": \"1729582718312380123\",\n                    \"sku_count\": 11,\n                    \"sku_id\": \"1729582718312380123\"\n                }\n            ],\n            \"external_sku_id\": \"1729592969712207012\",\n            \"external_urls\": [\n                \"https://example.com/path1\",\n                \"https://example.com/path2\"\n            ],\n            \"extra_identifier_codes\": [\n                \"00012345678905\",\n                \"9780596520687\"\n            ],\n            \"identifier_code\": {\n                \"code\": \"10000000000000\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"quantity\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ],\n            \"pre_sale\": {\n                \"fulfillment_type\": {\n                    \"handling_duration_days\": 24\n                },\n                \"type\": \"PRE_ORDER\"\n            },\n            \"price\": {\n                \"amount\": \"1.23\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Specification\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\",\n                    \"value_name\": \"XL\"\n                }\n            ],\n            \"seller_sku\": \"Color-Red-XM01\",\n            \"sku_unit_count\": \"100.00\"\n        }\n    ],\n    \"title\": \"Men\\\\'s Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductCreateProductListingCheckResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"check_result\": \"FAILED\",\n        \"diagnoses\": [\n            {\n                \"diagnosis_results\": [\n                    {\n                        \"code\": \"TITLE_LESS_THAN_40_CHARACTERS\",\n                        \"how_to_solve\": \"Names must be at least 40 characters long and contain product-identifying information, such as \\\"hiking boots\\\" or \\\"lipstick\\\".\",\n                        \"quality_tier\": \"POOR\"\n                    }\n                ],\n                \"field\": \"TITLE\",\n                \"suggestions\": {\n                    \"images\": [\n                        {\n                            \"height\": 600,\n                            \"optimized_uri\": \"tos-maliva-i-o3syd03w52-us/0266127022264e54ad2f639f5e0fb5e6\",\n                            \"optimized_url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/0266127022264e54ad2f639f5e0fb5e6~tplv-1por3rr4fy-image.webp\",\n                            \"uri\": \"tos-maliva-i-o3syd03w52-us/53b55d6e8cdf1f315affa7e70b45707d\",\n                            \"url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/53b55d6e8cdf1f315affa7e70b45707d~tplv-1por3rr4fy-image.webp\",\n                            \"width\": 600\n                        }\n                    ],\n                    \"seo_words\": [\n                        {\n                            \"text\": \"dress\"\n                        }\n                    ],\n                    \"smart_texts\": [\n                        {\n                            \"text\": \"this is a good title\"\n                        }\n                    ]\n                }\n            }\n        ],\n        \"fail_reasons\": [\n            {\n                \"code\": 12052700,\n                \"message\": \"Product title invalid\"\n            }\n        ],\n        \"listing_quality\": {\n            \"current_tier\": \"POOR\",\n            \"remaining_recommendations\": 3\n        },\n        \"warnings\": {\n            \"message\": \"Your product will not be sent for review. \"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductCreateProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"category_version\": \"v1\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                    \"name\": \"brand_cert.PDF\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"delivery_option_ids\": [\n        \"1729592969712203232\"\n    ],\n    \"description\": \" \\u003cp\\u003ePlease check the measurements before purchase.\\u003c/p\\u003e\\u003cul\\u003e   \\u003cli\\u003eM-Size\\u003c/li\\u003e  \\u003cli\\u003eXL-Size\\u003c/li\\u003e\\u003c/ul\\u003e \\u003cimg src=\\\"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/181595ea7d26489284b5667488d708c1~tplv-o3syd03w52-origin-jpeg.jpeg?from=1432613627\\\" width='100' height='100' /\\u003e \",\n    \"external_product_id\": \"172959296971220002\",\n    \"is_cod_allowed\": false,\n    \"is_not_for_sale\": true,\n    \"is_pre_owned\": false,\n    \"listing_platforms\": [\n        \"TIKTOK_SHOP\"\n    ],\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer_ids\": [\n        \"172959296971220002\"\n    ],\n    \"minimum_order_quantity\": 1,\n    \"package_dimensions\": {\n        \"height\": \"10\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"10\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.32\"\n    },\n    \"primary_combined_product_id\": \"1729582718312380123\",\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"responsible_person_ids\": [\n        \"172959296971220003\"\n    ],\n    \"save_mode\": \"LISTING\",\n    \"shipping_insurance_requirement\": \"REQUIRED\",\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"combined_skus\": [\n                {\n                    \"product_id\": \"1729582718312380123\",\n                    \"sku_count\": 1,\n                    \"sku_id\": \"2729382476852921560\"\n                }\n            ],\n            \"external_sku_id\": \"1729592969712207012\",\n            \"external_urls\": [\n                \"https://example.com/path1\",\n                \"https://example.com/path2\"\n            ],\n            \"extra_identifier_codes\": [\n                \"00012345678905\",\n                \"9780596520687\"\n            ],\n            \"identifier_code\": {\n                \"code\": \"10000000000000\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"quantity\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ],\n            \"pre_sale\": {\n                \"fulfillment_type\": {\n                    \"handling_duration_days\": 7\n                },\n                \"type\": \"PRE_ORDER\"\n            },\n            \"price\": {\n                \"amount\": \"1.21\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Color\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\",\n                    \"value_name\": \"Red\"\n                }\n            ],\n            \"seller_sku\": \"Color-Red-XM001\",\n            \"sku_unit_count\": \"100.00\"\n        }\n    ],\n    \"title\": \"Men\\\\'s Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductCreateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_id\": \"1729592969712207008\",\n        \"skus\": [\n            {\n                \"external_sku_id\": \"1729592969712207234\",\n                \"id\": \"1729592969712207012\",\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"Color-Red-XM001\"\n            }\n        ],\n        \"warnings\": [\n            {\n                \"message\": \"The [brand_id]:123 field is incorrect and has been automatically cleared by the system. Reason: [Brand does not exist]. You can edit it later.\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductDeactivateProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1729592969712207008\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductDeactivateProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052003,\n                \"detail\": {\n                    \"product_id\": \"1729382588639839583\"\n                },\n                \"message\": \"The current product status can not be deactiate\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductDeleteProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1749456684124612452\",\n        \"1742456684124612451\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductDeleteProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052003,\n                \"detail\": {\n                    \"product_id\": \"1729382588639839583\"\n                },\n                \"message\": \"The current product status can not be actiavted\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetInventoriesRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1729592969712207008\"\n    ],\n    \"sku_ids\": [\n        \"1729388324987897824\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetInventoriesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"inventory\": [\n            {\n                \"product_id\": \"1729592969712207008\",\n                \"skus\": [\n                    {\n                        \"id\": \"1729388324987897824\",\n                        \"seller_sku\": \"Color-Red-XM01\",\n                        \"total_available_inventory_distribution\": {\n                            \"campaign_inventory\": [\n                                {\n                                    \"campaign_name\": \"Big Sale\",\n                                    \"quantity\": 30\n                                }\n                            ],\n                            \"creator_inventory\": [\n                                {\n                                    \"creator_name\": \"py001\",\n                                    \"quantity\": 20\n                                }\n                            ],\n                            \"in_shop_inventory\": {\n                                \"quantity\": 50\n                            }\n                        },\n                        \"total_available_quantity\": 100,\n                        \"total_committed_quantity\": 10,\n                        \"warehouse_inventory\": [\n                            {\n                                \"available_quantity\": 100,\n                                \"committed_quantity\": 10,\n                                \"warehouse_id\": \"7054915283043174149\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetListingSchemasResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052024,\n                \"detail\": {\n                    \"category_id\": 60002\n                },\n                \"message\": \"Category is not final category\"\n            }\n        ],\n        \"listing_schemas\": [\n            {\n                \"category_id\": 60001,\n                \"fields\": [\n                    {\n                        \"complex_values\": [\n                            {\n                                \"id\": \"100329\",\n                                \"name\": \"Occasion\",\n                                \"options\": [\n                                    {\n                                        \"id\": \"1001533\",\n                                        \"name\": \"Birthday\"\n                                    }\n                                ],\n                                \"rules\": [\n                                    {\n                                        \"type\": \"REQUIRED\",\n                                        \"value\": \"true\"\n                                    }\n                                ]\n                            }\n                        ],\n                        \"id\": \"product_attributes\",\n                        \"name\": \"product_attributes\",\n                        \"options\": [\n                            {\n                                \"id\": \"  \",\n                                \"name\": \"  \"\n                            }\n                        ],\n                        \"rules\": [\n                            {\n                                \"type\": \"MAX_LENGTH\",\n                                \"value\": \"20\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetPrerequisitesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"check_results\": [\n            {\n                \"check_item\": \"RETURN_WAREHOUSE\",\n                \"fail_reasons\": [\n                    \"Couldn't publish this product as you haven't set the return warehouse for your shop. Add the return warehouse information on TikTok Shop Seller Center first and try again.\"\n                ],\n                \"is_failed\": true\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetProductDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"audit_failed_reasons\": [\n            {\n                \"listing_platform\": \"TOKOPEDIA\",\n                \"position\": \"product\",\n                \"reasons\": [\n                    \"violate listing rules\"\n                ],\n                \"suggestions\": [\n                    \"The product violates TikTok Shopping listing rules, please check and resubmit.\"\n                ]\n            }\n        ],\n        \"brand\": {\n            \"id\": \"7082427311584347905\",\n            \"name\": \"brand xxx aaa\"\n        },\n        \"category_chains\": [\n            {\n                \"id\": \"853000\",\n                \"is_leaf\": true,\n                \"local_name\": \"Botol & Stoples Penyimpanan\",\n                \"parent_id\": \"851848\"\n            }\n        ],\n        \"recommended_categories\": [\n            {\n                \"id\": \"853000\",\n                \"local_name\": \"Botol & Stoples Penyimpanan\"\n            }\n        ],\n        \"certifications\": [\n            {\n                \"files\": [\n                    {\n                        \"format\": \"PDF\",\n                        \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n                        \"name\": \"CERT_X2.PDF\",\n                        \"urls\": [\n                            \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                        ]\n                    }\n                ],\n                \"id\": \"602362\",\n                \"images\": [\n                    {\n                        \"height\": 600,\n                        \"thumb_urls\": [\n                            \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                        ],\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"urls\": [\n                            \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                        ],\n                        \"width\": 600\n                    }\n                ],\n                \"title\": \"SNI Certificate\"\n            }\n        ],\n        \"create_time\": 1234567890,\n        \"delivery_options\": [\n            {\n                \"id\": \"1729592969712203232\",\n                \"is_available\": true,\n                \"name\": \"\\\"\\\"\"\n            }\n        ],\n        \"description\": \"<p>Please compare above detailed size with your measurement before purchase.</p>\\n<ul> \\n  <li>M-Size</li>\\n  <li>XL-Size</li>\\n</ul> \\n<img src=\\\"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/181595ea7d26489284b5667488d708c1~tplv-o3syd03w52-origin-jpeg.jpeg?from=1432613627\\\" />\\n\",\n        \"external_product_id\": \"172959296971220002\",\n        \"id\": \"1729592969712207008\",\n        \"is_cod_allowed\": true,\n        \"main_images\": [\n            {\n                \"height\": 600,\n                \"thumb_urls\": [\n                    \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                ],\n                \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                \"urls\": [\n                    \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                ],\n                \"width\": 600\n            }\n        ],\n        \"manufacturer\": {\n            \"address\": \"123W 106th St, New York, NY, USA, 10025\",\n            \"email\": \"samplemanufacturer101@outlook.com\",\n            \"name\": \"Sample Manufacturer Name\",\n            \"phone_number\": \"12345678\"\n        },\n        \"package_dimensions\": {\n            \"height\": \"10\",\n            \"length\": \"10\",\n            \"unit\": \"CENTIMETER\",\n            \"width\": \"10\"\n        },\n        \"package_weight\": {\n            \"unit\": \"KILOGRAM\",\n            \"value\": \"1.32\"\n        },\n        \"product_attributes\": [\n            {\n                \"id\": \"100392\",\n                \"name\": \"Occasion\",\n                \"values\": [\n                    {\n                        \"id\": \"1001533\",\n                        \"name\": \"Birthday\"\n                    }\n                ]\n            }\n        ],\n        \"product_types\": \"COMBINED_PRODUCT\",\n        \"size_chart\": {\n            \"image\": {\n                \"height\": 600,\n                \"thumb_urls\": [\n                    \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                ],\n                \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                \"urls\": [\n                    \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                ],\n                \"width\": 600\n            },\n            \"template\": {\n                \"id\": \"7267563252536723205\"\n            }\n        },\n        \"skus\": [\n            {\n                \"combined_skus\": [\n                    {\n                        \"product_id\": \"1729582718312380123\",\n                        \"sku_count\": 1,\n                        \"sku_id\": \"1729582718312380123\"\n                    }\n                ],\n                \"external_sku_id\": \"1729592969712207234\",\n                \"global_listing_policy\": {\n                    \"inventory_type\": \"SHARED\",\n                    \"price_sync\": true,\n                    \"replicate_source\": {\n                        \"product_id\": \"1729592969712203232\",\n                        \"shop_id\": \"7295929697122032321\",\n                        \"sku_id\": \"1729592969712203232\"\n                    }\n                },\n                \"id\": \"10001\",\n                \"identifier_code\": {\n                    \"code\": \"10000000000010\",\n                    \"type\": \"GTIN\"\n                },\n                \"inventory\": [\n                    {\n                        \"quantity\": 999,\n                        \"warehouse_id\": \"6966568648651605766\"\n                    }\n                ],\n                \"price\": {\n                    \"currency\": \"USD\",\n                    \"sale_price\": \"117.5\",\n                    \"tax_exclusive_price\": \"110\",\n                    \"unit_price\": \"1\"\n                },\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"name\": \"Color\",\n                        \"sku_img\": {\n                            \"height\": 100,\n                            \"thumb_urls\": [\n                                \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                            ],\n                            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                            \"urls\": [\n                                \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                            ],\n                            \"width\": 100\n                        },\n                        \"value_id\": \"100000\",\n                        \"value_name\": \"Red\"\n                    }\n                ],\n                \"seller_sku\": \"sku name\",\n                \"sku_unit_count\": \"1.00\"\n            }\n        ],\n        \"status\": \"SELLER_DEACTIVATED\",\n        \"title\": \"Short Boat Invisible Socks\",\n        \"update_time\": 1234567899,\n        \"video\": {\n            \"cover_url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\",\n            \"format\": \"MP4\",\n            \"height\": 480,\n            \"id\": \"v09ea0g40000cj91373c77u3mid3g1s0\",\n            \"size\": 1000,\n            \"url\": \"https://v16m-default.akamaized.net/bbae7099581b26cd340beaa7821b2d8c/64de6020/video/tos/alisg/tos-alisg-v-f466fc-sg/oMne9QuzIBN3fIDN7bFCCMbBKuGigg12ghDC8k/?a=0&ch=0&cr=0&dr=0&er=0&lr=default&cd=0%7C0%7C0%7C0&br=2212&bt=1106&cs=0&ds=3&ft=dl9~j-Inz7TKnfsfiyq8Z&mime_type=video_mp4&qs=13&rc=anR4Ojk6ZmYzbTMzODRmNEBpanR4Ojk6ZmYzbTMzODRmNEBsYWFwcjRva2NgLS1kLy1zYSNsYWFwcjRva2NgLS1kLy1zcw%3D%3D&l=202308171159498F7B108584E58B010932&btag=e00048000\",\n            \"width\": 1280\n        },\n        \"is_not_for_sale\": false\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetProductDiagnosesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"products\": [\n            {\n                \"diagnoses\": [\n                    {\n                        \"diagnosis_results\": [\n                            {\n                                \"code\": \"TITLE_LESS_THAN_40_CHARACTERS\",\n                                \"how_to_solve\": \"Names must be at least 40 characters long and contain product-identifying information, such as \\\"hiking boots\\\" or \\\"lipstick\\\".\",\n                                \"quality_tier\": \"GOOD\"\n                            }\n                        ],\n                        \"field\": \"TITLE\",\n                        \"suggestion\": {\n                            \"images\": [\n                                {\n                                    \"height\": 600,\n                                    \"optimized_uri\": \"tos-maliva-i-o3syd03w52-us/0266127022264e54ad2f639f5e0fb5e6\",\n                                    \"optimized_url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/0266127022264e54ad2f639f5e0fb5e6~tplv-1por3rr4fy-image.webp\",\n                                    \"uri\": \"tos-maliva-i-o3syd03w52-us/53b55d6e8cdf1f315affa7e70b45707d\",\n                                    \"url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/53b55d6e8cdf1f315affa7e70b45707d~tplv-1por3rr4fy-image.webp\",\n                                    \"width\": 600\n                                }\n                            ],\n                            \"seo_words\": [\n                                {\n                                    \"text\": \"dress\"\n                                }\n                            ],\n                            \"smart_texts\": [\n                                {\n                                    \"text\": \"this is a good title\"\n                                }\n                            ]\n                        }\n                    }\n                ],\n                \"id\": \"123456\",\n                \"listing_quality\": {\n                    \"current_tier\": \"POOR\",\n                    \"remaining_recommendations\": 3\n                }\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetProductSEOWordsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"products\": [\n            {\n                \"id\": \"12345\",\n                \"seo_words\": [\n                    {\n                        \"text\": \"dress\"\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductGetProductSuggestionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"products\": [\n            {\n                \"id\": \"123456\",\n                \"suggestions\": [\n                    {\n                        \"field\": \"TITLE\",\n                        \"items\": [\n                            {\n                                \"text\": \"this is a good title\"\n                            }\n                        ]\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductRecoverProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"1729592969712207008\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductRecoverProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052003,\n                \"detail\": {\n                    \"product_id\": \"1729382588639839583\"\n                },\n                \"message\": \"The current product status can not be actiavted\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductSearchProductsRequest.json",
    "content": "{\n    \"category_version\": \"v1\",\n    \"create_time_ge\": 1694309208,\n    \"create_time_le\": 1694319208,\n    \"listing_platforms\": [\n        \"TIKTOK_SHOP\"\n    ],\n    \"listing_quality_tier\": \"POOR\",\n    \"seller_skus\": [\n        \"Color-Red-XM001\"\n    ],\n    \"status\": \"ALL\",\n    \"update_time_ge\": 1694319208,\n    \"update_time_le\": 1694319208\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductSearchProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"b2Zmc2V0PTAK\",\n        \"products\": [\n            {\n                \"create_time\": 1234567890,\n                \"id\": \"1729592969712207008\",\n                \"integrated_platform_statuses\": [\n                    {\n                        \"platform\": \"TOKOPEDIA\",\n                        \"status\": \"PLATFORM_DEACTIVATED\"\n                    }\n                ],\n                \"is_not_for_sale\": true,\n                \"listing_quality_tier\": \"POOR\",\n                \"product_sync_fail_reasons\": [\n                    \"The required qualification is missed.\"\n                ],\n                \"recommended_categories\": [\n                    {\n                        \"id\": \"853000\",\n                        \"local_name\": \"Botol & Stoples Penyimpanan\"\n                    }\n                ],\n                \"sales_regions\": [\n                    \"US\"\n                ],\n                \"skus\": [\n                    {\n                        \"id\": \"1729592969712207012\",\n                        \"inventory\": [\n                            {\n                                \"quantity\": 999,\n                                \"warehouse_id\": \"7068517275539719942\"\n                            }\n                        ],\n                        \"price\": {\n                            \"currency\": \"USD\",\n                            \"sale_price\": \"121.11\",\n                            \"tax_exclusive_price\": \"111.01\"\n                        },\n                        \"seller_sku\": \"Color-Red-XM01\"\n                    }\n                ],\n                \"status\": \"ACTIVATE\",\n                \"title\": \"Short Boat Invisible Socks\",\n                \"update_time\": 1234567800\n            }\n        ],\n        \"total_count\": 200\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductInventoryRequest.json",
    "content": "{\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"inventory\": [\n                {\n                    \"quantity\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductInventoryResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": 12052990,\n                \"detail\": {\n                    \"extra_errors\": [\n                        {\n                            \"code\": 12052003,\n                            \"message\": \"The current product status can not be actiavted\",\n                            \"warehouse_id\": \"7068517275539719942\"\n                        }\n                    ],\n                    \"sku_id\": \"1729592969712207013\"\n                },\n                \"message\": \"batch update inventory error\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductPartiallyRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                    \"name\": \"SNI Certificate\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"description\": \" \",\n    \"external_product_id\": \"172959296971220002\",\n    \"is_cod_allowed\": false,\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer\": {\n        \"address\": \"123W 106th St, New York, NY, USA, 10025\",\n        \"email\": \"samplemanufacturer101@outlook.com\",\n        \"name\": \"Sample Manufacturer Name\",\n        \"phone_number\": \"4412345678\"\n    },\n    \"package_dimensions\": {\n        \"height\": \"12\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"11\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.32\"\n    },\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"external_sku_id\": \"1729592969712207012\",\n            \"id\": \"1729592969712207012\",\n            \"identifier_code\": {\n                \"code\": \"12345678901234\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"quantity\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ],\n            \"price\": {\n                \"amount\": \"100.00\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Specification\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712207000\",\n                    \"value_name\": \"XL\"\n                }\n            ],\n            \"seller_sku\": \"seller sku xxaa\",\n            \"sku_unit_count\": \"100.00\"\n        }\n    ],\n    \"title\": \"Title-xxaa\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductPartiallyResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_id\": \"1729592969712207008\",\n        \"skus\": [\n            {\n                \"external_sku_id\": \"1729592969712207012\",\n                \"id\": \"1729592969712207012\",\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"seller sku xxaa\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductPriceRequest.json",
    "content": "{\n    \"skus\": [\n        {\n            \"id\": \"1729592969712207013\",\n            \"price\": {\n                \"amount\": \"1.32\",\n                \"currency\": \"USD\"\n            }\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductRequest.json",
    "content": "{\n    \"brand_id\": \"7082427311584347905\",\n    \"category_id\": \"600001\",\n    \"category_version\": \"v1\",\n    \"certifications\": [\n        {\n            \"files\": [\n                {\n                    \"format\": \"PDF\",\n                    \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\",\n                    \"name\": \"Certificate.pdf\"\n                }\n            ],\n            \"id\": \"7182427311584347905\",\n            \"images\": [\n                {\n                    \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                }\n            ]\n        }\n    ],\n    \"delivery_option_ids\": [\n        \"1729592969712203232\"\n    ],\n    \"description\": \" \\u003cp\\u003ePlease compare above detailed size with your measurement before purchase.\\u003c/p\\u003e\\u003cul\\u003e   \\u003cli\\u003eM-Size\\u003c/li\\u003e  \\u003cli\\u003eXL-Size\\u003c/li\\u003e\\u003c/ul\\u003e \\u003cimg src=\\\"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/181595ea7d26489284b5667488d708c1~tplv-o3syd03w52-origin-jpeg.jpeg?from=1432613627\\\" width='100' height='100' /\\u003e\",\n    \"external_product_id\": \"172959296971220002\",\n    \"is_cod_allowed\": false,\n    \"is_pre_owned\": false,\n    \"listing_platforms\": [\n        \"TIKTOK_SHOP\"\n    ],\n    \"main_images\": [\n        {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        }\n    ],\n    \"manufacturer_ids\": [\n        \"172959296971220002\"\n    ],\n    \"minimum_order_quantity\": 1,\n    \"package_dimensions\": {\n        \"height\": \"10\",\n        \"length\": \"10\",\n        \"unit\": \"CENTIMETER\",\n        \"width\": \"10\"\n    },\n    \"package_weight\": {\n        \"unit\": \"KILOGRAM\",\n        \"value\": \"1.32\"\n    },\n    \"product_attributes\": [\n        {\n            \"id\": \"100392\",\n            \"values\": [\n                {\n                    \"id\": \"1001533\",\n                    \"name\": \"Birthday\"\n                }\n            ]\n        }\n    ],\n    \"responsible_person_ids\": [\n        \"172959296971220003\"\n    ],\n    \"shipping_insurance_requirement\": \"REQUIRED\",\n    \"size_chart\": {\n        \"image\": {\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n        },\n        \"template\": {\n            \"id\": \"7267563252536723205\"\n        }\n    },\n    \"skus\": [\n        {\n            \"combined_skus\": [\n                {\n                    \"product_id\": \"1729582718312380123\",\n                    \"sku_count\": 2,\n                    \"sku_id\": \"2729382476852921560\"\n                }\n            ],\n            \"external_sku_id\": \"1729592969712207012\",\n            \"external_urls\": [\n                \"https://example.com/path1\",\n                \"https://example.com/path2\"\n            ],\n            \"extra_identifier_codes\": [\n                \"00012345678905\",\n                \"9780596520687\"\n            ],\n            \"id\": \"1729592969712207000\",\n            \"identifier_code\": {\n                \"code\": \"12345678901234\",\n                \"type\": \"GTIN\"\n            },\n            \"inventory\": [\n                {\n                    \"quantity\": 999,\n                    \"warehouse_id\": \"7068517275539719942\"\n                }\n            ],\n            \"pre_sale\": {\n                \"fulfillment_type\": {\n                    \"handling_duration_days\": 7\n                },\n                \"type\": \"PRE_ORDER\"\n            },\n            \"price\": {\n                \"amount\": \"1.21\",\n                \"currency\": \"USD\"\n            },\n            \"sales_attributes\": [\n                {\n                    \"id\": \"100089\",\n                    \"name\": \"Specification\",\n                    \"sku_img\": {\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\"\n                    },\n                    \"value_id\": \"1729592969712401100\",\n                    \"value_name\": \"XL\"\n                }\n            ],\n            \"seller_sku\": \"Color-Red-XM001\",\n            \"sku_unit_count\": \"100.00\"\n        }\n    ],\n    \"title\": \"Men\\\\'s Fashion Sports Low Cut Cotton Breathable Ankle Short Boat Invisible Socks\",\n    \"video\": {\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\"\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/ProductUpdateProductResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"product_id\": \"1729592969712207008\",\n        \"skus\": [\n            {\n                \"external_sku_id\": \"1729592969712207234\",\n                \"id\": \"1729592969712207012\",\n                \"sales_attributes\": [\n                    {\n                        \"id\": \"100000\",\n                        \"value_id\": \"1729592969712207123\"\n                    }\n                ],\n                \"seller_sku\": \"Color-Red-XM001\"\n            }\n        ],\n        \"warnings\": [\n            {\n                \"message\": \"The [brand_id]:123 field is incorrect and has been automatically cleared by the system. Reason: [Brand does not exist]. You can edit it later.\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/SizeChart/ProductSearchSizeChartsRequest.json",
    "content": "{\n    \"ids\": [\n        \"7362027385890244398\"\n    ],\n    \"keyword\": \"size chart\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/SizeChart/ProductSearchSizeChartsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"b2Zmc2V0PTAK\",\n        \"size_chart\": [\n            {\n                \"images\": [\n                    {\n                        \"locale\": \"en-US\",\n                        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n                        \"url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4~tplv-o3syd03w52-resize-jpeg:300:300.jpeg?from=522366036\"\n                    }\n                ],\n                \"template_id\": \"7362027385890244398\",\n                \"template_name\": \"size chart\"\n            }\n        ],\n        \"total_count\": 100\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Upload/ProductOptimizeImagesRequest.json",
    "content": "{\n    \"images\": [\n        {\n            \"optimization_mode\": [ \"WHITE_BACKGROUND\" ],\n            \"uri\": \"tos-maliva-i-o3syd03w52-us/53b55d6e8cdf1f315affa7e70b45707d\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Upload/ProductOptimizeImagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"images\": [\n            {\n                \"height\": 600,\n                \"optimize_status\": \"PROCESSING\",\n                \"optimized_uri\": \"tos-maliva-i-o3syd03w52-us/0266127022264e54ad2f639f5e0fb5e6\",\n                \"optimized_url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/0266127022264e54ad2f639f5e0fb5e6~tplv-1por3rr4fy-image.webp\",\n                \"original_uri\": \"tos-maliva-i-o3syd03w52-us/53b55d6e8cdf1f315affa7e70b45707d\",\n                \"original_url\": \"https://p16-graph-va.ibyteimg.com/tos-maliva-i-1por3rr4fy-us/v2/53b55d6e8cdf1f315affa7e70b45707d~tplv-1por3rr4fy-image.webp\",\n                \"width\": 600\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Upload/ProductUploadFileResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"format\": \"PDF\\n\",\n        \"id\": \"v09e40f40000cfu0ovhc77ub7fl97k4w\",\n        \"name\": \"SNI.PDF\",\n        \"url\": \"https://p-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\\n\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Product/Upload/ProductUploadImageResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"height\": 720,\n        \"uri\": \"tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\",\n        \"url\": \"https://p-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe\\n\",\n        \"use_case\": \"MAIN_IMAGE\",\n        \"width\": 720\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionCreateActivityRequest.json",
    "content": "{\n    \"activity_type\": \"FIXED_PRICE\",\n    \"begin_time\": 1661756811,\n    \"end_time\": 1661856811,\n    \"product_level\": \"PRODUCT\",\n    \"title\": \"DiscountEvent0829\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionCreateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"create_time\": 1661756811,\n        \"status\": \"ONGOING\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionDeactivateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"status\": \"ONGOING\",\n        \"title\": \"FlashSale 20230707\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionDeleteActivityProductsRequest.json",
    "content": "{\n    \"product_ids\": [\n        \"7493989962827597361\"\n    ],\n    \"sku_ids\": [\n        \"7135657830438176513\"\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionDeleteActivityProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"status\": \"ONGOING\",\n        \"update_time\": 1661765135\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionGetActivityDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"activity_type\": \"FIXED_PRICE\",\n        \"begin_time\": 1661756811,\n        \"create_time\": 1661750811,\n        \"end_time\": 1661856811,\n        \"product_level\": \"PRODUCT\",\n        \"products\": [\n            {\n                \"activity_price\": {\n                    \"amount\": \"70500\",\n                    \"currency\": \"IDR\"\n                },\n                \"discount\": \"10\",\n                \"id\": \"7136011254174631686\",\n                \"quantity_limit\": -1,\n                \"quantity_per_user\": -1,\n                \"skus\": [\n                    {\n                        \"activity_price\": {\n                            \"amount\": \"70500\",\n                            \"currency\": \"IDR\"\n                        },\n                        \"discount\": \"10\",\n                        \"id\": \"7136382541418366725\",\n                        \"quantity_limit\": -1,\n                        \"quantity_per_user\": -1\n                    }\n                ]\n            }\n        ],\n        \"status\": \"ONGOING\",\n        \"title\": \"FlashSale 20230707\",\n        \"update_time\": 1661750811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionSearchActivitiesRequest.json",
    "content": "{\n    \"activity_title\": \"Discount\",\n    \"page_size\": 20,\n    \"page_token\": \"21\",\n    \"status\": \"ONGOING\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionSearchActivitiesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activities\": [\n            {\n                \"activity_type\": \"FIXED_PRICE\",\n                \"begin_time\": 1661756811,\n                \"create_time\": 1661756811,\n                \"end_time\": 1661756811,\n                \"id\": \"7136104329798256386\",\n                \"product_level\": \"PRODUCT\",\n                \"status\": \"ONGOING\",\n                \"title\": \"FlashSale 20230707\",\n                \"update_time\": 1661756811\n            }\n        ],\n        \"next_page_token\": \"123\",\n        \"total_count\": 120\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionUpdateActivityProductsRequest.json",
    "content": "{\n    \"activity_id\": \"7136104288010372865\",\n    \"products\": [\n        {\n            \"activity_price_amount\": \"4.5\",\n            \"discount\": \"10\",\n            \"id\": \"7135427619356477189\",\n            \"quantity_limit\": -1,\n            \"quantity_per_user\": -1,\n            \"skus\": [\n                {\n                    \"activity_price_amount\": \"6.5\",\n                    \"discount\": \"10\",\n                    \"id\": \"7125688837187176194\",\n                    \"quantity_limit\": -1,\n                    \"quantity_per_user\": 10\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionUpdateActivityProductsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"status\": \"DRAFT\",\n        \"title\": \"DiscountPromotion\",\n        \"total_count\": 1,\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionUpdateActivityRequest.json",
    "content": "{\n    \"begin_time\": 1661756811,\n    \"end_time\": 1662756811,\n    \"title\": \"BlackFridayDiscount\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Activity/PromotionUpdateActivityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"activity_id\": \"7136104329798256386\",\n        \"title\": \"BlackFridayDiscount\",\n        \"update_time\": 1661756811\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionGetCouponDetailResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"coupon\": {\n            \"claim_duration\": {\n                \"end_time\": 1709654340,\n                \"start_time\": 1709568000\n            },\n            \"create_time\": 1661756811000,\n            \"creation_source\": \"SELLER_CENTER\",\n            \"discount\": {\n                \"max_discount\": {\n                    \"amount\": \"40\",\n                    \"currency\": \"USD\"\n                },\n                \"percentage\": \"30\",\n                \"reduction_amount\": {\n                    \"amount\": \"30.5\",\n                    \"currency\": \"USD\"\n                },\n                \"type\": \"AMOUNT_OFF\"\n            },\n            \"display_channels\": [\n                \"SHOPPING_CENTER\"\n            ],\n            \"display_type\": \"CHAT\\n\\n\\n\",\n            \"id\": \"7342461823095965461\",\n            \"live_tasks\": [\n                {\n                    \"min_watch_time\": \"60\",\n                    \"type\": \"FOLLOW_HOST\"\n                }\n            ],\n            \"product_ids\": [\n                \"1729581162206365900\"\n            ],\n            \"product_scope\": \"FULL_SHOP\",\n            \"promo_code\": \"TTS12345\",\n            \"redemption_duration\": {\n                \"end_time\": 1709754340,\n                \"relative_time\": 4,\n                \"start_time\": 1709768000,\n                \"type\": \"ABSOLUTE\"\n            },\n            \"seller_tnc\": \"terms & conditions: xxx\",\n            \"status\": \"NOT_START\\n\\n\\n\\n\",\n            \"target_buyer_segment\": \"NEW\\n\",\n            \"threshold\": {\n                \"min_spend\": {\n                    \"amount\": \"30\",\n                    \"currency\": \"USD\"\n                },\n                \"type\": \"MIN_SPEND\"\n            },\n            \"title\": \"test coupon\",\n            \"update_time\": 1661756811000,\n            \"usage_limits\": {\n                \"redemption_limit\": 1000,\n                \"single_buyer_claim_limit\": 30,\n                \"total_claim_limit\": 1000\n            },\n            \"usage_stats\": {\n                \"claimed_count\": 5,\n                \"redeemed_count\": 0\n            }\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionSearchCouponsRequest.json",
    "content": "{\n    \"display_type\": [\n        \"CHAT\"\n    ],\n    \"status\": [\n        \"ONGOING\"\n    ],\n    \"title_keyword\": \"Coupon123\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Promotion/Coupon/PromotionSearchCouponsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"coupons\": [\n            {\n                \"claim_duration\": {\n                    \"end_time\": 1709654340,\n                    \"start_time\": 1709568000\n                },\n                \"create_time\": 1661756811000,\n                \"creation_source\": \"SELLER_CENTER\",\n                \"discount\": {\n                    \"max_discount\": {\n                        \"amount\": \"40\",\n                        \"currency\": \"USD\"\n                    },\n                    \"percentage\": \"30\",\n                    \"reduction_amount\": {\n                        \"amount\": \"30.5\",\n                        \"currency\": \"USD\"\n                    },\n                    \"type\": \"AMOUNT_OFF\"\n                },\n                \"display_type\": \"CHAT\\n\\n\\n\",\n                \"id\": \"7342461823095965461\",\n                \"product_scope\": \"FULL_SHOP\",\n                \"promo_code\": \"TTS12345\",\n                \"redemption_duration\": {\n                    \"end_time\": 1709754340,\n                    \"relative_time\": 4,\n                    \"start_time\": 1709768000,\n                    \"type\": \"ABSOLUTE\"\n                },\n                \"status\": \"NOT_START\\n\\n\\n\\n\",\n                \"target_buyer_segment\": \"NEW\\n\",\n                \"threshold\": {\n                    \"min_spend\": {\n                        \"amount\": \"30\",\n                        \"currency\": \"USD\"\n                    },\n                    \"type\": \"MIN_SPEND\"\n                },\n                \"title\": \"test coupon\",\n                \"update_time\": 1661756811000,\n                \"usage_limits\": {\n                    \"redemption_limit\": 1000,\n                    \"single_buyer_claim_limit\": 30,\n                    \"total_claim_limit\": 1000\n                }\n            }\n        ],\n        \"next_page_token\": \"1661756811000\",\n        \"total_count\": 20\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Cancellations/ReturnRefundCreateCancellationRequest.json",
    "content": "{\n    \"cancel_reason\": \"ecom_order_delivered_refund_and_return_reason_wrong_product_seller\",\n    \"order_id\": \"577087614418520388\",\n    \"order_line_item_ids\": [\n        \"577087614418716996\"\n    ],\n    \"skus\": [\n        {\n            \"quantity\": 1,\n            \"sku_id\": \"1729386416015578024\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Cancellations/ReturnRefundCreateCancellationResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"cancel_id\": \"4035319218955782461\",\n        \"cancel_status\": \"CANCELLATION_REQUEST_SUCCESS\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Cancellations/ReturnRefundRejectCancellationRequest.json",
    "content": "{\n    \"comment\": \"I have packed the products before cancellation request\",\n    \"images\": [\n        {\n            \"height\": 200,\n            \"image_id\": \"tos-maliva-i-o3syd03w52-us/57a1c8908fe74572861ea5e50887d8d1\",\n            \"width\": 200\n        }\n    ],\n    \"reject_reason\": \"seller_reject_apply_product_has_been_packed\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Cancellations/ReturnRefundSearchCancellationsRequest.json",
    "content": "{\n    \"buyer_user_ids\": [\"7494845267308415300\"],\n    \"cancel_ids\": [ \"577087614418520388\" ],\n    \"cancel_status\": [ \"CANCELLATION_REQUEST_PENDING\" ],\n    \"cancel_types\": [ \"CANCEL\" ],\n    \"create_time_ge\": 1690340825,\n    \"create_time_lt\": 1690340825,\n    \"locale\": \"en-US\",\n    \"order_ids\": [ \"577087614418520388\" ],\n    \"update_time_ge\": 1690340825,\n    \"update_time_lt\": 1690340825\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Cancellations/ReturnRefundSearchCancellationsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"cancellations\": [\n            {\n                \"cancel_id\": \"4035318504086604100\",\n                \"cancel_line_items\": [\n                    {\n                        \"cancel_line_item_id\": \"4035227913481196964\",\n                        \"order_line_item_id\": \"576468844534141348\",\n                        \"product_image\": {\n                            \"height\": 200,\n                            \"url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/004797ebfd8c4d3da2df1cc4bfdb0614~tplv-o3syd03w52-origin-jpeg.jpeg?from=4246405447\",\n                            \"width\": 200\n                        },\n                        \"product_name\": \"bundle No Heel Flat Heel Summer Winter Round Toe\",\n                        \"refund_amount\": {\n                            \"currency\": \"USD\",\n                            \"refund_shipping_fee\": \"5\",\n                            \"refund_subtotal\": \"1\",\n                            \"refund_tax\": \"3\",\n                            \"refund_total\": \"1.23\",\n                            \"retail_delivery_fee\": \"0.1\"\n                        },\n                        \"seller_sku\": \"YYAPC23078TRT30\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_name\": \"1#, Standard\"\n                    }\n                ],\n                \"cancel_reason\": \"ecom_order_to_ship_canceled_reason_created_by_mistakes\",\n                \"cancel_reason_text\": \"Order created by mistake\",\n                \"cancel_status\": \"CANCELLATION_REQUEST_PENDING\",\n                \"cancel_type\": \"REQUEST_CANCEL_REFUND\",\n                \"create_time\": 1690451136,\n                \"order_id\": \"577087614418520388\",\n                \"refund_amount\": {\n                    \"currency\": \"USD\",\n                    \"refund_shipping_fee\": \"0.2\",\n                    \"refund_subtotal\": \"1\",\n                    \"refund_tax\": \"0.03\",\n                    \"refund_total\": \"1.23\",\n                    \"retail_delivery_fee\": \"0.1\"\n                },\n                \"role\": \"BUYER\",\n                \"seller_next_action_response\": [\n                    {\n                        \"action\": \"SELLER_RESPOND_CANCEL\",\n                        \"deadline\": 1690554680\n                    }\n                ],\n                \"update_time\": 1690451136\n            }\n        ],\n        \"next_page_token\": \"aDU2dHIzMlFhME5CUzJKUDhDdVJhTDM1WmJkeFVTVW9LTkRaSnNaZCtuWjJXVU5CSDhlaA==\",\n        \"total_count\": 100\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Orders/ReturnRefundGetOrderAftersaleEligibilityResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"sku_eligibility\": [\n            {\n                \"line_item_eligibility\": [\n                    {\n                        \"eligible\": true,\n                        \"ineligible_code\": 25001001,\n                        \"ineligible_reason\": \"invalid order status\",\n                        \"order_line_items_ids\": [\n                            \"576469648086306000\"\n                        ],\n                        \"request_type\": \"REFUND\"\n                    }\n                ],\n                \"sku_id\": \"1729385144994206632\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Refunds/ReturnRefundCalculateRefundRequest.json",
    "content": "{\n    \"handover_method\": \"DROP_OFF\",\n    \"order_id\": \"576469648086175911\",\n    \"order_line_item_ids\": [\n        \"576469648086306986\"\n    ],\n    \"reason_name\": \"ecom_order_delivered_refund_reason_missing_product_seller\",\n    \"request_type\": \"REFUND\",\n    \"shipment_type\": \"PLATFORM\",\n    \"skus\": [\n        {\n            \"quantity\": 1,\n            \"sku_id\": \"1729386416015578024\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Refunds/ReturnRefundCalculateRefundResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"order_refund_amount\": {\n            \"currency\": \"USD\",\n            \"refund_shipping_fee\": \"0.2\",\n            \"refund_subtotal\": \"1\",\n            \"refund_tax\": \"0.03\",\n            \"refund_total\": \"1.23\",\n            \"retail_delivery_fee\": \"0.1\"\n        }\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/ReturnRefundGetRejectReasonsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"reasons\": [\n            {\n                \"name\": \"seller_reject_apply_you_have_reached_an_agreement_with_the_buyer\",\n                \"text\": \"You have reached an agreement with the buyer\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundApproveReturnRequest.json",
    "content": "{\n    \"buyer_keep_item\": true,\n    \"decision\": \"APPROVE_REFUND\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundCreateReturnRequest.json",
    "content": "{\n    \"currency\": \"USD\",\n    \"handover_method\": \"DROP_OFF\",\n    \"order_id\": \"576473917261320779\",\n    \"order_line_item_ids\": [\n        \"455764739172614518516\"\n    ],\n    \"refund_total\": \"10.5\",\n    \"return_reason\": \"ecom_order_delivered_refund_reason_missing_product_seller\",\n    \"return_type\": \"REFUND\",\n    \"shipment_type\": \"PLATFORM\",\n    \"skus\": [\n        {\n            \"quantity\": 1,\n            \"sku_id\": \"1729386416015578024\"\n        }\n    ]\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundCreateReturnResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"return_id\": \"4035319218955782461\",\n        \"return_status\": \"RETURN_OR_REFUND_REQUEST_PENDING\"\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundGetReturnRecordsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"records\": [\n            {\n                \"create_time\": 1690532213,\n                \"description\": \"Customer submitted a return request\",\n                \"event\": \"ORDER_RETURN\",\n                \"images\": [\n                    {\n                        \"height\": 200,\n                        \"url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/004797ebfd8c4d3da2df1cc4bfdb0614~tplv-o3syd03w52-origin-jpeg.jpeg?from=4246405447\",\n                        \"width\": 200\n                    }\n                ],\n                \"note\": \"Reach an agreement with the buyer\",\n                \"reason_text\": \"Wrong product was sent\",\n                \"role\": \"Buyer\",\n                \"videos\": [\n                    {\n                        \"cover\": \"https://p16-oec-va.ibyteimg.com/musically-maliva-obj/998d0381960bda1ef272f4a7724cf5ed~tplv-o3syd03w52-origin-jpeg.jpeg?from=4246405489\",\n                        \"duration_millis\": 3000,\n                        \"height\": 200,\n                        \"url\": \"https://v16m-default.akamaized.net/1e26046c3df91cd008d2ababba9445e2/65005d33/video/tos/maliva/tos-maliva-v-d8ca36-us/oQVCbIQemDpQxI9lHsg9IXQAb7mwgBabababab\",\n                        \"width\": 200\n                    }\n                ]\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundRejectReturnRequest.json",
    "content": "{\n    \"comment\": \"I have reached an agreement with the buyer\",\n    \"decision\": \"REJECT_RECEIVED_PACKAGE\",\n    \"images\": [\n        {\n            \"height\": 200,\n            \"image_id\": \"tos-maliva-i-o3syd03w52-us/57a1c8908fe74572861ea5e50887d8d1\",\n            \"mime_type\": \"image/png\",\n            \"width\": 200\n        }\n    ],\n    \"reject_reason\": \"seller_reject_apply_package_has_not_exceeded_estimated_delivery_time\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundSearchReturnsRequest.json",
    "content": "{\n    \"arbitration_status\": [ \"IN_PROGRESS\" ],\n    \"buyer_user_ids\": [ \"7493996903972308733\" ],\n    \"create_time_ge\": 1690340825,\n    \"create_time_lt\": 1690340825,\n    \"locale\": \"en-US\",\n    \"order_ids\": [ \"577686530908261117\" ],\n    \"return_ids\": [ \"4035318504086604100\" ],\n    \"return_status\": [ \"RETURN_OR_REFUND_REQUEST_PENDING\" ],\n    \"return_types\": [ \"REFUND\" ],\n    \"update_time_ge\": 1690340825,\n    \"update_time_lt\": 1690340825\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/ReturnRefund/Returns/ReturnRefundSearchReturnsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"next_page_token\": \"aDU2dHIzMlFhME5CUzJKUDhDdVJhTDM1WmJkeFVTVW9LTkRaSnNaZCtuWjJXVU5CSDhlaA==\",\n        \"return_orders\": [\n            {\n                \"arbitration_status\": \"IN_PROGRESS\",\n                \"buyer_rejected_partial_refund\": true,\n                \"can_buyer_keep_item\": true,\n                \"combined_return_id\": \"4035309948547073951\",\n                \"create_time\": 1690451136,\n                \"discount_amount\": [\n                    {\n                        \"currency\": \"USD\",\n                        \"product_platform_discount\": \"0.1\",\n                        \"product_seller_discount\": \"0.1\",\n                        \"shipping_fee_platform_discount\": \"0.1\",\n                        \"shipping_fee_seller_discount\": \"0.1\"\n                    }\n                ],\n                \"handover_method\": \"DROP_OFF\",\n                \"is_combined_return\": true,\n                \"next_return_id\": \"4035310341095393463\",\n                \"order_id\": \"577686530908261117\",\n                \"partial_refund\": {\n                    \"amount\": \"10\",\n                    \"currency\": \"IDR\"\n                },\n                \"pre_return_id\": \"4035310341095393452\",\n                \"refund_amount\": {\n                    \"buyer_service_fee\": \"0.1\",\n                    \"currency\": \"USD\",\n                    \"refund_shipping_fee\": \"0.2\",\n                    \"refund_subtotal\": \"1\",\n                    \"refund_tax\": \"0.03\",\n                    \"refund_total\": \"1.23\",\n                    \"retail_delivery_fee\": \"0.1\"\n                },\n                \"return_id\": \"4035318504086604100\",\n                \"return_line_items\": [\n                    {\n                        \"order_line_item_id\": \"576473917261451851\",\n                        \"product_image\": {\n                            \"height\": 200,\n                            \"url\": \"https://p16-oec-va.ibyteimg.com/tos-maliva-i-o3syd03w52-us/004797ebfd8c4d3da2df1cc4bfdb0614~tplv-o3syd03w52-origin-jpeg.jpeg?from=4246405447\",\n                            \"width\": 200\n                        },\n                        \"product_name\": \"(SP) [PROMO BUNDLING] NICE Tissue Facial 180s x 5 pcs\",\n                        \"refund_amount\": {\n                            \"buyer_service_fee\": \"0.1\",\n                            \"currency\": \"USD\",\n                            \"refund_shipping_fee\": \"0.2\",\n                            \"refund_subtotal\": \"1\",\n                            \"refund_tax\": \"0.03\",\n                            \"refund_total\": \"1.23\",\n                            \"retail_delivery_fee\": \"0.1\"\n                        },\n                        \"return_line_item_id\": \"4035227657962164811\",\n                        \"seller_sku\": \"PUTIH 1 TALI\",\n                        \"sku_id\": \"2729382476852921560\",\n                        \"sku_name\": \"1#, Standard\"\n                    }\n                ],\n                \"return_method\": \"SELLER_ARRANGE\",\n                \"return_provider_id\": \"TH27014E9R5Q4G\",\n                \"return_provider_name\": \"J&T Express\",\n                \"return_reason\": \"ecom_order_to_ship_canceled_reason_created_by_mistakes\",\n                \"return_reason_text\": \"Order created by mistake\",\n                \"return_shipping_document_type\": \"SHIPPING_LABEL\",\n                \"return_status\": \"RETURN_OR_REFUND_REQUEST_PENDING\",\n                \"return_tracking_number\": \"213456789098765433456\",\n                \"return_type\": \"REFUND\",\n                \"return_warehouse_address\": {\n                    \"full_address\": \"1199 Coleman Ave San Jose, CA 95110\"\n                },\n                \"role\": \"BUYER\",\n                \"seller_next_action_response\": [\n                    {\n                        \"action\": \"SELLER_RESPOND_REFUND\",\n                        \"deadline\": 1690554680\n                    }\n                ],\n                \"seller_proposed_return_type\": \"PARTIAL_REFUND\",\n                \"shipment_type\": \"PLATFORM\",\n                \"shipping_fee_amount\": [\n                    {\n                        \"buyer_paid_return_shipping_fee\": \"0.1\",\n                        \"currency\": \"USD\",\n                        \"platform_paid_return_shipping_fee\": \"0.1\",\n                        \"seller_paid_return_shipping_fee\": \"0.1\"\n                    }\n                ],\n                \"update_time\": 1690453136\n            }\n        ],\n        \"total_count\": 100\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Seller/SellerGetPermissionsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"permissions\": [\n            \"MANAGE_GLOBAL_PRODUCT\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Seller/SellerGetShopsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shops\": [\n            {\n                \"id\": \"36123502970007\",\n                \"region\": \"GB\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/Shop/AuthorizationGetShopsResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"shops\": [\n            {\n                \"cipher\": \"GCP_XF90igAAAABh00qsWgtvOiGFNqyubMt3\",\n                \"code\": \"CNGBCBA4LLU8\",\n                \"id\": \"7000714532876273420\",\n                \"name\": \"Maomao beauty shop\",\n                \"region\": \"GB\",\n                \"seller_type\": \"CROSS_BORDER\"\n            }\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/SupplyChain/SupplyChainSyncPackagesRequest.json",
    "content": "{\n    \"packages\": [\n        {\n            \"create_time_millis\": 1694176625765,\n            \"dimension\": {\n                \"height\": 42,\n                \"length\": 34,\n                \"unit\": \"METER\",\n                \"width\": 425\n            },\n            \"handover_time_millis\": 1694176625765,\n            \"id\": \"28427944530283\",\n            \"provider_warehouse_code\": \"7475973290484254255\",\n            \"ship_time_millis\": 1694176625765,\n            \"shipping_origin_city\": \"CityA\",\n            \"shipping_provider_id\": \"2435653524354624\",\n            \"shipping_provider_name\": \"ProviderA\",\n            \"skus\": [\n                {\n                    \"id\": \"4235346547\",\n                    \"quantity\": 13\n                }\n            ],\n            \"time_zone\": \"UTC+8\",\n            \"tracking_number\": \"WB53452356\",\n            \"weight\": {\n                \"unit\": \"KILOGRAM\",\n                \"value\": 342\n            },\n            \"wms_order_id\": \"324246554745\"\n        }\n    ],\n    \"warehouse_provider_id\": \"7342984797904049750\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/ModelSamples/_/SupplyChain/SupplyChainSyncPackagesResponse.json",
    "content": "{\n    \"code\": 0,\n    \"data\": {\n        \"errors\": [\n            {\n                \"code\": \"39003015\",\n                \"detail\": {\n                    \"package_id\": \"4645645645\"\n                },\n                \"message\": \"Provider is not supported by TikTok Shop\"\n            }\n        ],\n        \"success_packages\": [\n            \"5345241234\",\n            \"42365346\"\n        ]\n    },\n    \"message\": \"Success\",\n    \"request_id\": \"202203070749000101890810281E8C70B7\"\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n    <PropertyGroup>\n        <TargetFrameworks>net472; net6.0</TargetFrameworks>\n        <LangVersion>latest</LangVersion>\n        <Nullable>enable</Nullable>\n        <NullableReferenceTypes>true</NullableReferenceTypes>\n        <IsPackable>false</IsPackable>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <None Remove=\".gitignore\" />\n        <Content Include=\"appsettings.json\">\n            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n            <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"appsettings.*.json\" Condition=\"'$(Configuration)' == 'Debug'\">\n            <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n            <CopyToPublishDirectory>Always</CopyToPublishDirectory>\n        </Content>\n        <Content Include=\"ModelSamples/**/*.json\" />\n    </ItemGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.8.0\" />\n        <PackageReference Include=\"SKIT.FlurlHttpClient.Tools.CodeAnalyzer\" Version=\"0.3.0-preview.1\" />\n        <PackageReference Include=\"xunit\" Version=\"2.6.6\" />\n        <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"2.5.6\">\n            <PrivateAssets>all</PrivateAssets>\n            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n        <ProjectReference Include=\"..\\..\\src\\SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop\\SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.csproj\" />\n    </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/TestCase_RequestSigningTests.cs",
    "content": "using System;\nusing System.Net;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Flurl;\nusing Xunit;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests\n{\n    public partial class TestCase_RequestSigningTests\n    {\n        [Fact(DisplayName = \"测试用例：即时配送请求签名\")]\n        public async Task TestRequestSignature()\n        {\n            var mockClient = TikTokShopClientBuilder\n                .Create(new TikTokShopClientOptions()\n                {\n                    AppKey = \"68xu9ks5p4i8\",\n                    AppSecret = \"e59af819cc\"\n                })\n                .UseHttpClient(new MockHttpClient())\n                .Build();\n\n            // Sign GET request\n            {\n                var request = new Models.EventGetWebhooksRequest()\n                {\n                    ShopCipher = \"ROW_xkMbgAAAeVAQra0eZWebFQq5aIK\",\n                    Timestamp = 1696909648,\n                    ApiVersion = 202309\n                };\n                var response = await mockClient.ExecuteEventGetWebhooksAsync(request);\n\n                Assert.Equal(\"ed58e1b5e59865c22a7b828c1cab65007441f43cc91a6cb2f2cdc638e0995a37\", response.GetRawHeaders().GetFirstValueOrEmpty(MOCK_HEADER_NAME), ignoreCase: true);\n            }\n\n            // Sign non-GET request\n            {\n                var request = new Models.EventUpdateWebhookRequest()\n                {\n                    ShopCipher = \"ROW_xkMbgAAAeVAQra0eZWebFQq5aIK\",\n                    Timestamp = 1696909648,\n                    ApiVersion = 202309,\n                    EventType = \"PACKAGE_UPDATE\",\n                    WebhookUrl = \"https://partner.tiktokshop.com\"\n                };\n                var response = await mockClient.ExecuteEventUpdateWebhookAsync(request);\n\n                Assert.Equal(\"701dd6deb2389fe4c469b89bd37fc56f96a6da6afeb4d01c9077a65169752fa7\", response.GetRawHeaders().GetFirstValueOrEmpty(MOCK_HEADER_NAME), ignoreCase: true);\n            }\n        }\n    }\n\n    partial class TestCase_RequestSigningTests\n    {\n        private const string MOCK_HEADER_NAME = \"Mock-Sign\";\n\n        public class MockHttpClient : HttpClient\n        {\n            public MockHttpClient()\n                : base(new MockHttpMessageHandler(new HttpClientHandler()))\n            {\n            }\n        }\n\n        public class MockHttpMessageHandler : DelegatingHandler\n        {\n            public MockHttpMessageHandler(HttpMessageHandler innerHandler)\n                : base(innerHandler)\n            {\n            }\n\n            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\n            {\n                var resp = new HttpResponseMessage\n                {\n                    RequestMessage = request,\n                    StatusCode = HttpStatusCode.NoContent,\n                    Content = new ByteArrayContent(Array.Empty<byte>()),\n                };\n                var queryParams = new QueryParamCollection(request.RequestUri?.Query);\n                resp.Headers.TryAddWithoutValidation(MOCK_HEADER_NAME, string.Join(\",\", queryParams.GetAll(\"sign\")));\n                return Task.FromResult(resp);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/TestClients.cs",
    "content": "namespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests\n{\n    internal class TestClients\n    {\n        static TestClients()\n        {\n            Instance = new TikTokShopClient(new TikTokShopClientOptions()\n            {\n                AppKey = TestConfigs.TikTokShopAppKey,\n                AppSecret = TestConfigs.TikTokShopAppSecret\n            });\n        }\n\n        public static readonly TikTokShopClient Instance;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/TestConfigs.cs",
    "content": "using System;\nusing System.IO;\nusing System.Text.Json;\n\nnamespace SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests\n{\n    internal class TestConfigs\n    {\n        static TestConfigs()\n        {\n            // NOTICE:  请在项目根目录下按照 appsettings.json 的格式新建 appsettings.local.json 填入测试参数。\n            // WARNING: 请在 DEBUG 模式下运行测试用例。\n            // WARNING: 敏感信息请不要提交到 git！\n\n            try\n            {\n                using var stream = File.OpenRead(\"appsettings.local.json\");\n                using var json = JsonDocument.Parse(stream);\n\n                var config = json.RootElement.GetProperty(\"TestConfigs\");\n                TikTokShopAppKey = config.GetProperty(\"AppKey\").GetString()!;\n                TikTokShopAppSecret = config.GetProperty(\"AppSecret\").GetString()!;\n                TikTokShopAccessToken = config.GetProperty(\"AccessToken\").GetString()!;\n            }\n            catch (Exception ex)\n            {\n                throw new Exception(\"加载配置文件 appsettings.local.json 失败，请查看 `InnerException` 了解具体失败原因\", ex);\n            }\n        }\n\n        public static readonly string TikTokShopAppKey;\n        public static readonly string TikTokShopAppSecret;\n        public static readonly string TikTokShopAccessToken;\n    }\n}\n"
  },
  {
    "path": "test/SKIT.FlurlHttpClient.ByteDance.TikTokGlobalShop.UnitTests/appsettings.json",
    "content": "{\n    \"TestConfigs\": {\n        \"AppKey\": \"请在此填写用于测试的 TikTok Shop AppKey\",\n        \"AppSecret\": \"请在此填写用于测试的 TikTok Shop AppSecret\",\n        \"AccessToken\": \"请在此填写用于测试的 TikTok Shop AccessToken\"\n    }\n}\n"
  }
]